CSC 308: Software Engineering I

CSC 308: Software Engineering I



Instructor

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

Course Objectives

Course Materials

Course materials consist of the following:

The online material is located in the master class account at users.csc.calpoly.edu/~gfisher/classes/308. All enrolled students should already have accounts on the required machines. If you do not, we will fix this during the first week of class. Course directories are organized as follows:

Activities

In 308, we will be working on the first half of the software development process. This includes the activities of requirements analysis, model specification, high-level design, prototyping, testing, documentation, and project management.

The specific activities for 308 are the following:

These activities are organized into weekly milestones, as detailed at the end of the syllabus. You will work in project teams of 6 people 1. Expect to spend 12-15 hours per week on class work, including lecture and lab.

Evaluations

There are two graded components for the course -- a team project and exams. These count for 62% and 38% respectively of the final grade. The following is a percentage breakdown of the major graded components of the course:

Major Project Components:
     requirements analysis 20%
     formal model specification and design 20%
     ui prototype 9%
Project Testing and Administration:
     inspection testing 5%
     administrative team duties 8%
Exams:
     lab quizzes 6%
     midterm 10%
     final 22%
Total: 100%

Grades will be given in points; 90% of the points represents and an ``A'', 80% a ``B'', 70% a ``C'', and 60% a ``D''.

Administrative team duties include the following:

Note Well: While administrative duties account positively for 8% of your total grade, you can lose a lot more than 8% if you fail to perform them. In the worst case, if you hand in no bi-weekly reports, attend no lab meetings, and receive poor team reviews, you will lose 55 percentage points of your grade, and therefore fail the class, even if your project work and exam scores are great.

The work you do on the major project components is cumulative throughout the quarter. That is, you will be working continuously throughout the quarter on a single large project, not on a series of independent assignments. Your project work will be evaluated at weekly milestones during the quarter, including five formal written evaluations.

Grading on the project milestones will be done on a "progressive" basis. In general terms, progressive grading means that lower grades on early milestones can be improved or in some cases completely replaced by higher grades on later milestones. In order to be eligible for progressive grading, you must make a good effort on the work for each milestone, that is, you must turn in something "respectable". In terms of percentage grading, a respectable score is 60% or better. The detailed writeups for each milestone define precisely what constitutes respectable work for a particular milestone. Handing in nothing for a particular milestone is as "unrespectable" as it gets. If you hand in nothing, you will receive zero, and be entirely ineligible for progressive grading on that milestone.

There will be five formal written evaluations of your project work. These are the points at which the "respectability" of your work will be judged for the purposes of progressive grading.

The other aspect of progressive grading relates to the final exam. Specifically, truly outstanding work on the project may make up to some extent for poor performance on the final exam. That is, if you do outstanding work on the project, the project may be weighted more than 62% and the final less. In percentage terms, "truly outstanding" is 96% or higher.

Milestone evaluations will be given at in-person meetings with the instructor and team members. Each team member is required to attend the instructor/team meetings each week. NOTE: You will lose 3 percentage points of your grade for every project meeting that you miss, unless you make arrangements in advance to be excused from the meeting. This means that if you miss all of the project meetings during the quarter, you can get no better than a C in the course. In all likelihood, if you miss a substantial number of team meetings, you will fail the class.

Work on the major project components and project testing will be subdivided into individual responsibilities. Each team member will be graded on an individual basis for these project components. Your work as a team member will be evaluated based on meeting attendance and evaluation by your peers and team leader.

Project teams will conduct leader and peer reviews during the last week of class. Details of these reviews are in the forthcoming handout on performance review guidelines. NOTE: You can lose up to 5 percentage points of your grade for each review on which you receive a sub-standard evaluation. This means you cannot get an A in the course if you receive consistently low evaluations from your peers and your leader. In the interest of fairness, individuals may rebut a poor evaluation that they feel is unfair, and the instructor will consider the rebuttal in the final decision of what constitutes sub-standard team performance.

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, using the facilities of the web. In the first two weeks of lab, we will appoint project librarians and organize the project repository structures. Each team librarian will be responsible for maintaining the project repository used for weekly evaluations.

Team Work

Working in a team is one of the significant learning experiences of this class. An important word of warning in this regard: If you experience team 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 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 reluctant to criticize someone's work. Do not let such reluctance affect your professional judgment. Of course, you should be polite and constructive 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 debate.

In your early team meetings you will assign general team duties as follows:

Member Duties
Leader (a) Provides administrative and collegial leadership to team members; (b) meets with other team leaders as necessary.
Assistant Leader (a) Assists the leader; (b) fills in for leader when necessary.
Technical leader (a) Provides technical leadership to team members in the areas of user of tool use, including selection of which tools are best for the team to use; (b) fills in for leader when necessary (when there is no assistant leader).
Librarian/Secretary Manages the project repository; takes meeting notes. You may choose to have a rotating secretary position, where more than one team member is assigned note-taking duties at different times.
Documentation Specialist (a) Organizes HTML documentation and makes available to librarian; (b) provides leadership in the area of proper technical writing.
Aesthetic/Graphics Specialist (a) Provides the "aesthetic eye" for aspects of the project that need it; (b) provides leadership in the use of the drawing tool used to produce user interface pictures.

While each member is assigned specialized duties, no one will do all of and only a particular task. E.g., the documentation specialist is in charge of organizing the documentation and takes a lead role in its preparation. However, this does not excuse the documentation specialist from other team duties, nor does it excuse any other team members from preparing their own documentation. Also, it is definitely not the job of the aesthetic/graphics specialist to do all of the user interface design and drawing; everyone will do work in this area.

In addition to the preceding assignments, team members may choose to specialize in one of the following additional areas:

Again, no one person will do all of one task. In management terms, we have a horizontal team structure, where all team members work on all aspects of development. In particular, each team member will perform a significant amount of work in each of the preceding three areas.

Computer Work

We will be using PCs and shared UNIX systems in the Computer Science Labs (CSL). Early in the quarter there will be some orientations on how to use the machines and what tools are available. You may do much of your work on a home computer, but the work for each project milestone must be checked in to the project librarian's directory on the CSL machine named unix3. We will discuss the check-in procedure in detail during the second week.

Lecture, Lab and Milestone Scheduling

As you know, 308 has three hours of lecture and three hours of lab each week. Since we are scheduled in the same "studio-style" room for both lecture and lab, some class days will be more lab than lecture, and other days vice versa. We will work out the scheduling details during the first and second weeks of class.

The majority of lab time will be devoted to project team meetings. Some of the meetings will be with your project customer and supervisor, a.k.a, your instructor. Other lab time will be yours to use for team meetings. It is strongly recommended that you use lab time for team meetings, since these are times with guaranteed availability for all team members.

The following are specific milestone due dates. Unless otherwise specified, all milestone deliverables are due on or before 11:59:59PM on Wednesdays. Precise details of deliverables are given in each milestone writeup.

Milestone Description Due Date
M1 Team Formation, Duty Assignments
Rough Draft Requirements Section 1
Week 2
M2 Rough Draft Requirements Section 2 Week 3
M3 Third Draft Requirements Week 4
M4 Rough Draft Formal Spec
4th Draft Requirements
Oral Presentation
Inspection Test
Week 5
M5 2nd Draft Formal Spec
5th Draft Requirements
Inspection Test
Week 6
M6 3rd Draft Formal Spec
6th Draft Requirements
Inspection Test
Week 7
M7
1st Draft Prototype
4th Draft Formal Spec
7th Draft Requirements
Inspection Test
Week 8
M8
2nd Draft Prototype
5th Draft Formal Spec
8th Draft Requirements
Inspection Test
Week 9
M9 Oral Presentation
Team Peer Evaluations
Week 10
M10 Completed Project Wed, 18 Mar, 11:59PM

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 20 February. The final exam is Friday 10:10am-1pm. See

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



index | lectures | handouts | examples | textbook | doc | grades

Footnotes:

1 Occasionally, a team may loose a member or members to attrition. In such cases, workload will be adjusted accordingly.