CS361: Software Engineering I - Syllabus
Winter 2008, Dr. Burnett

Class: CS 361, 4 hours, meets Tuesday/Thursday 8:30-10:00 in Rogers 332
Prerequisites: CS 261

Instructor: Dr. Burnett, burnett at eecs
Office: KEC 3051
Dr. Burnett's office hours: Please visit my home page for an up-to-date list.
Teaching Assistant: Chris Bogart, bogart at eecs
TAs' Office Hours: in January: 9-10 MW, 12-1 F; in Feb/Mar: 12-1 MWF. Location: KEC atrium.
Website: http://classes.engr.oregonstate.edu/eecs/winter2008/cs361

Welcome to CS 361

In this class, you'll be learning software engineering concepts and skills. The specific objectives are listed next.

If this is your first 300-level CS class, some adjustment in your practices and expectations may be needed for this course. You're now in the "Pro" program. Computer science professionals are problem solvers, and this course will expect that of you. So, you are expected to do what you need to do in order to learn the material -- it will not be spoon-fed to you. Your job is to learn. The instructors' and TAs' jobs are to make materials available that will help you, to challenge you, and to provide help when you ask for it.

For example, you are responsible for being a good team member, for pulling your own weight, and for leadership needed to make sure the team succeeds. You are responsible for professional and ethical performance of the class assignments and class participation exercises. You are responsible for the readings, and almost every week you will be quizzed over those readings. (The instructors will usually not cover the readings in class, but you need to have read them to be able to keep up with the class activities.) You need to be responsible for being able to write in a manner appropriate for a professional software developer.

Most important, you are not only encouraged, but in fact responsible for seeking extra help when you need it-from the TAs during their office hours, from Dr. Burnett during her office hours, or from the Writing Center. In short, you are responsible for learning software engineering, by making full use of all the materials and resources being made available to you in this course.

Course Objectives

After completion of this course you should be able to:

  1. Select the most appropriate software process model to use in a particular situation(Level 4).
  2. Synthesize requirements for a realistic software system and write a requirements specification document(Level 5).
  3. Model system requirements using one or more semi-formal notations such as UML, dataflow diagrams, entity-relationships diagrams, or state diagrams (Level 4).
  4. Design software systems at an architectural level, using one or more techniques such as object-oriented design or agile methods, and express these designs in design specification documents (Level 5).
  5. Validate designs and adjust the specification or design as necessary (Level 4).
  6. Describe several methods of estimating the cost and developing a schedule for a programming project (Level 1).
  7. Participate effectively in a team environment (Level 3).
  8. Produce professional-quality software-related documents (Level 3).

Textbooks:

Software Engineering by Pfleeger and Atlee (3rd Edition, 2006). [Required]

Waltzing with Bears: Managing Risk on Software Projects by Tom DeMarco and Timothy Lister (2003). ISBN 0-932633-60-9 [Required]

Course Assignments and Grading:

Course work will consist of the following activities:

Team Matters

You will eventually form 3-person teams. Written work produced by the teams will indicate which team member wrote each section. At the end of the project, each team member will assign points (confidentially) to the other team members. The team assignments will receive an overall grade, which will then be distributed according to the team members' point assignments as adjusted by the instructor.

In extreme cases, a team can decide to fire a team member for cause on or before week 6. To do this, the team members must first attempt to discuss potential firing with the team member, and then contact the instructor and make their case for why the team member should be fired. Fired team members may join together (if there are others who are willing to join you), or may continue the course as a one-person team. Since being a one-person team would mean a lot of work, it would be sensible to avoid getting fired.

Students with Disabilities

Accommodations are collaborative efforts between students, faculty and Services for Students with Disabilities (SSD). Students with accommodations approved through SSD are responsible for contacting the faculty member in charge of the course prior to or during the first week of the term to discuss accommodations. Students who believe they are eligible for accommodations but who have not yet obtained approval through SSD should contact SSD immediately at 737-4098.

Academic Dishonesty

Here is a link to the university's Office of Student Conduct. The School of EECS has rules regarding Academic Dishonesty, and they are strictly enforced. Note that the penalties are quite severe and that the instructor has no discretion once a case of cheating is detected.