SPRING QUARTER 2009
| Instructor: Dr. John Dalbey | Office: 14-203 |
| Phone: 756-2921 | Email: |
| 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
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.
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.