CPE 205 COURSE SYLLABUS

FALL QUARTER 2004

Instructor: Dr. John Dalbey Office: 14-203 
Phone: 756-2921  Email: 
CSc Dept: 756-2824  Office Hours:  M T 1300 W 1100

REQUIRED TEXTBOOK

Stiller and LeBlanc,  Project-based Software Engineering: an object-oriented approach,  Addison Wesley, 2002.

SUGGESTED TEXTBOOKS

McConnell, Steve. Software Project Survival GuideRequired for CPE 206.
Ludi, Stephanie. Student Survival Guide to Managing Group Projects (online)
 

COURSE GOALS

To meet 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.
To think critically about ethical and social issues in software engineering.

COURSE OVERVIEW

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, software process maturity, 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 concepts and principals, and in the lab we will undertake a 10 week group software development project in order to apply the course concepts.

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

PREREQUISITES

You must have completed CSc 103 (Data Structures) with a grade of C or better.  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 aren't confident with your programming ability in Java, or you are hesitant about learning a new language this quarter, please seek the advice of the instructor.

SHOULD I BE TAKING 205 THIS QUARTER?

REQUIRED COURSEWORK

READINGS AND QUESTIONS

A list of required readings and questions is online. The list is organized by calendar week. The readings and homework are DUE on the day shown on the calendar. During lecture, students will be called on at random to discuss their response to a homework question or to share their understanding of some issue in the course. 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; general principles beyond the "object oriented approach" taken by this author, and relevant current issues in software engineering. Reading questions are graded credit / no credit.  You may discuss the questions with other students, but you must create and submit your own work.  Responses to questions must be typewritten (refer to these guidelines).

PROBLEMS

There will be regularly assigned homework problems or exercises to give you practice with the techniques and skills you will use on the team project.  Problems are graded on a ten point scale.

WRITTEN EXAMINATIONS

There will be written midterm and final examinations. The exams will contain essay questions selected from the list of homework questions (see above), study questions provided by the instructor, and "practical" problems, based on and homework and project problems. Bring a pen for writing your exam solutions.

TWO-MINUTE TALKS
Each student is required to give two 2-minute oral presentations in class during the quarter.  The content may be anything related to the course or software engineering in general. Presentation of technical issues from the project problem domain and "lessons learned" from internships or other projects are particularly encouraged.  There are a fixed number of time slots to speak for which you must sign up in advance (first come, first served). The talk is to be delivered in front of the class without notes or slides. Here are some more talk ideas.

The talks are graded pass/fail.  Each failed or missed talk will lower your course grade by 5%. You can make up one failure by giving another talk at another time (if slots are available).  Reasons to earn an F on a two minute talk include:


SELF-EVALUATION

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. The format and due date will be announced in class.  The self-evaluation is required; you will not receive a grade unless you complete it.

TEAM PROJECT

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-7 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, and design.  During CSc 206 we will do the implementation, testing, release, and maintenance. For CSc majors, you are expected to take CSC 206 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.

There is a minimal set of instructor designated requirements for how the team should be organized and what deliverables are required.  Beyond that, each team must determine for themselves (based on readings and class discussions) the best way to proceed in order to meet the project goals.  Your decisions about how to coordinate and manage yourselves, including resource estimates and deadlines, are written in a Project Plan which is due at the end of the second week of class.

Team effectiveness

One of the course goals is to learn how to work cooperatively as an effective team. There are many factors contributing to effectiveness, including: achieving milestones on schedule, organizing effective technical reviews, submitting status reports, running organized team meetings, exhibiting professional attitude and behavior, equitable distribution of tasks, good communication, clear expectations and responsiblities, cooperation in resolving conflicts, and so on.

Since this may be your first experience working in a team, it is not expected that your team will operate ideally the first try. However, problems in team dynamics and functioning are part of the course, and you are expected to work toward resolving them. You are encouraged to consult with the instructor about strategies for overcoming difficulties. (The "Student Survival Guide" reference has many helpful hints.) If your team is struggling, it is crucial that you obtain instructor guidance early while there is still time to apply corrective strategies.

Read this great advice from former students and examples of thrashing.

Project milestones

We use the term "milestone" to refer to the date on which a work product is due.  Milestone dates are determined by each team in consultation with the instructor.  If you miss a milestone, the penalty is two points (i.e., two percent of your total grade) for each day late.  In addition, each work product must be at least a "C" level of quality (see below) or it will be returned for rework (and the late penalty will be applied).

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 milestone 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).

GRADING
Course Grade Computation

Percent Course Component
5 Reading Questions and Quizzes
10 Homework Problems
15
Midterm exam
20 Final exam
10 Team Project - Individual Deliverable
20
Team Project - Total deliverables
20
Team Project - Job Assignment
? Bonuses
100 TOTAL

The course letter grade is determined as A = 90-100%, B = 80% - 90%, C = 70% - 80%, F = < 70%

Project Grade

30% of your course grade is based on the specific work products your team creates such as a User Interface Prototype or a Class Diagram.  Each individual is responsible for a specific work product and the grade earned on that item is worth 10% of your grade.  In addition, the total of the grades earned on all deliverables counts for 20% of your grade.

Deliverable Grading Criteria
A Exemplary - meets or exceeds the customer expectations. Professional quality work that meets all QA criteria.
B Proficient - Usable by the customer, may lack peripheral functionality. Meets all major QA criteria. The work exhibits skill and care; may lack the level of insight or creativity found in exemplary work.
C Acceptable - Minor rework may be required before customer acceptance. Assignment is done adequately but may not be as fully and specifically developed as a proficient work; may have minor missing pieces and fail to meet all class standards. The work is complete and consistent.
D Unacceptable - Customer can't determine how to fix the product to make it usable. Lacks some core functionality. Unacceptable presentation or format; incomplete work; fails to follow directions; fails to follow class standards.
F Seriously flawed

 

The job assignment component of the grade is your contribution to a successful and effective team. The instructor will make a holistic assessment of your project contributions. 

The challenge for many students will be that Job Assignments are very vaguely specified.  You will have to specify and define your own role by reading in the textbook and other resources and discussions with the instructor and your teammates.  This will require an unusual amount of initiative to aggressively seek out information about your role and then determine how to apply that constructively in a manner that benefits your team.

Lab Notebook  (OPTIONAL for Fall 2004)
You are required to keep an engineering notebook for this course.  Many companies require their employees to maintain an engineering notebook, and for this course the purpose is the same; to document your accomplishments, to monitor your progress, to record technical details you are learning, and to record all project related issues and notes. It is not intended for keeping lecture notes. In industry your journal may be called upon as evidence in legal disputes over intellectual property. Use a standard bound "composition" book available at the bookstore. 3-ring or spiral bound books are NOT acceptable. Bring the notebook to every meeting you attend related to this class, both lecture and project. Every entry in the notebook must be dated and clearly labeled (E.g. status meeting, working meeting, customer meeting, research topic, tool use, etc). Leave no blank pages.  Entries must be handwritten and must be neat and legible, preferably in ink.  A secondary objective of the notebook is writing practice; write every entry in your own words. Notebooks are collected intermittently for grading - be sure you always have it with you. A satisfactory notebook must be completed (overall grade of 4 or above) to pass the course.

The notebook must contain, at a minimum:

WRITING REQUIREMENTS and GRADING SYMBOLS

Follow these guidelines for all written work in the course.

EXTRA CREDIT
See the instructor to discuss extra credit project possibilties.  Here are some ideas.

ALTERNATE GRADING SCHEMES
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.

INSTRUCTOR EXPECTATIONS

ADMINISTRATIVE POLICIES

ATTENDANCE

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. Similarly your attendance at team exercises and presentations in lecture is mandatory. 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.

Missed classes or quizzes can not be "made up." You may obtain permission to be excused from class for valid academic or medical reasons, but it is your responsibility to secure permission from the instructor BEFORE the date you well be absent. The instructor may request appropriate documentation of your excuse. (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.

LATE HOMEWORK

A software engineering professional is expected to manage their time and meet their commitments. Late homework receives a 50% penalty. Homework assignments, reading questions, deliverables, etc., are due when class begins. "Late" means after the official class starting time. In general, electronic submission of assignments is not accepted.

Equally important to managing your time, is that professionals are expected to behave responsibly. You can demonstrate responsible behavior in the following manner: If you anticipate illness, other academic burdens, or other emergency will prevent you from submitting your assignment before the deadline, you may request an extension. Simply leave a message for me BEFORE class time asking for an extension of the due date. You may leave a message for me electronically, by voice mail, or in the department office. (Limit: 2 extensions).

ACADEMIC INTEGRITY

This course involves both individual work and collaborative work. It is your responsibility to understand the guidelines that apply to each kind of work, and to be clear about which assignments are individual assignments and which are collaborative.

Individual Assignments

Quizzes, exams, and homework problems are individual efforts. Individual work is to be carried out entirely and solely by an individual.  You may not "work together" on individual assignments. The content of the assignment is not to be discussed or shared in any way with other students.  There is to be no conversation about individual assignments except with the instructor. Assignments which appear to be the result of a "group effort", or which appear to have been copied from another student, will be considered plagiarized. Violations of this policy may result in being failed from the course. See the campus statement on Academic Dishonesty: Cheating and Plagiarism (C.A.M. 684)

Collaborative Assignments

Much 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 an production. The names of all contributors must present on any work which is submitted that is a result of collaborative efforts. Where possible, reasonable attempts should be made to properly credit any portions of the work which are clearly the effort of any individual.

PRIVACY POLICY

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.

COMPUTER FACILITIES

Students enrolled in 205 & 206 are entitled to a computer account on the computer science department machine "Waldorf". There are numerous software tools available on this system which you might find helpful.  If you need an account, bring an account request form to the instructor for a signature.

A number of important class documents will be made available in electronic form (e.g. reading list, QA criteria). They can be accessed via a WWW browser through the 205 link from the instructor's home page. These files should be considered as evolving documents, as they will be refined and updated as the course proceeds. Each document will have a version date so that you can determine if you are reading the most recent version. It is your responsibility to be sure that you are working from the most current document.

Occasionally the instructor will mail announcements to the entire class by using an alias which sends mail to your OpenMail account. If you don't use OpenMail regularly, you should setup your OpenMail account to forward your mail to your regular email account.

Computer Science majors are expected to be proficient with tools of their trade such as e-mail and backups. Excuses such as "my email account was down" or "my hard drive crashed" are not likely to gain much sympathy. It is recommended that you use the Computer Science department machine "falcon" or Central Unix or OpenMail as your primary email account. 

The instructor will not read email whose "Sender" field is not an actual student name. Don't use nicknames in mail you send to the instructor or it will be returned to you unread.

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.

CEL PHONES AND PAGERS

Students may not use cell phones, pagers, etc. in class or in lab. Turn off any audible alarms. I don't want to hear any beeps or chimes. If a cell phone rings during class I get to answer it.

RECORDING DEVICES

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

DROP/WITHDRAWAL POLICY

You may use CAPTURE to 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.



Enter your name: 




Document History
 
Date Author Change
9/20/04 JD Revised for Fall 2004
1/4/04
JD
Revised for Winter 2004
1/4/03 JD Revised for Winter 2003
9/18/02 JD Revised for Fall 2002
3/25/02 JD Revised for Spring 2002.