CPE 309 COURSE SYLLABUS

WINTER QUARTER 2016

Instructor: Dr. John Dalbey Office: 14-203 
Phone: (805) 756-2921
SMS to email: (805) 776-3543
Email: john's email address
CSc Dept: 756-2824  Office Hours: MW 1500 Tu 1600 Th 1400

    REQUIRED TEXTBOOKS

McConnell, Steve.  Software Project Survival GuideUsed Print  or  Ebook $19.99.  Print copy on reserve at Kennedy Library.
Lethbridge & Laganiere, Object-Oriented Software Engineering, Mc-Graw Hill, 2005. Available at El Corral.

Other materials: black or blue pen and red or green pen. USB Flash Drive.

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 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 principles, and in the lab we will practice specific techniques 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 passed 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
There will be required readings from the textbooks as well as other resources.  The class calendar will be updated regularly with due dates for readings. You are to have completed the readings by 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.   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.

For each assignment, about half will be randomly selected to receive a numeric score, the remainder will be graded credit/no credit. 

QUIZZES
There will be frequent written quizzes in class. Some of these will be announced in advance, and some will be unannounced.

WRITTEN EXAMINATION
There will be written midterm and final examinations.  In general the exams will assess your understanding of the readings, lectures, and homework.  There will be objective questions and short answer questions as well as short technical problems to be solved that involve implementation and testing problems in Java.  You may need a scantron form.  Exam rules:  Use a #2 pencil or pen, no torn spiral bound paper, no headsets, no cell phones, no hoodies, no bathroom breaks.  If your cumulative score in the course before the final exam is so low that earning 100% on the final would not enable you to pass, you are not eligible to take the final.

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. 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 ultimate goal is for your team to deliver completed software on time and with no defects.  The software must meet objective criteria before being allowed to be released to the customer. Your product will then be subjected to customer acceptance testing.

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.

The group component has two parts: product and process.   The product score assesses the delivered product from the customer perspective.

The process score assess how well your team adopts, documents, and follows processes in the creation on the work products.  The team is expected to show that they have taken the principles and practices from the textbooks and applied them successfully in their project.  The primary evidence of this will be the team's Trac/wiki site.  In addition the team will write a retrospective document at the end of the quarter to self-assess their successes and failures.

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. 

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:


GRADING

Percent Course Component
15
Homework
5
Quizzes
10
Midterm exam
25
Final exam
45
Team Project
  group product (15%)
  group process (15%)
  individual contribution (15%)
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% .  (The instructor may scale these ranges as appropriate).   Borderline scores may receive a Plus/Minus grade.

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). Important administrative and technical advice will be provided during lecture that would be burdensome for your teammates to have to regurgitate for you. Therefore, attendance will be a significant factor in your grade.  You are allowed one unexcused absence without penalty.  Subsequent absences are penalized 5% of your course grade.  Arriving late constitutes a "tardy" and is penalized x% of your course grade according to the formula:  1 + n/2.  Tardy more than twenty minutes is 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).  There is a limit of two excused absences.  Quizzes and examinations may only be taken during the scheduled exam period. Missed quizzes may not be made up.

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. If you have a last minute emergency you can send a text message to the instructor at the number shown at the top of the page.

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

HOMEWORK SUBMISSION

A software engineering professional is expected to manage their time and meet their commitments. Late work receives no credit. Each assignment may have a unique due date and time, so check the Calendar for each assignment. Some assignments will require electronic submission via PolyLearn or Web-CAT. 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).

Notes:

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

Homework assignments are individual efforts. You are permitted to ask your class mates for clarification of the assignment requirements (though the instructor is a better resource).  You may verbally discuss your approach to solving the problem, but not the content of the solution.  You may obtain technical assistance installing or operating a software tool.  You must create your own solutions. 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. 
 

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 unix1.csc.calpoly.edu to access your files.  Do not share the password or the account will be frozen and you will be failed from the course.

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 not be read.

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

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