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
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!
|Lecture:||Tuesday and Thursday 1:00–2:15 PM in Flint Lab, room 105|
|Discussion:||Wednesday 12:20–1:10 PM in Flint Lab, room 201|
office: CS 302
office hours: Monday 10:00AM–11:00AM
office: email for meeting place
office hours: Friday 11:15AM–12:15PM
office: email for meeting place
office hours: Wednesday 2:30PM–3:30PM
All assignment submissions are through Moodle.
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.
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.
|class and lecture participation||10%|
The project's 50% are further broken down:
|β release with presentation||10%|
|1.0 release with presentation||15%|
|Sep 6||T||Course introduction||product idea slides:
due Mon Sep 19, 9:00PM EDT
|Sep 7||W||No discussion first week|
|Sep 8||Th||Software development lifecycle|
|Sep 14||W||(discussion section): Work on product ideas. No formal class meeting.|
|Sep 15||Th||Pair programming activity|
|Sep 20||T||Product idea presentations|
|Sep 21||W||(discussion section): No formal class meeting.||project
due Fri Sep 23, 11:55PM EDT
|Sep 22||Th||Product idea presentations|
|Sep 27||T||Requirements||requirements specification:
due Tue Oct 4, 12:00PM noon EDT
|Sep 28||W||(discussion section): Guest lecture by Diana Freed, speaking about
software's role in preventing intimate partner violence. In CS building, room 150/151.
Pizza available at 12, talk starts at 12:20.
|Sep 29||Th||We will use this class time to work in groups on the requirements specification assignment.|
|Oct 4||T||Architecture and UML|
|Oct 5||W||(discussion section): Work in groups||design specification:
due Tue Oct 11, 12:00PM noon EDT
|Oct 6||Th||Effective presentation and teamwork discussion|
|Oct 11||T||Design presentations|
|Oct 12||W||(discussion section): Guest lecture by Juliana Freire:
Usability, Transparency, and Trust for Data-Intensive Computations
In CS building, room 150/151.
Pizza available at 12, talk starts at 12:20.
due Tue Oct 25, 12:00PM noon EDT
|Oct 13||Th||Design presentations|
|Oct 18||Tu||User interfaces|
|Oct 19||W||(discussion section): work in groups|
|Oct 25||T||Exam review. Design patterns|
|Oct 26||W||(discussion section): Guest lecture by Ihudiya Finda Williams: video. Material will be on the test.||
Team Assessment 1:
due Thu Nov 3, 11:55 PM EDT
due Tue Nov 8, 12:00PM noon EST
|Oct 27||Th||Exam 1|
|Nov 2||W||(discussion section): Guest lecture by Daricia Wilkinson: video. Material will be on the second test.|
|Nov 3||Th||No lecture. Use time to work on β release.|
|Nov 8||T||β release presentations|
|Nov 9||W||(discussion section): Work in groups|
|Nov 10||Th||β release presentations||user report:
due Mon Nov 21, 12:00PM noon EST
|Nov 15||T||OPTIONAL extra credit assignment (in class): Ethics in software engineering|
|Nov 16||W||(discussion section): Work in groups|
|Nov 17||Th||The promise and perils of using machine learning when engineering software|
|Nov 22||T||NO CLASS (Friday schedule)|
|Nov 23||W||NO CLASS: Thanksgiving break|
|Nov 24||Th||NO CLASS: Thanksgiving break
|Nov 29||T||Groupthink design exercise||1.0 release:
due Fri Dec 9, 11:55PM EST
|Nov 30||W||(discussion section): work on your 1.0 release|
|Dec 1||Th||Groupthink design exercise|
|Dec 6||T||Exam review. And Reasoning about software.|
|Dec 7||W||(discussion section): work on your 1.0 release|
|Dec 8||Th||1.0 release presentations||Team Assessment 2:
due Tue Dec 13, 11:55 PM EST
|Dec 14||W||Exam 2: 10:30 AM – 12:30 PM in Flint Lab, room 105|
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 Tuesday, 2:30–3:20PM in CS Building, room 343. The prerequisite to take CS 429 is an A- or better in CS 320 and instructor approval.
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 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.
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.
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.
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:
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.
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.