Course Syllabus
Course PM
DIT278/DAT246, Empirical Software Engineering, 7.5 Hec, Ht, 2019
Examiner/course responsible: Professor Richard Torkar (richard.torkar@gu.se)
Supervisors:
David Issa Mattos (davidis@chalmers.se)
Supriya Supriya (supe@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:
- Knowledge and understanding:
- Describe the principles of empiricism in software engineering.
- Describe the principles of case study research/experiments/surveys.
- Describe the principles of meta-analytical studies.
- Explain the importance of research ethics.
- Recognize and define code of ethics for when conducting research in software engineering.
- Discuss and explain the most common ethical models in research.
- State and explain the importance of threats to validity and how to control said threats.
- Skills and abilities:
- Design an empirical study.
- Analyze descriptive statistics and decide on appropriate analysis methods.
- Use and interpret code of ethics for software engineering research.
- Judgment 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 solve various and disparate software engineering problems.
- 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.
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 13th at 15:00. 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 2020).
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 6th, 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 11th, 10.15-12.00: Case study research (Pre-reading: CS1.pdf)
Flipped Class 1, Nov 13th, 10.15-12.00: Basics in statistics (Literature: “Modern statistics …” and Pre-reading: stat1.pdf)
Lab 1, Nov 13st, 13.15-15.00: Descriptive statistics, regression and hypothesis testing with R. Report deadline: Nov 24
Richard Class 2, Nov 18th, 10.15-12.00: How to build your case? Goal, research question, hypothesis and how to review papers.
Flipped Class 2, Nov 20th, 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 25th, 10.15-12.00: Survey research.
Flipped Class 3, Nov 27th, 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 27th, 13.15-15.00: ANOVA (Pre-learning: statistical testing in R: http://www.statmethods.net/stats/). Report deadline Dec 8
Richard Class 4, Dec 2nd 10.15-12.00: Systematic reviews.
Flipped Class 4, Dec 4th, 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, (helicopter experiment), Dec 4th, 13.15-17.00: The Paper Helicopter Experiment (http://www.paperhelicopterexperiment.com/) and an introduction to lab3. Report deadline Dec 15
Richard Class 5, Dec 9th, 10.15-12.00: Research ethics (Pre-reading: Ethics1.pdf)
Flipped Class 5, Dec 11th, 10.15-12.00: Experimental Design: Repetition, overview, and usage.
Richard Class 6, Dec 16th, 10.15-12.00: Validity threats.
Flipped Class 6, Dec 18th, 10.15-12.00: Old exams/repetition/questions
Conclusion, Dec 18th, 13.15-15.00: Frontiers of empirical SE + course wrap-up.
Course Summary:
Date | Details | Due |
---|---|---|