Course Overview
Data science plays an increasingly important role in software engineering and in facilitating software systems adapt to evolving users and environments. Emerging data-driven methods in software engineering span requirements elicitation, design, development, testing and maintenance.
The main objective of this course is to introduce students to selected data science techniques and tools, and specifically, their applications in software engineering. However, software engineering is a vast domain, thus in this course we will focus on selected set of related topics in software engineering including requirements, architecture, quality modeling, and failure prediction.
Learning Outcomes
- Basic knowledge of selected data science algorithms and their applications to selected software engineering problems.
(Important: This is not a typical data science or machine learning class.)
- Advanced knowledge, learned via published research, on selected state-of-the-art data science applications in software engineering.
- Programming experience (in Java or Python), prototyping data science algorithms on software engineering datasets.
Student Expectations
- Reading Assignments: Read assigned material (mostly, research papers), produce reports (summaries of the reading materials), and lead (typically, one student) or participate (the rest of the class) in in-class paper discussions.
- Programming Assignments: Complete three--five (tentative) programming assignments on data science applications for software engineering.
- Semester Project: Complete a semester-long project related to the data science application development in software engineering. In line with the theme of this class, the projects applying data science to a selected software engineering area will be preferred.
Grading
- Grading is relative. I have no preset thresholds for any letter grade.
- The weights of different components of the course are specified below. I generally assign nominal grades based on the total score. However, I also look at the whole record to decide if a student merits a better grade than the nominal one.
Class Participation |
10% |
Paper Presentation and Reports |
20% |
Programming Assignments |
40% |
Semester Project |
30% |
- No Late Submissions: I will not accept late submissions, in general. I may make exceptions on a case-by-case basis, but you must discuss your case well before the deadline.