Course Syllabus

Course PM

 

 

DIT278/DAT246, Empirical Software Engineering, 7.5 Hec, Ht, 2020

 

Examiner/course responsible: Professor Richard Torkar (richard.torkar@gu.se)

Supervisors:

David Issa Mattos (davidis@chalmers.se)

Supriya Supriya (supe@student.chalmers.se)

Vamsi Ravi (vamsir@student.chalmers.se)

___________________________________________________________________________

 

Course content:

The course aims to teach the basics of empirical software engineering, with a focus on applied statistics for the commonly used methods in this research field. The course will address the following areas:

  • Descriptive and inferential statistical methods applied to software engineering.
  • Qualitative methods in software engineering.
  • Methods required practicing evidence-based software engineering.
  • Basics of experimental design.
  • Using statistical software for data analysis.

 

 

Learning outcomes:

  1. Knowledge and understanding:
    1. Describe the principles of empiricism in software engineering.
    2. Describe the principles of case study research/experiments/surveys.
    3. Describe the principles of meta-analytical studies.
    4. Explain the importance of research ethics.
    5. Recognize and define code of ethics for when conducting research in software engineering.
    6. Discuss and explain the most common ethical models in research.
    7. State and explain the importance of threats to validity and how to control said threats.
  2. Skills and abilities:
    1. Design an empirical study.
    2. Analyze descriptive statistics and decide on appropriate analysis methods.
    3. Use and interpret code of ethics for software engineering research.
  3. Judgment and approach:
    1. State and discuss the tools used for data analysis and, in particular, judge their output.
    2. Judge the appropriateness of particular empirical methods and their applicability to solve various and disparate software engineering problems.
    3. Question and assess common ethical issues in software engineering research.

 

 

Course structure/course implementation

This course partially uses a concept called flipped classroom with online components connected to discussion in seminars instead of classical lectures. There is evidence showing that this approach increases the learning outcomes for students.[1] The course is organized around 4 flipped lectures with online components you need in order to participate in active learning in the classroom, 6 regular lectures, 2 computer labs and 1 afternoon lab with practical experimentation (these 3 labs are compulsory) and are passed via lab reports.

The online modules have pre-requisites that need to be completed before advancing to next module.

The laboratory activities also have online modules as pre-requisites. Those need to be completed before the laboratory class.

In addition, the course has 4 quizzes, one after each online component. Finally, we have an introduction lecture in the beginning of the course, as well as three lectures at the end of the course. In the last three lectures, we will have a repetition of the content of the course, go over old exams and look at current research in the field.

 

All classes will be held online, and the appropriate links will be given in the course homepage.

 

Examination forms:
The course will have a written exam (5.0 Credits) on week 3. Students from GU will be graded according to pass, pass with distinction and fail. Students from CTH will be graded according to 3, 4, 5 and fail. The course is also examined by three written lab assignments carried out in groups of normally 4-5 students.

 

Course literature: 
The literature and the online components for the flipped classroom will be available online on the Canvas platform. Invitations before each flipped class will be sent to you via email the week before. We also have two course books in this course, one is Juristo and Moreño’s book that you will be able to download from Canvas, while the other is R. Wilcox book, Modern Statistics for the Social and Behavioral Sciences: A Practical Introduction (ISBN: 1439834563), which you need to borrow/buy.

 

In addition to the above, we will have a number of research papers available on Canvas.

 

Course evaluation:

The Education Management Support will randomly select between two to five students in the course as course representatives. These will be presented in study week two

and a first meeting will be held after the lab lecture on November 11th at 15:00 (online). A second meeting will be held around week 49 where we will discuss the course so far (e.g. changes in the course, working climate (communication, level of workload, tutorials), problems with the course: can resources be better utilized? Course-specific issues in the course questionnaire: other material for the final meeting?). A final meeting will be held after the course has finished (sometime in March 2021).

 

However, we will continuously evaluate the pedagogical approach to fine-tune the course layout along the way. Therefore, each student’s participation is essential for the course to develop as well as possible.

 

 

 

Regular schedule (without online components):

Introduction Class, Nov 4th, 10:15-12:00: Introduction to the course and introduction to the field of Empirical Software Engineering and statistics. (Literature: “Modern Statistics…” Pre-reading: exp1.pdf).

 

Richard Class 1, Nov 9th, 10.15-12.00: Case study research (Pre-reading: CS1.pdf)

 

Flipped Class 1, Nov 11th, 10.15-12.00: Basics in statistics (Literature: “Modern statistics …” and Pre-reading: stat1.pdf)

 

Lab 1, Nov 11st, 13.15-15.00: Descriptive statistics, regression and hypothesis testing with R. (Pre-learning: statistical testing in R: http://www.statmethods.net/stats/) Report deadline: Nov 20th

 

Richard Class 2, Nov 16th, 10.15-12.00: How to build your case? Goal, research question, hypothesis and how to review papers.

 

Flipped Class 2, Nov 18th, 10.15-12.00: Experimental Design I: How to experiment, Basic notions of experimental design, One-factor design, Factorial design, Fractional design, and Experiments and SE. (Literature: “Basics of Software Engineering Experimentation” Chapters: 3, 4, and 5 (not 5.4, 5.6 and 5.8). Pre-reading: Chapters 1 and 2).

 

Richard Class 3, Nov 23th, 10.15-12.00: Survey research.

 

Flipped Class 3, Nov 25th, 10.15-12.00: Experimental Design II: How to analyze experiments (statistical tests), One-factor, Factorial, and Fractional design data analyses. (Literature: “Basics of Software Engineering Experimentation” Chapters: 7, 10, and 12. Pre-reading: Chapter 6).

 

Lab 2, Nov 25th, 13.15-15.00: ANOVA. (Pre-learning: statistical testing in R: http://www.statmethods.net/stats/) Report deadline Dec 4

 

Richard Class 4, Nov 30th 10.15-12.00: Systematic reviews.

 

Flipped Class 4, Dec 2nd , 10.15-12.00: Experimental Design III: How to do experiments (extended): Block Designs, Nested Designs, and Factorial Block Designs (Literature: “Basics of Software Engineering Experimentation” Chapters 5.4, 5.6 and 5.8). How to analyze experiments (statistical tests): Block, Nested and Factorial Block design data analyses. (Literature: “Basics of Software Engineering Experimentation” Chapters: 8, 9 and 11).

 

Lab 3, TO BE DECIDED with Remote learning. Dec 2nd, 13.15-17.00. Report deadline Dec 11

 

Richard Class 5, Dec 7th, 10.15-12.00: Research ethics (Pre-reading: Ethics1.pdf)

 

Flipped Class 5, Dec 9th, 10.15-12.00: Experimental Design: Repetition, overview, and usage.

 

Richard Class 6, Dec 14th, 10.15-12.00: Validity threats.

 

Flipped Class 6, Dec 16th, 10.15-12.00: Old exams/repetition/questions

 

Conclusion, Dec 16th, 13.15-15.00: Frontiers of empirical SE + course wrap-up.

 

 

 

[1] Freeman, S., Eddy, S. L., McDonough, M., Smith, M. K., Okoroafor, N., Jordt, H., & Wenderoth, M. P. (2014). Active learning increases student performance in science, engineering, and mathematics. Proceedings of the National Academy of Sciences, 111(23), 8410-8415.

Course Summary:

Date Details Due