CPE 309 COURSE SYLLABUS

SPRING QUARTER 2009

Instructor: Dr. John Dalbey Office: 14-203 
Phone: 756-2921  Email: john's email address
CSc Dept: 756-2824  Office Hours:   MTuW 1000-1100
and by arrangement.

    REQUIRED TEXTBOOKS

   Schach, Stephen. Object-Oriented and Classical Software Engineering, Seventh Edition, McGraw-Hill, 2007

REFERENCES ON RESERVE

    McConnell, Steve. Software Project Survival Guide

   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.

    COURSE OVERVIEW

This course will study the principles, methods, and tools for implementation, testing, release, maintenance, and documentation of large, complex software systems. Continuation of the software lifecycle. Project organization, planning, tracking, coordination, and communication.

This course is the second course in a two quarter sequence in which we study a collection of methods which embody an "engineering" approach to the development of computer software. The major work of the course is a group project.  In the first quarter we did the analysis and design of a moderately large software project. This quarter we will undertake the implementation, testing, release, and maintenance of the project we began last quarter.

The course is officially structured as a lecture and a lab. In the lecture we will discuss concepts and principals, and in the lab we will practice specific techiques in the context of a group project.  The class will be divided into groups of about five to ten students to carry out the course project.

This class is VERY time intensive.  The group project requires a lot of out of class work.

     PREREQUISITES

You must have completed CPE 308. This course demands both independent and cooperative work. Working independently requires that you have good time management skills and self-directed learning skills. There are no prerequisites for cooperative work other than a willingness to work and learn as part of a team.

    REQUIRED COURSEWORK

READINGS AND HOMEWORK
There will be required readings from the Schach textbook as well as online resources.  There will usually by assigned homework questions about the readings.  The class calendar will be updated regularly with due dates for readings and homework. You are to have completed the readings and questions on the day shown on the schedule.
You are to bring your typed homework solutions on the indicated due date and be prepared to discuss them in front of the class.  You are encouraged to discuss the readings and homework questions with other students before you write your solutions.  Several of the homework questions will appear on the exams.

TRAINING ACTIVITIES
There are a number of training activities required to gain the necessary skills for completing project requirements.  These activities are listed in the class calendar.  You may cooperate with other students on studying the training resources, but the activities are individual exercises.

WRITTEN EXAMINATIONS
There will be a midterm and a final written examination. The topics on the exam, and possibly the actual questions, will be announced prior to the exam.  In general the exam will assess your understanding of the readings and trainings.  The exams will include an open-book practical section that involves programming problems in Java.  You must score a passing grade on the practical section in order to pass the class.  Exam rules:  Use a #2 pencil or pen, no torn spiral bound paper, no headsets, no cell phones, no hoodies, no bathroom breaks.

TEAM PROJECTS
Each team will carry out the implementation of a project begun last quarter in 308.  In negotiation with the instructor and customer each team will determine their own Staged Delivery Plan.  The team process is dictated by the instructor's Project Plan. 

GRADING

Percent Course Component
10
Training Activities
5
Reading Questions and Quizzes
5 J2EE exam
10
Midterm exam 
20
Final exam
50
Team Project
(25) Stage 1
(25) Stage 2
100 TOTAL

Letter grades are assigned on a straight percentage basis: A = 90-100%, B = 80% - 89%, C = 70% - 79%, D = 60% - 69%, F = < 60% .  Borderline scores may receive a Plus/Minus grade.

Project Grading

The project is worth 50% of your total course grade. It has two components; a "group" grade and an "individual" grade (30/20). 

The "group" grade is an overall assessment of the completed deliverables your team creates. These are assessed twice during the course at Product Release.  See the grading criteria on the course home page under "Release Scoresheets". 

The "individual" grade is an assessment of the particular work products you created and your contribution to the team effort.  You must have a clearly identifiable portion of each deliverable that you will submit.  These include system tests, unit source code, unit tests, and review documentation.  You will submit these at each release along with other documentation of your contributions and a self-evaluation.

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.

     ADMINISTRATIVE POLICIES

ATTENDANCE

Attendance at the class meetings is important since full participation in the group project is essential to the team's success. Significant parts of the work will be done in class so your attendance is mandatory (both lecture and lab). Therefore, attendance will be a significant factor in your grade. For every two unexcused absences your grade drops one letter grade. Arriving late 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 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 will be absent. The instructor may request appropriate documentation of your excuse. (Note that job interviews are unexcused absences).  The midterm and final examinations  may only be taken during the scheduled exam period.

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.

WRITING REQUIREMENTS and GRADING SYMBOLS
Follow these guidelines for written work.
 

LATE HOMEWORK

A software engineering professional is expected to manage their time and meet their commitments. Late homework receives no credit. Training 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. Frequently you will be discussing your homework solutions with your peers during class so you will be physically submitting your work to the instructor at the end of the class period. However, it is still due at the start of class.

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).
Missed quizzes may not be made up.

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 the Training Activities 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. Similarly, you must explain your homework solutions using your own words, not copying the answers from the textbook. 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. Certain aspects of creating the team project deliverables requires collaborative effort and students are expected to work cooperatively to ensure an even distribution of work and to facilitate the overall success of the project.  However,  each person must take responsibility for a clearly defined component of the finished product.  Each person's contribution must be documented in a credits page.
 

PRINTED OUTPUT REQUIREMENTS
Don't use smaller than 12 point font without permission. Source code printouts must be monospaced.

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

COMPUTER FACILITIES

Students enrolled in this course are entitled to a computer account in the computer science department labs. All the labs share a common file system, and your username, password, and home directory is the same in all labs. From outside the lab you can use secure shell to login to vogon.csc.calpoly.edu to access your files. If you do not already have an account, see the instructor. Do not share the password or the account will be frozen and you will be failed from the course. There are numerous software tools available on this system which you might find helpful.

The team will be issued a team account for their team wiki and source code repository.  Only one person on the team is to use this account. Do not share the password or the account will be frozen.

Occasionally the instructor will mail announcements to the entire class by using an alias which sends mail to your Cal Poly Mail account. If you don't use Cal Poly Mail regularly, you should setup your Cal Poly Mail 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.

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.

CLASSROOM CLIMATE

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:

HOW TO ADDRESS THE INSTRUCTOR

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.  It's very analagous to "du" address in German, or second-person address in Latin languages.  Being addressed as "Dalbey" by students feels rude to me. My preferred form of address is "Mr. Dalbey."

CELL PHONES AND PAGERS

Cell phones present an annoying disruption in class and a distraction from course activities. You may not talk on a cell phone in the classroom or lab room for any reason.  Once you enter the classroom or lab, turn off your cell phone (not just "vibrate") and put it away where it is out of sight.  The instructor reserves the right to confiscate any cell phone not in compliance with these policies.

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 CPReg 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 CPReg. Withdrawal requires you to document that some desperate situation has arisen after the drop day that you could not have reasonably anticipated.