CS 320: Introduction to Software Engineering

What is CS 320 about?

In this course, students learn and gain practical experience with software engineering principles and techniques. The practical experience centers on a semester-long team project in which a software development project is carried through all the stages of the software life cycle. Topics in this course include requirements analysis, specification, design, abstraction, programming style, testing, maintenance, communication, teamwork, and software project management. Particular emphasis is placed on communication and negotiation skills and on designing and developing maintainable software. Use of computer required. Several written assignments, in-class presentations and a term project. This course satisfies the IE Requirement. Prerequisite: CMPSCI 220. 4 credits.

How does the course work?

CS320 uses the Moodle learning management system. The course website is on Moodle: moodle.umass.edu. Communication and posting of course material will be via Moodle. All assignments will be submitted via Moodle.

Do I have to attend class?

Attendance is mandatory. Conceptual material will be presented in lecture, project work will take place in discussion. Much project work will be done outside of class.

Project Management

Each development team will be assigned a project manager. Project managers are students enrolled in CS 529, an advanced class on project management. Project managers are present for all CS320 lecture and discussion meetings, and are available to their teams throughout the semester. (The prerequisite to take CS 529 is an A- or better in CS 320 and instructor approval).

Requirement for CS320

In order to succeed in this course you must be able to program applications in an Object-Oriented paradigm. If you have taken CS220 you are all set. You must be able to work as a member of a team to the extent that you contribute in a meaningful way to the development process of your team.

Important Course Layout Information

Teams are formed in the first week. Each team will spend the semester developing a software application for a customer we have selected. The development process will follow the traditional stages: Requirements, Design, Testing and coding. Each team will present their work for each development stage. The goal is to exhibit a working software application that fulfills the customer's needs.


There will be a midterm and a final exam.


Integrative Experience

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