Official Course Description

This course will expose students to the
methods of developing large software systems in an industrial environment.
Working in teams, students will design, implement, and test large projects. The
work will include oral presentations and written reports.

Prerequisites

CS344 or equivalent

Objectives

Give students a taste of how programming in industry is different and more
complicated than programming for a course project

Expose students to tools and approaches that have been developed for
managing this complexity

Outcomes

Students will complete a large programming project in teams

Students will learn about and produce documentation that should accompany
large software products

Students will learn to think about software from the perspective of
customors, designers, programmers, maintainers, users and owners

Students will understand and experience the full software lifecyle

Students will learn tools to help them become more efficient programmers

Group Project

A major component of this course will be a large group
software project. Throughout the semester, you will be required to propose
project ideas, choose team members, produce design documents and work schedules,
submit periodic progress reports and give a final oral presentation of your
groups work as well as a final experience paper reflecting on your experience.
Your grade on this project will be a combination of a group project grade,
grades on individual components and an evaluation by your team members.

Homework

In addition to the group project, there will be individual homework
assignments. Some will be programming assignments and others will be written
assignments.

Late Policy

Meeting deadlines responsibly and consistently is an
important skill to develop for software engineering. I do not expect to accept
late work.

Due to the sequential nature of the work in this course, many assignments
will need to be completed even if they are not completed on time and for credit.

Exams

There will be no exams in this course.

Attendance and Participation

Participating in class discussions is an
important part of this course so attendance is required and will be a portion of
your grade.

Grade

50% Homework Assignments and Class Participation

50% Group Project

Notes on Academic Integrity

All work you submit must be your own
individual work unless explictly indicated. In particular, work taken from
books, the Internet, other students or any other source may not be submitted as
your own. One violation of this policy will result in no credit for the
assignment in question. A second violation will result in a failing grade for
the class. Additional information about rights, obligations and procedures
related to academic integrity can be found in Section IV of Clarkson's official
regulations.

Projects

Deliverables

Syllabus

**Tentative** schedule! Schedule will definitely change throughout the
semester

Date

Lecture Topic

References

Other Notes

Week 1

Mon 8/23

Welcome, Class Organization and Objectives, Class Introductions, How
is programming in industry different than programming for a class project?

Pfleeger 1

Think of software you would like and that you think your peers should
be capable of producing. Be the customer! (Submit an html file with ideas
for posting off class web page) Write a description of your previous
programming experience suitable for posting to the class. Some
questions to get you started

Weds 8/25

What is software (developers, companies, users)?

Weds 8/25

LAB: Makefiles

Week 2

Mon 8/30

How do we model the software development process? Why is modeling a
good idea?