CS 520 introduces students to the principal activities and state-of-the-art techniques involved in developing high-quality software systems. Topics include: requirements analysis, formal specification methods, software design, software testing and debugging, program analysis, and automated software engineering.
This course will cover the following high-level topics:
Besides becoming familiar with Software Engineering principles and best practices, students will learn about cutting-edge research in Software Engineering, Security, and Human-Computer Interaction. The exercises and the group project provide additional hands-on experience in using state-of-the-art techniques.
| Room: | CSL E110 |
| Lecture: | Tuesday and Thursday 1:00PM–2:15PM |
| Instructor: |
Yuriy Brun
office: CSL E453 office hours: TBA email: |
| TA: |
Erfan Entezami
office: CSL E215 office hours: Monday 9–10 AM email: |
| TA: |
Anders Freeman
office: CSL E215 office hours: Thursday 11–12 AM email: |
| TA: |
Zirui Liu
office: CSL E439A office hours: Friday 3–4 PM email: |
| Junior TA: |
Shireen Meher Chirravuri
email: |
| Junior TA: |
Sahana Uday Shetty
email: |
| Junior TA: |
Ankit Panda
email: |
| Junior TA: |
Moumita Karmakar
email: |
All assignment submissions are through Canvas.
Late policy: Assignment due dates and times are listed on the schedule. All deadlines are sharp and the submission site will be closed at the specified time. No extensions will be granted after the assignment is due. Early requests for extensions will be considered only in extenuating circumstances. No more than one extension will be granted per student.
Students are responsible for submitting all homework and project assignments. A student who fails to submit at least one of the homework or project assignments will receive the grade F for the entire class.
520| Assignment | Grade |
|---|---|
| Homework | 44% |
| Class project | 50% |
| Participation | 6% |
(subject to change; check regularly)
| week | date | day | topic | homework | project |
|---|---|---|---|---|---|
Week 1 |
Sep 8 | Tu | Course introduction | ||
| Sep 10 | Th | No Class: CSL Celebration | |||
Week 2 |
Sep 15 | Tu | Software architecture and design |
Homework 1 Due: Tu September 29, 2026, 9:00AM EDT |
Project group and topic selection
Due: Th September 24, 2026, 9:00AM EDT |
| Sep 17 | Th | Best and worst programming practices | |||
Week 3 |
Sep 22 | Tu | Object oriented design principles | ||
| Sep 24 | Th | Object oriented design patterns | |||
Week 4 |
Sep 29 | Tu | Version control systems |
Final project plan Due: Th October 8, 2026, 9:00AM EDT |
|
| Oct 1 | Th | Software testing | |||
Week 5 |
Oct 6 | Tu | Debugging | ||
| Oct 8 | Th | Collaborative specification 1 |
Homework 2 Due: Tu October 20, 2026, 9:00AM EDT |
||
Week 6 |
Oct 13 | Tu | Collaborative specification 2 |
Final project mid-date report Due: Th November 5, 2026, 9:00AM EST |
|
| Oct 15 | Th | No Lecture: Meet in groups for final project. | |||
Week 7 |
Oct 20 | Tu | Reliability and privacy | ||
| Oct 22 | Th | User interfaces | |||
Week 8 |
Oct 27 | Tu | Reasoning about programs | ||
| Oct 29 | Th | Collaboration and pair programming |
Homework 3 Due: Tu November 10, 2026, 9:00AM EST |
||
Week 9 |
Nov 3 | Tu | No Class: Election Day | ||
| Nov 5 | Th | Software fairness | |||
Week 10 |
Nov 10 | Tu | Software trust |
Final project completion Due: Tu Dec 15, 2026, 11:55PM EST |
|
| Nov 12 | Th | Automated program verification | |||
Week 11 |
Nov 17 | Tu | |||
| Nov 19 | Th |
Homework 4 Due: Tu December 1, 2026, 9:00AM EST |
|||
Week 12 |
Nov 24 | Tu | No Class: UMass follows Wednesday schedule | ||
| Nov 26 | Th | No Class: Thanksgiving | |||
Week 13 |
Dec 1 | Tu | |||
| Dec 3 | Th | ||||
Week 14 |
Dec 8 | Tu | |||
| Dec 10 | Th | Power of software | |||
Week 15 |
Dec 15 | Tu |
Software engineering is at its nature a collaborative activity and it benefits greatly from diversity. This class includes and welcomes all students regardless of age, background, citizenship, disability, sex, education, ethnicity, family status, gender, gender identity, geographical origin, language, military experience, political views, race, religion, sexual orientation, socioeconomic status, and work experience. Our discussions and learning will benefit from these and other diverse points of view. Any kind of language or action displaying bias against or discriminating against members of any group, or making members of any group uncomfortable are against the mission of this course and will not be tolerated. The instructor welcomes discussion of this policy, and encourages anyone experiencing concerns to speak with him.
Students are allowed to work together on all aspects of this class. However, for the homework assignments, each student must submit his or her own write up, clearly stating the collaborators. Your submission must be your own. When in doubt, contact the instructors about whether a potential action would be considered plagiarism. If you discuss material with anyone besides the class staff, acknowledge your collaborators in your write-up. If you obtain a key insight with help (e.g., through library work or a friend), acknowledge your source and write up the summary on your own. It is the student's responsibility to remove any possibility of someone else's work from being misconstrued as the student's. Never misrepresent someone else's work as your own. It must be absolutely clear what material is your original work. Plagiarism and other anti-intellectual behavior will be dealt with severely. Note that facilitation of plagiarism (giving your work to someone else) is also considered to be plagiarism, and will carry the same repercussions.
Students are encouraged to use the Internet, literature, and other publicly-available resources, except the homework solutions and test (including quizzes, midterms, finals, and other exams) solutions, from past terms' versions of this course and other academic courses, whether at UMass and at other institutions. To reiterate, the students are not allowed to view and use past homework and test solutions, unless explicitly distributed by the COMPCSI 520 staff as study material.
The use of AI-based and other generative technologies (such as, but not limited to ChatGPT) is allowed, but the students must explicitly and clearly disclose all such use whenever submitting anything for the class that benefited from the use of such technology. All submissions using such technology, for code, text, or any other material, must explicitly disclose and document its use.
Whenever students use Internet, literature, and other publicly-available resources, they must clearly reference the materials in their write ups, attributing proper credit. This cannot be emphasized enough: attribute proper credit to your sources. Failure to do so will result in a zero grade for the assignment and possibly a failing grade for the class, at the instructor's discretion. Copying directly from resources is not permitted, unless the copying is clearly identified as a quote from a source. Most use of references should be written in the words of the student, placing the related work in proper context and describing the relevant comparison.
The students should familiarize themselves with the UMass Academic Honesty Policy and Guidelines for Classroom Civility and Respect. These policies and guidelines apply to this class.
Students who violate University standards of academic integrity are subject to disciplinary sanctions, including failure in the course and suspension from the university. Since dishonesty in any form harms the individual, other students, and the university, policies on academic integrity have been and will be strictly enforced.
The following text books provide a more comprehensive discussion of the topics addressed in this class. Note that these text books are not a requirement for this class.
Students should have taken an intermediate course in software engineering and have built, in a team, a software system of roughly 10,000 lines of code or more. Students are expected to be familiar with an object oriented programming language, such as Java or C++. The ability to use linux and download and use off-the-shelf tools are expected.
Various materials used in this course have greatly benefited from materials developed by Rene Just, Michael Ernst, David Notkin, Alex Orso, Juan Zhai, Heather Conboy, Claire Le Goues, and Lee Osterweil.