CSC 307: Introduction to Software Engineering

CSC 307: Introduction to Software Engineering




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/307. 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

The specific activities for 307 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 60% and 40% respectively of the final grade. The following is a percentage breakdown of the major graded components of the course:

Major Project Components:
     requirements analysis 10%
     formal model specification and design 8%
     architectural program design 8%
     user interface and data design 8%
     implementation 7%
Project Testing and Administration:
     inspection testing 4%
     functional testing 7%
     acceptance testing 3%
     administrative team duties 5%
Exams:
     lab quizzes 8%
     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 5% of your total grade, you can lose a lot more than 5% 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.

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 60% 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 to gfisher@calpoly.edu via electronic mail by 11:59PM on the Friday of the even-numbered weeks. NOTE: Since week 10 is thanksgiving holiday, the last bi-weekly is due Friday of week 11.

A template for the report is in the file users.csc.calpoly.edu:~gfisher/ classes/ 307/ handouts/ bi- weekly- report- template. You must submit bi-weekly reports as plain text, not as email attachments of any form. Please make the message subject "307 Report". The template file can then be copied directly into the message body.

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

NOTE: No late work will be accepted. Each milestone indicates the time and date on which work is due.

There is a very important file worth noting here in the syllabus. It's the file named "work-breakdown.html", which will be stored in the administration directory of your projects. This file documents the individual responsibilities of each team member. It is a very important part of your project.

NOTE: You will not receive any credit on a milestone if you do not have an entry in the work-breakdown file that is submitted with that milestone. You have one and only "excuse ticket" that you can use if you forget to do this for a milestone. You can use this excuse ticket for no more than one milestone, and it can only be used for a missing work-breakdown entry that's a clerical error. That is, all of the work you needed to do still has to be checked in. The only thing that excuse ticket is good for is a missing work-breakdown entry.


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 modeling, design and implementation; (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, 307 has three hours of lecture and three hours of lab each week. 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 and TAs. 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, milestone deliverables are typically 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
First Draft Model
Week 4
M4 Fourth Draft Requirements
Second Draft Model
Inspection Tests
Oral Presentations
Week 5
M5 Architectural Program Design
Program Testing Design
Week 6
M6 Data Design
UI Design
Midterm Peer Evaluations
Week 7
M7
First Draft Implementation and Test
Design Refinement
SCOs
Week 8
M8
Second Draft Implementation and Test
Design Refinement
SCOs
Design Reviews
Week 9
M9 Code Reviews Week 10
M10
Third Draft Implementation and Test
Week 11
M11 Completed Project 11:59PM Mon 7 Dec

Once the teams have been established, a detailed schedule of lecture and lab meeting times will be posted.

Note that there are 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 midterm exam is Friday 30 October. The final exam times are Monday 10:10AM-1PM for the morning section of 307, and Wednesday 1:10-4PM for the afternoon section. See


http://content-calpoly-edu.s3.amazonaws.com/registrar/1/documents/finals/finals2158.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.