CPE 308 COURSE SYLLABUS

FALL QUARTER 2008

Instructor: Dr. John Dalbey Office: 14-203 
Phone: 756-2921  Email: john's email address
CSc Dept: 756-2824  Office Hours:  M 1600, Tu 1200-1400, WTh 1000

COURSE GOALS

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.

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

PREREQUISITES

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

REQUIRED COURSEWORK

READINGS 

There will be assigned readings from the textbook and other sources. The readings and homework are DUE on the day shown on the calendar.

HOMEWORK

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. 

LAB NOTEBOOK
It is recommended that you keep a lab notebook for all your project work.  A well done notebook will earn extra credit points.

WRITTEN EXAMINATION

There will be written midterm and final examinations. The exams will contain an "written" portion and a "practical" portion. The written portion will assess your understanding of the principles and concepts from the lecture.  The written portion contains a mixture of short answer and essay-style questions. The written  is usually "closed book."  The "practical" portion will require a technical solution to an analysis or design problem using methods learned during the course.  The practical portion is usually "open book."  Bring a large, blank blue-book and a pen for the essay portion. Bring a pencil and a Java reference book for the practical portion. 

ORAL PRESENTATION

Each student is required to give a technical presentation to the class of 5 minutes in duration.  The content may be anything related to the course or software engineering in general. Presentation of "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. You may use a single overhead transparency if it is approved in advance. Here are some more talk ideas.

The presentation will be evaluated using this evaluation guide.  You can make up a poor grade by giving another talk at another time (if slots are available).  Reasons to earn an F on a 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 due date is the final exam meeting.  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.  

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-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, and design.  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.

Here is a Team Project Overview to get your oriented.


GRADING
Course Grade Computation

Percent Course Component
10 Homework and Quizzes
(includes self-evaluation)
15 Midterm exam
25
Final exam
10
Oral Presentation
20
Team Project - "individual"  (product)
20
Team Project - "individual"  (process)


100 TOTAL

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

The project is worth 40% of your total course grade. It has two components; a "product" component and a "process" component.

The product component includes the specific work products you create, the tangible deliverables you produce, such as source code,
unit tests, javadocs, user manual, etc.  Some deliverables are the responsibility of specific persons and some are a group responsibility.

For each group deliverable, the team must submit a credits page which describes who is responsible for what portions of the work.   Each team member is then awarded an individual score for their contribution to each deliverable.  (Team managers need to remember this when delegating work; each person needs to have a specific part to contribute on each deliverable).  Based on the quality of their work, individuals on the same team may receive different grades on a project deliverable. 

We use the term "milestone" to refer to 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 process component is your contribution to a successful and effective team. Coat-tail hanging or non-performance by an individual will result in a grade of F. You are required to participate fully in your team project.  The instructor will make a holistic assessment of your project contributions. (Note: this score may be negative) Mandatory Requirements

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.  

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 penalty. Homework assignments, 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.

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.

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.

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.

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.  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. The policy for Fall 2008 is that if a cell phone rings during class, that person is required to bring cookies for everyone at the next class meeting.

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.






Document History

Home