Instructor: Dr. John Dalbey Office: 14-203 
Phone: 756-2921 
SMS to email: (805) 776-3543
Email: john's email address
CSc Dept: 756-2824  Office Hours:  MW 1000-1100 TuFr 1100-1200


To meet the University Learning Objectives and the Computer Science Program Objectives.
To understand principles, concepts, methods, and techniques of the software engineering approach to producing quality software (particularly for large, complex systems).
To organize and manage a medium-sized software development project, including project plans and documentation, schedule and cost estimates, and quality assurance activities.
To make effective technical oral and written presentations.
To function effectively as a member of a team engaged in technical work.


This course will study a collection of methods which embody an "engineering" approach to the development of computer software. We will discuss the nature of software and software projects, software development models, project planning, management, and communication. We will study methods for analysis, design, testing, and implementation of large, complex software systems. We will inquire into the various perspectives on software quality -- what it means, how to measure it, how to improve it. The major work of the course is a group project.

The course is structured as a lecture and a lab. In the lecture we will discuss general concepts and principles presented in the textbook and readings.  In addition the instructor will answer student questions about the readings, discuss sample problems and case studies, and lecture on supplemental material that is not in the textbook, and relevant current issues in software engineering.   During the lab we will undertake a 20 week group software development project in order to apply the course concepts. 

Software Engineering? Programming? Computer Science? What's the difference?


You must have completed CSc 103 (Data Structures) with a grade of C- or better, and completed CSc 357 or 353.  This course demands both independent and cooperative work. Working independently requires that you have good time management skills and self-directed learning skills. [Academic Skills Center] There are no prerequisites for cooperative work other than a willingness to participate and learn as part of a team.

The implementation language used in this course is Java. Java programming experience is not a prerequisite, because it is assumed that as a software professional you have the ability to learn new languages and tools quickly. If you are out of practice with Java you might want to solve this programming problem from 103 as a refresher.

Course Grade Computation

Percent Course Component
Team Project - "group grade"
  SRS (10%)
  Final product (40%)
Individual contribution
Self & Peer Evaluations
Team Retrospective

Letter grades are assigned on a straight percentage basis: A = 90-100%, B = 80% - 89%, C = 70% - 79%,  F = < 70% .  (The instructor may scale these ranges as appropriate). Borderline scores will receive a Plus/Minus grade. 



There are two textbooks for the course:

Students are expected to apply the principles and techniques from the books to their team projects.  The sooner you read the material the sooner you will be able to take advantage of it in your projects.  The same textbooks will be used in CSc 309 next quarter.

In addition there will a small number of assigned readings from other sources. These readings will be DUE on the day shown on the calendar.


There will be individual homework assignments to practice specific software development skills or techniques. Many (but not all) of these will apply directly to your team project.   The homework will be DUE on the day shown on the calendar.


This is a private communication to the instructor which summarizes what you have accomplished or contributed to the course project and what you have learned about software engineering.  Here is the format that was used in previous quarters.  The self-evaluation is required; you will not receive a grade unless you complete it.  


The focus of the lab component of the course is to apply software engineering methods to carrying out a software development project. Students will be assigned to teams of 5-10 students.  Each team will be assigned to a produce a particular piece of software. The project will take two quarters to complete.  During this quarter we will complete the specification, prototyping, design, and a "stage 1" implementation.  During CSc 309 we will do the implementation, testing, release, and maintenance. You are expected to take CSC 309 next quarter with the same instructor so you can continue with the same project and teammates. Space will be reserved for you in a section next quarter.  The instructor may withhold assigning you a course grade until you are enrolled in the proper section for next quarter.

The project grade has two components; a "group" component and an "individual" component.  Everyone on the team earns the same "group" score; "individual" scores are awarded separately to each student.

An important part of process is the schedule.  Each team will establish their own schedule, including all "milestones" (the date on which a work product is due.)  If the team misses a milestone, the penalty is three points (i.e., three percent of your total grade) for each day late.  Similarly, if a deliverable fails to meet a satisfactory standard of quality it will be returned for rework and the late penalty will apply.  You can arrange to get feedback on your work products by meeting with the instructor during lab or office hours.  You may edit, refine, and improve any work product for a better grade until the deliverable date, which is when it will be evaluated for a final grade.

(Your team may propose an alternate system for assigning grades and penalties to deliverables. You must negotiate this with the instructor by the second week of classes).

The individual component is your contribution to a successful and effective team.  You are required to participate fully in your team project.  The instructor will make a holistic assessment of your project contributions.  Evidence to be considered includes:

Mandatory Requirements

It is recommended that you keep a lab notebook for all your project work.  A well done notebook can contribute significantly to your individual project score.

Follow these guidelines for all written work in the course.

If you feel the above grading scheme will not provide the best assessment of your learning in the course, you may negotiate with the instructor for an alternate scheme.  For example, you may want to demonstrate your learning via Journal, Portfolio, or Quality Challenge. You must agree to an alternate scheme before the end of the second week of classes.




Full participation in the group project is essential to the team's success. Significant parts of the work will be done during lab so your attendance is mandatory.  Important administrative and technical advice will be provided during lecture that would be burdensome for your teammates to have to recurgitate for you. Therefore, attendance will be a significant factor in your grade. For every two unexcused absences your grade drops one letter grade. Arriving late (after the official class starting time) constitutes a "tardy" and two tardies are considered as an absence. If you arrive late to lecture please enter quietly and take a seat in the row nearest the door.

(Note that job interviews are unexcused absences).

Similarly, if you anticipate you will be late to class for some reason, if you inform the instructor ahead of time, he will not record you as being tardy.



Most of the work in the class is done in groups. The team project deliverables are collaborative assignments and students are expected to work cooperatively in all aspects of their creation and production. 

Typically a work product will be divided into pieces to be developed by separate individuals.  You may ask your teammates for assistance on these work products, but the work you submit must be your own work.  You may not plagiarize others work or have someone else complete the work for you.  

Students are expected to learn and abide by the principles of ethical use of computers as determined by the ACM (Assoc. for Computing Machinery) Code of Ethics and Professional Conduct, the Campus computing and Communication Policies, Calif. state laws (see Penal Code Section 502), and federal laws.


All files in computer accounts belonging to the instructor and students in this class should be considered private (regardless of the state of the file permissions). You may access only those files to which the instructor or account owner has specifically given you verbal or written authorization.  You may access documents on the course web site only via hyperlinks.  You are not authorized to view other documents that may exist but have no hyperlink to them.

It is a core value of academic discourse to be tolerant of views different than our own and to treat others with respect.

In addition, an atmosphere conducive to learning can be fostered by minimizing distractions for others who are trying to concentrate. Common courtesies include:


Cell phones present an annoying disruption in class and a distraction from course activities, therefore Mr. Dalbey prohibits them in his classroom. You may not talk or send text messages on a cell phone in the classroom for any reason.  Once you enter the classroom or lab, put your cell phone away where it is out of sight. Turn off any audible alarms.

If you have a legitimate need to be using a cell phone during class, inform the instructor in advance.  Otherwise, the instructor will confiscate any cell phone visible in the classroom.  It can be collected at the end of the class meeting.


Frequently I've heard students address me and other professors by last name without honorific.  They do this completely unselfconsciously even  when they aren't that comfortable with first name address.  (e.g. students will call me "Dalbey", not "Mr. Dalbey" or "Dr. Dalbey" when they would never  call me "John." ).

In "my generation", no-honorific last-name address is permitted only between people of common age and gender, between close friends or within a military or athletic context.  Buddies in college would call me "Dalbey", and fellow athletes would call me "Dalbey".  But that's it.  Being addressed as "Dalbey" by students feels rude to me. My preferred form of address is "Mr. Dalbey."


The use of audio-visual recording devices of any kind (camera, tape recorder, etc) are not allowed without the instructor's permission.


You may drop this course any time during the first two weeks of class. Please carefully evaluate your schedule and determine if you will remain in the class before the end of the add/drop period. After the drop date, the only way out of the course is called "withdrawing" from the course; this requires a "serious and compelling" reason, such as a medical emergency. You may not withdraw simply because you are earning a bad grade or you forgot to drop through CAPTURE. Withdrawal requires you to document that some desperate situation has arisen after the drop day that you could not have reasonably anticipated.

Document History