What is CS 320
about?
Software engineering goes beyond designing and writing
code. It involves communication with customers, users, and other technical and
non-technical professionals. A software engineer must specify the behavior and
operating parameters of a system based on the ideas of a customer who may not
understand the technical aspects of software. A software engineer acts as a
consultant to help elicit the customer’s needs and translate them into formal
specifications that can be used to design and build the required software
system.
In this course, you 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 out for a customer we have selected. The goal is
to exhibit a working software application that fulfills the customer's needs.
The project is carried out in teams using agile software development methodology.
Topics in this course include requirements analysis,
specification, design, abstraction, 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 is required. There are several written
assignments, in-class presentations, and a term project. This course satisfies
the IE Requirement.
Prerequisite: CMPSCI 220. 4 credits.
What is
Integrative Experience?
CS 320 is an integrative experience (IE) course. It
focuses on developing communication, reflection, and learning-aware learning
skills. You get the opportunity to:
· engage in an in-class
discussion at the start of the semester about what you will learn in CS 320 and
how the skills you have acquired in your general education requirements will
help you.
· engage in a reflective
in-class discussion at the end of the semester about what you actually learned,
and which learning activities were the most effective.
· work extensively in groups.
· present your work orally in
class.
· participate in
active-learning activities with significant reflection components (including on
design, system understanding, and 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.
How does the
course work?
You are assigned to a development team run by 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).
This course does not teach you to program. Software
engineering is a larger concept than programming and both cannot be taught in a
single semester class. You should already be proficient in at least one
programming language (such as Java or C++). You should have successfully
completed a course that deals with large software programs that consist of and
make use of code libraries and APIs to communicate with other systems. For
example, an application that utilizes libraries to build a user interface and
also communicates with a database system. 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.
Do I have to
attend class?
Yes, your participation in class enhances your
learning experience and that of your peers. Conceptual material will be
presented in lecture, project work will take place in discussion. Much project
work will be done outside of class.
How is the
course structured?
Teams are formed in the first week. Each team will
spend the semester developing a software application for a customer we have
selected. The goal is to exhibit a working software application that fulfills
the customer's needs. The project is carried out in teams using agile software
development methodology.
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.
Please see the syllabus for the course plan
(including the grading scheme).