CS 209 Software Implementation and Requirements

Spring 2006

Department of Computer Science

University of Vermont

Class Meeting:

Schedule

Instructor:

Course Overview:

This course covers the second half of a single iteration of the life cycle of a software product. The material covered in this course includes common current practices in a variety of industrial settings as well as more recent leading-edge advances.

The course includes three opportunities for learning: the lectures, the assignments, and the course project. All students are expected and encouraged to actively participate in the discussions during the lectures.

The course project will expose students to the implementation and verification of a substantial software development effort. The students will also learn the benefits (and the difficulties) of group development. The assignments provide an opportunity to practice specific skills used during these tasks. Each assignment includes two components: an open-ended portion that contributes to the course project and a more directed portion that focuses on specific skills.

This course is primarily language agnostic; each group may choose its own implementation language and platform. Class examples will use a combination of Java and C++.

Course Objectives:

The student completing this course should be able to:

Course Textbooks:

Course notes will be distributed in class to supplement the lectures. The course notes generally present a writeup of the same material as the lectures. On occaision, the course notes will present additional material for which there is insufficient time during lectures. You will be responsible on quizes and exams only for the material covered in lectures; the assignments on the other hand may require material included only in the course notes.

The course readings include notable papers associated with many lectures. These papers will be distributed in class and are available from the course web page.

Grading:

The activities in the course contribute to a students grade as follows:

(Subject to change)

Project                                  40%
5 Assignments    8% each    40%
2 Quizzes           7% each    14%
Participation                           6%

Graduate students will be required to take additional roles in the project.

Student Cooperation:

The rules for cooperation are different for the two portions of the assignments: the directed, non-project oriented portion of the assignments must be done by each student individually. On the other hand, students are allowed and encouraged to work in pairs on the project-oriented portion of the assignments. Regardless of the working arrangement, the two portions of each assignment must be turned in separately, with the names of all students contributing clearly indicated. If the project portion is a joint effort of two students, only one copy of that portion should be submitted.

The project will be a group effort. Each group will be responsible for determining the roles of each member.

Other Course Procedures:

Students with exceptional needs are encouraged to inform the course instructor of any necessary accommodations as soon as possible. Students are reminded that University policy (see the student handbook pages 214-224) states that the need for any accommodations should be documented at least one week before the accommodation is available.

Although student cooperation is encouraged in the ways described above, no cheating will tolerated. For details of the University policy on academic integrity, see pages 197-203 of the student handbook.  The Department of Computer Science takes all forms of academic dishonesty very seriously (see its statement here). Any violations of this code will be fully prosecuted.