CSC 309 Course Syllabus

CSC 309: Software Engineering II



Instructor
Gene Fisher (gfisher@calpoly.edu)
Office: 14-210
Office Hours: MWF 4-5PM, Tu 9-11AM, other times by appointment


Course Objectives



Class Materials

All of the books and technical documentation to be used in 309 are available online. Hard copies of the books can be purchased at the websites, but I highly recommend the online versions; they are what I use all of the time. The Java materials are:

Java is the recommended implementation language for your projects. If you're team uses some language other than Java for the design and implementation, you'll need to find comparable material to the above for your selected language. We can discuss finding the appropriate documentation in early lab meetings, as necessary.

In addition to these materials, there will be supplementary material distributed in class and/or available online in the master class directory on unix3 -- http://users.csc.calpoly.edu/~gfisher/classes/309. Further details of online class materials will given throughout the quarter.

Activities

In 309, we will be working on the second half of the software system lifecycle. This includes the activities of design, implementation, functional testing, and formal verification. The projects your will be working on are the continuation of work completed by teams in CSC 308 last quarter. Depending on how team organization works out, you may continue on a project you worked on last quarter, or you may work on a project different than the one you worked on last quarter.

The specific activities for 309 are the following:

You will work in project teams of five or more people.

Project Milestones:

The projects are divided into the following major areas:

These activities are not carried out strictly sequentially. In particular, there is significant overlap in the design, implementation, and testing phases. This accounts for the fact that the total number of listed weeks is 19, not 11.

Evaluations

There are two graded components for the course -- the project component and the exam component. These count for 65% and 35% respectively of the final grade. The exam component consists of one midterm and a final examination, weighted 12 and 23% respectively.

Your project work performed during the quarter will be evaluated on a cumulative basis. If you hand in "acceptable" work for a milestone, but receive a low grade for that work, you can improve your grade by fixing the problems which resulted in the low grade. If you produce "unacceptable" work for a milestone, your project grade will be reduced by 10% overall for the class, even if you fix the problems with the unacceptable work in a later milestone.

Work is "unacceptable" if one or more of the following is true:

  1. it does not compile (applies to code deliverables)

  2. it is not adequately documented

  3. it does not meet other specific standards set by Fisher or team leaders

The percentage breakdown for the major project components is as follows:

core system design 18%
graphical interface design 18%
core system implementation 15%
graphical interface implementation 15%
system testing 18%
acceptance testing and QA 10%
administrative duties 6%
Grades will be given in points; roughly, 90% of the points represents and an ``A'', 80% a ``B'', and so on. The milestone evaluations will be given at in- person meetings between the instructor and team members during the scheduled lab times.

The projects will be graded on both a full-team basis and an individual basis. The projects will be sufficiently well modularized that each team member will have well-defined work products. These will be graded on an individual basis. There are also project aspects, such as overall integration and testing, that are a team effort. These aspects of the project will be graded on a team basis. The final project report will contain a description of the individual work assignments for each team member.

Bi-Weekly Activity Reports

Each team member is required to submit a bi-weekly activity report to the instructor. The reports are due at the end of each even-numbered weeks of class. These reports are sent via electronic mail by 11:59PM on the Friday of the even-numbered weeks.

A template for the report is in the file users.csc.calpoly.edu:~gfisher/ classes/ 308/ handouts/ bi- weekly- report- template. You must submit bi-weekly reports as plain text, not as email attachments of any form. NOTE: You will lose 3 percentage points of your total course grade for every bi-weekly report that is not submitted on time and in plain text form.

How to Submit Project Work

All project work will be submitted and reviewed electronically. Each team will designate a specific account in which the project work will be stored. There will be a repository in the project account with the same structure as the 308 project directories. Further details of project repository organization will be discussed in lecture and lab.

Team Work

Working in a project team is one of the intended learning experiences of this class. An important word of warning in this regard: If you experience problems which you cannot reasonably iron out by yourselves, COME IN EARLY to discuss them. It can be disastrous to ignore early warning signs of problems that can undermine a team's ability to complete its work later in the quarter.

It is also important to establish a professional working relationship within the team, such that all members can feel completely free to contribute constructive criticism to their colleagues. In many cases, you will be working with people you know and with whom you are friends. In such cases, you may be concerned with hurting someone's feelings by criticizing her/his work. Do not let such concerns affect your professional judgment. Of course you should be polite when you criticize. However, never be reluctant to give constructive criticism. In many cases, some of the best team work will arise in the context of heated critical debate.

The Milestone 1 writeup describes specific initial duties for project team members. These duties will be determined during the team meetings in the first week of lab. Milesone 1 duties are described as "initial" since your team needs be flexible in re- assigning work duties as the quarter progresses. We will discuss and consider such re-assignments during team meetings in lab.

Computer Work

We will be using the the unix3 CSL servers and the PCs in the software engineering and computer science department labs. Early in the quarter there will be appropriate orientation on how to use the machines and what tools are available.


Lecture, Lab, Milestone and Exam Schedule

309 has three hours of lecture and three hours of lab. The lectures will be held in a normal fashion. The labs will be devoted to two types of activities: milestone evaluations and general discussions. Milestone evaluation meetings will be held on Wednesday and Friday labs. General discussions will be held on Mondays. Specific lab meeting schedules will be worked out in the first week of class.

The following are specific due dates:

Milestone Description Due Date
M1 Team Formation, Spec Reviews, Initial SCOs Week 1
Package Design Refinement; Model/View Design Refinement Week 2
M2 Detailed Model/View Class Design Week 3
Initial Functional Testing Design
Model Class Data Representations; View Class Component Refinements Week 4
Process Class Design Week 5
Refined Testing Design; Formal Method Specification
M3 Continued Model/View/Process Design and Implementation; Week 6
Refined Method Specification; Unit Test Plans
Refined Design, Implementation and Testing; Week 7
Initial Test Implementation; Initial System Integration
Midterm Covers Design and Testing Friday Week 7
Refined Implementation, Testing, and Integration Week 8
M4 Further Refined Implementation, Testing, and Integration Week 9
Further Refined Implementation, Testing, and Integration Week 10
M5 Final project submission, final exam Finals Week
As noted above, project milestones will be evaluated at in-person team meetings during weekly labs, on a schedule to be determined during the first week of class, once the teams have been established.

Note that Monday of Week 3 is a holiday; Tuesday of that week follows a Monday schedule. Also, the Monday of Week 7 is holiday. The milestone writeups will make it clear on exactly what date milestone deliverables are due.

The midterm exam is Friday 15 May. The final exam is Monday 1:10-4pm. See


http://content-calpoly- edu.s3.amazonaws.com/registrar/1/documents/finals/finals2154.pdf.pdf
for the official final exam schedule.



index | lectures | handouts | examples | doc | lib | grades