Course syllabus for Empirical software engineering

Course syllabus adopted 2021-02-17 by Head of Programme (or corresponding).

Overview

  • Swedish nameEmpirisk programvaruteknik
  • CodeDAT246
  • Credits7.5 Credits
  • OwnerMPSOF
  • Education cycleSecond-cycle
  • Main field of studyComputer Science and Engineering, Software Engineering
  • DepartmentCOMPUTER SCIENCE AND ENGINEERING
  • GradingTH - Pass with distinction (5), Pass with credit (4), Pass (3), Fail

Course round 1

  • Teaching language English
  • Application code 24115
  • Maximum participants80
  • Block schedule
  • Open for exchange studentsYes

Credit distribution

0114 Written and oral assignments 2.5 c
Grading: UG
2.5 c
0214 Examination 5 c
Grading: TH
5 c
  • 24 Okt 2022 pm J
  • 05 Jan 2023 am L
  • 22 Aug 2023 pm J

In programmes

Examiner

Go to coursepage (Opens in new tab)

Eligibility

General entry requirements for Master's level (second cycle)
Applicants enrolled in a programme at Chalmers where the course is included in the study programme are exempted from fulfilling the requirements above.

Specific entry requirements

English 6 (or by other approved means with the equivalent proficiency level)
Applicants enrolled in a programme at Chalmers where the course is included in the study programme are exempted from fulfilling the requirements above.

Course specific prerequisites

To be eligible for the course Empirical Software Engineering the student should have a bachelor degree in Software Engineering, Computer Science or equivalent.

Aim

Software development organizations need to constantly improve to become faster, better, and more efficient. This course aims to learn scientific approaches, in particular experiments and statistics, for data collection e.g. as a basis for analysis and decision support in initiatives to improve performances in software development organizations. The course prepares students for the master thesis project and improves the student’s ability to conduct PhD studies.

Learning outcomes (after completion of the course the student should be able to)

  • Knowledge and understanding:
    • Describe, understand, and apply empiricism in software engineering
    • Describe, understand, and partly apply the principles of case study research/experiments/surveys.
    • Describe and understand the underlying principles of meta-analytical studies.
    • Explain the importance of research ethics. 
    • Recognise and define code of ethics for when conducting research in software engineering.  
    • State and explain the importance of threats to validity and how to control said threats.
    • Describe and explain the concepts of probability space (incl. conditional probability), random variable, expected value and random processes, and know a number of concrete examples of the concepts.
    • Describe Markov chain Monte Carlo methods such as Metropolis.
    • Describe and explain Hamiltonian Monte Carlo. 
    • Explain and describe multicollinearity, post-treatment bias, collider bias, and confounding
    • Describe and explain ways to avoid overfitting
  •  Skills and abilities:
    • Assess suitability of and apply methods of analysis on data
    • Analyse descriptive statistics and decide on appropriate analysis methods.
    • Use and interpret code of ethics for software engineering research.
    • Design statistical models mathematically and implement said models in a programming language.
    • Make use of random processes, i.e., Bernoulli, Binomial, Gaussian, and Poisson distributions, with over-dispersed outcomes. 
    • Make use of ordered categorical outcomes (ordered-logit) and predictors
    • Assess suitability of, from a ontological (natural process) and epsitemological (maxent) perspective, various statistical distributions
    • Make use of and assess directed acyclic graphs to argue causality
  • Judgement and approach:
    • State and discuss the tools used for data analysis and, in particular, judge their output.
    • Judge the appropriateness of particular empirical methods and their applicability to attack various and disparate software engineering problems.
    • Question and assess common ethical issues in software engineering research. 
    • Assess diagnostics from Hamiltonian Monte Carlo and quadratic approximation using information theoretical concepts, i.e., information entropy, WAIC, and PSIS-LOO.
    • Judge posterior probability distributions for out of sample predictions and conduct posterior predictive checks.

Content

This course is for students who are interested in the empirical methods applied to the field of software engineering. The course introduces quantitative and qualitative methods in software engineering with accompanying statistical methods used for analysis.

The course contains:
  • Descriptive and inferential statistical methods applied to software engineering.
  • Conducting qualitative and quantitative methods in software engineering.
  • Methods for analysing quantitative and qualitative data in software engineering.
  • Usage of statistical tools.

Organisation

The course introduces quantitative and qualitative methods in software engineering research with accompanying statistical methods used for analysis.

The course contains: Descriptive and inferential statistical methods applied to software engineering. Conducting qualitative and quantitative methods in software engineering. Methods for analysing quantitative and qualitative data in software engineering. Usage of statistical tools.

Literature

We will use different textbooks and research articles for different parts. More information will be given before the course starts.

Examination including compulsory elements

The examination will be conducted through an individual assignment. The assignment is theoretical and practical in its nature.
Additionally, a written hall exam is part of the examination.

The course examiner may assess individual students in other ways than what is stated above if there are special reasons for doing so, for example if a student has a decision from Chalmers on educational support due to disability.