DSCI-644. Software Engineering for Data Science (Spring 2022) Course Syllabus V 2.2 - BETA
Course Description
This course focuses on the software engineering challenges of building scalable and high-quality data science projects. Software design and development methodologies and available technologies addressing the significant software aspects of data science, including software architectures, application design patterns, different types of data models and data management, software testing, deployment architectures, and software evolution, will be covered in this course. This course aims to develop the next generation of data scientists for AI-Enabled software systems.
Course Topics
Please refer to the class schedule for the detailed list of course topics.
Textbook(s)
There is no required textbook for this course since it relies on research papers from leading software engineering conferences (TSE, ICSE, FSE, ASE, ESEM, ICST etc.). Selected papers will be presented / Reviewed by students throughout the semester.
Here is a list of recommended books to refer to during the semester:
Fowler, Martin. Refactoring: improving the design of existing code. Addison-Wesley Professional, 2018.
Norman Fenton and James Bieman. Software Metrics: A Rigorous and Practical Approach. Addison Wesley Professional, 2020.
Paper presentations and Reviews
Every student is required to present one paper and review one other paper. Paper presentation will be assigned to a group (each group will present one paper), but paper review will be individual (each student submit the review s/he is assigned to). Presenters have to submit their presentation slides prior to their presentation in class. Reviewers are also required to submit their review prior to the session of the paper’s presentation. Any delay in submission without notice will not be accepted. Refer to the course schedule on the course website (myCourses) for details when presentations/reviews are due.
Group Project
There will be a final project for the course that develops a research project related to designing and modeling the evolution of AI-enabled Software. The instructor will provide topics for the students (e.g., improve an existing tool, literature review, empirical study between several tools, develop a new metric model, etc.). Group creation will be random, and working in a group is mandatory. The students must construct their final report by combining 3 submissions throughout the semester:
–Phase I -- Introduction and Open Investigation --1-2 pages report -- 10% –Phase II Solution Design and Preliminary Investigations --4-6 pages report -- 15% –Pre-Phase III -- Present work of Phase I and II and your progress on Phase III – Presentation -- 10% –Phase III Validation and Limitations --8-10 pages report -- 20% –Pre-Phase IV -- Present your final work -- presentation -- 20% –Phase IV Final Report --10-∞ pages report -- 25% Students are also required to schedule a meeting with the instructor to discuss the project progress right after Phase III. They are also required to present their findings (summary of their research paper) in a presentation by the end of the semester.
The final deliverables of the project should include the final project paper, source code (if any), data (if any). The final paper should be close to the quality of a publishable workshop paper and has the potential to be developed into a complete research paper. All written papers must use the ACM SIG Proceedings Template. The instructor reserves the right to ask students to fix papers that do not conform to the template.
Individual Assignments
This set of assignments be given throughout the term to reinforce class material and will help students better understand the theoretical part of the course. Every student is required to work individually on the class assignments. No group submission is allowed.
Method of Instruction:
The course will combine lectures and paper reviews. Students will collaborate inside and outside of class in support of group projects.
Attendance and Participation Policy:
Participation means attending classes either in person or online. For online students, you need to keep your camera open throughout the course session. If you need to be absent, you need to email the instructor prior to your absence. Each unannounced absence may result in (-1) penalization from the participation grade (%5). You need to listen and contribute to the class discussion in a proactive manner.
Grade Distribution
Midterm Exam 15% Final Exam 20% Individual/Team Project 25% Research papers presentations: 10% Individual Assignments 25% Classroom Participation 5%
The following tables will be used to determine your letter grade at the conclusion of the course:
Grade Percentage Range A 93+ A- 90 <= x < 93 B+ 87 <= x < 90 B 83 <= x < 87 B- 80 <= x < 83 C+ 77 <= x < 80 C 73 <= x < 77 C- 70 <= x < 73 D 60 <= x < 70 F under 60 Students will be evaluated individually using midterms and the final exam. Teams will be given a single grade for units and project deliverables submitted. Individual team members may have their grades for the units and team project adjusted up or down based on their contribution to the project. This adjustment will be based on peer evaluations from your teammates.
If you have a personal event, an RIT activity, or a job-related activity that keeps you from class, please check with the instructor to see if it qualifies as an excused absence. Make-up exams will only be granted for very good reasons (job interviews known in advance, documented sickness, family emergencies, etc.).