Software is built by humans. To ensure adequate quality in the final product, we need to create systems that humans can understand and reason about. We know systems grow to be very large in terms of the amount of code, models, artifacts, documentation amongst other things. In this course we investigate how we can ensure the human ingenuity and smarts are being amplified by the processes and tools used to create systems, rather than the humans spending precious cognitive effort dealing with mundane or unnecessary problems.
- biometry in software development
- developer retrospection
- code navigation
- program comprehension
- software development tools and environments
- quantitative & qualitative evaluation of software engineering research
This will be a project and paper-based course. The research project is the primary artifact of the course; the outcome of all projects will be a short research paper. Depending on the class size, the projects may be completed in groups of up to two. The intent of the project is to get students think about a research problem, identify a research question, investigate it and write it up.
In this course, you will also be reading research papers and writing short response papers for each class in preparation, leading interactive paper discussion(s), and writing peer-reviews of papers.
- 60%: Project, including continuous progress, meetings, write ups (including final proposal and intermediate report) and presentation
- 40%: Readings, including moderation, class participation, 4 response papers, and peer-reviews of two project reports
Note: To pass this course, you must pass the research project (obtain at least 50%) and must obtain an overall mark of at least 50%.