CS 320: Introduction to Software Engineering

Fall 2024

This website is for the section of CS 320 taught by Prof. Yuriy Brun.

News | Description | Logistics | Grading | Integrative Experience | Schedule | CS 429 | Nondiscrimination | Academic integrity | Reading | Prerequisites | Acknowledgements

News:

Description:

Software engineering goes beyond software development. It involves defining software products, dealing with customers who may not understand software or even their own needs, coordinating large teams of coworkers, ensuring the quality of software, shipping and maintaining software, and much more! As well as requiring strong technical skills, a good software engineer requires strong teamwork and communication skills. Get ready to learn software engineering principles first hand, ship product, and survive to do it again!


Logistics:

Lecture:Tuesday and Thursday 1:00–2:15 PM in Flint Laboratory, room 105
Discussion:Wednesday 10:10–11:00 AM in Ag. Engineering, room 119
Instructor:



Yuriy Brun
office: CS 302
By Appointment
email:
TA:



Pooja Patel
office: LGRT T222
office hours: Wednesday 2:30PM–3:30PM
email: poojappatel@umass.edu
TA:



Sachin Thomas
office: LGRT T222
office hours: Monday 11AM–12PM
email: sachinthomas@umass.edu
Ethics TA:
Kien To
email: ktto@umass.edu

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.


Grading:

Students are responsible for submitting all assignments. Each student who fails to participate in one or more of the exams, or whose group fails to submit one or more of the seven (7) project assignments, will receive the grade F for the entire class.

 Assignment Grade
quiz 1 20%
quiz 2 20%
PEaRCE ethics training 5%
class and lecture participation 10%
project 45%

The project's 45% are further broken down:

product idea 1%
requirements specification 7%
software design 10%
α release 2%
β release with presentation 7%
user report 3%
1.0 release with presentation 15%
total: 45%

Integrative Experience:

CS 320 is an integrative experience course. It focuses on developing communication, reflection, and learning-aware learning skills. Each student will:

Schedule:

(subject to change; check regularly)

week date day topic due
Week 1
Sep 3 Th Course introduction product idea slides:
due Mon Sep 9, 9:00PM EDT
Sep 4 W (discussion section): Work on product ideas. No formal class meeting.
Sep 5 Th Software development lifecycle
Week 2
Sep 10 T Product idea presentations
Sep 11 W (discussion section): Work on product ideas. No formal class meeting. project preference survey:
due Fri Sep 13, 11:55PM EDT
Sep 12 Th Product idea presentations
Week 3
Sep 17 T Requirements requirements specification:
due Tue Oct 1, 12:00PM noon EDT
Sep 18 W (discussion section): No formal class meeting.
Sep 19 Th Teamwork
Week 4
Sep 24 T Groupthink design exercise begins
Sep 25 W (discussion section): Work in groups on the requirements specification assignment
Sep 26 Th Groupthink design exercise finale
Week 5
Oct 1 T Architecture and UML
Oct 2 W (discussion section): Work in groups design specification:
due Thu Oct 10, 12:00PM noon EDT
Oct 3 Th No class: Work on Design specification
Week 6
Oct 8 T Design specification presentations
Oct 9 W (discussion section): Work in groups on the design specification assignment
Oct 10 Th Quiz review. User interfaces
Week 7
Oct 15 Tu No class: MONDAY SCHEDULE PEaRCE pre-activity on GradeScope:
due Fri Oct 11, 12:00PM noon EDT
Oct 16 W (discussion section): work in groups
Oct 17 Th Quiz 1
Week 8
Oct 22 T PEaRCE: Ethics in Software Engineering PEaRCE activity online: due Fri Nov 1, 11:59PM EDT
Oct 23 W (discussion section): work in groups α release:
due Tue Oct 29, 12:00PM noon EDT
Oct 24 Th No class: Work on α release
Week 9
Oct 29 T Design patterns
Oct 30 W (discussion section): work in groups Team Assessment 1:
due Thu Nov 7, 11:55 PM EST

β release:
due Thu Nov 14, 12:00PM noon EST
Oct 31 Th Testing
Week 10
Nov 5 T No UMass classes: Election Day. Go Vote!
Nov 6 W (discussion section): Work in groups
Nov 7 Th Debugging
Week 11
Nov 12 T PEaRCE: Ethics in Software Engineering Conclusion
Nov 13 W (discussion section): Work in groups
Nov 14 Th β update presentations
Week 12
Nov 19 T Quiz review. Reasoning about software user report:
due Tue Nov 26, 12:00PM noon EST
Nov 20 W (discussion section): Work in groups
Nov 21 Th Quiz 2
Week 13
Nov 26 T No class: work on 1.0 release.
Nov 27 W No class: Thanskgiving 1.0 release:
due Tue Dec 10, 11:59PM EST
Nov 28 Th No class: Thanksgiving
Week 14
Dec 3 T Software Fairness
Dec 4 W (discussion section): work on your 1.0 release
Dec 5 Th Automated program repair and formal verification
Week 15
Dec 10 T 1.0 release presentations Team Assessment 2:
due Fri Dec 13, 11:55 PM EST

CS 429: Software Engineering Project Management

CS 429 is an advanced class on project management. Each student in CS 429 leads a team of CS 320 students toward a successful project completion. In addition to all the CS 320 lecture and discussion meeting times, CS 429 students also meet on Thursday, 9:00–9:50AM in CS building, room 303. The prerequisite to take CS 429 is an A- or better in CS 320 and instructor approval.

429 Schedule:

(subject to change; check regularly)

week date topic
Week 1 Sep 5 Introduction
Week 2 Sep 12 No class
Week 3 Sep 19 Starting teamwork
Week 4 Sep 26 Requirements
Week 5 Oct 3 No class
Week 6 Oct 10 Design
Week 7 Oct 17 Alpha
Week 8 Oct 24 No class
Week 9 Oct 31 Beta planning
Week 10 Nov 7 Beta update
Week 11 Nov 14 Beta recap
Week 12 Nov 21 User report
Week 13 Nov 28 Thanksgiving: No class
Week 14 Dec 5 1.0 Release

Nondiscrimination policy:

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.


Academic integrity:

Students are allowed to work together on all aspects of this class except the midterm. 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 CS 320 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.


Course Staff Are Mandatory Reporters:

The University of Massachusetts has decided that all its faculty are mandatory reporters. This means that if a student tells a faculty member about abuse or harassment, the faculty member is required to report this to the authorities. There is ample evidence that this practice is hurtful to victims of abuse and harassment (see here and here), but UMass has given faculty no choice, and it is important that students are aware of this policy to avoid unexpected surprises.


Reading:

There is no required textbook for the course. There may be several reading assignments that will come from publicly available research papers. Students who wish to read established textbooks beyond the assigned reading should consider:


Prerequisites:

This course does not teach students to program. Software engineering is a larger concept than programming and both cannot be taught in a single semester class. Students should already be proficient in at least one programming language (such as Java or C++). A grade of C or higher in CS 220 is required, though you will likely have a difficult time with the material in CS 320 if you got below a B in CS 220.

Acknowledgements:

Various materials used in this course have greatly benefited from materials developed by Gail Alverson, Lori Clarke, Michael Ernst, André van der Hoek, David Notkin, Nenad Medvidovic, Lee Osterweil, and Ian Sommerville. Thank you.