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, exams, 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:
. 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.
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.
CS 320 is an integrative experience course. It focuses on developing communication, reflection, and learning-aware learning skills. Each student will:
engage in an in-class discussion at the start of the semester about what they will learn in CS 320 and how the skills they have acquired in their general education requirements will help them.
engage in an a reflective in-class discussion at the end of the semester about what they actually learned, and which learning activities were the most effective.
work extensively in groups.
present his or her work orally in class.
participate in active-learning activities with significant reflection components (including one on design, one on system understanding, and one on security in software).
reflect on submitted assignments and improve and resubmit the work, and
be guided by CS 529 students and their experience having previously taken CS 320.