CPE 307 COURSE SYLLABUS

SPRING QUARTER 2015

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

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 and readings.  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 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, and completed CSc 357.  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 are out of practice with Java you might want to solve this programming problem from 103 as a refresher.

GRADING
Course Grade Computation

Percent Course Component
10 Homework and Quizzes
(includes self-evaluation)
15 Midterm exam
25
Final exam
0
Deliverables CR/NC (2% / day late penalty)
50
Team Project
  group product (15%)
  group process (15%)
  individual contribution (20%)
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 will receive a Plus/Minus grade. 

REQUIRED COURSEWORK

READINGS 

Required textbooks:

Recommended textbook:

There will be specific reading assignments posted on the course calendar.  However, your job may require that you read other sections of the book before they are assigned to the entire class.  Students are expected to apply the principles and techniques from the books to their team projects. 

In addition there will be a small number of assigned readings from other sources. These readings will be 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.   The homework will be DUE on the day shown on the calendar.

WRITTEN EXAMINATIONS

There will be written midterm and final examinations. The exams will assess your understanding of the principles and concepts from the lectures and homework.  There will both short answer and essay-style questions as well as short technical problems to be solved.  The exam is usually "closed book."   You do not need a scantron form or a blue book.  A pen is the preferred writing instrument.  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. The due date is the last class 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 the entire quarter to complete. 

The project consists of 11 deliverables.  They are graded credit/no credit. If the team misses a due date, 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.  

The graded part of the project is worth 50% of your total course grade. It 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 results from peer and customer acceptance tests of the finished product.  There are specific quantitative elements to this score, but ultimately it's a subjective judgement: Is the customer happy?

The process score assesses 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 techniques 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.  The instructor will look for evidence of productive team collaboration, such as: Are meetings organized and efficient.  Is the schedule accurate and current?  Are time logs accurate?  Is work distributed equitably (no reliance on heroes)?  Is workload managed effectively (no coding parties)?  Are action items completed on time?  Is there a minimum of "thrashing" or wasted effort?  Do project tracking indicators reveal the true project status?

(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 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:

Mandatory Requirements
LAB NOTEBOOK (OPTIONAL)

It is recommended that you keep a lab notebook for all your project work.  A well done notebook can contribute significantly to your individual project score.


WRITING REQUIREMENTS and GRADING SYMBOLS
Follow these guidelines for all written work in the course.

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.  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. For every two unexcused absences your grade drops one letter grade.

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.   (Limit to one excused absence.)  (Note that job interviews are unexcused absences).

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 the door may be locked and you will have to wait until the instructor admits you. 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.

Missed classes or quizzes can not be "made up."

HOMEWORK SUBMISSION

A software engineering professional is expected to manage their time and meet their commitments. Late homework receives no credit. 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, unless specified in the assignment.

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:


FOLLOWING DIRECTIONS
The skill of following verbal and written directions is essential for programmers.  Computers are very precise, literal machines, and any deviation from the required operating directions usually results in failure.  Also, programmers need to follow directions provided by customers and other stakeholders regarding the required project specifications.  The instructor regards the directions for assignments as a kind of "specification" and expects students to follow them with the same precision and rigor as they would when communicating with a computer.  Failure to follow any directions provided in the course (including this syllabus) may result in penalties imposed at the discretion of the instructor, up to and include no credit for the assignment.

ACADEMIC INTEGRITY

Quizzes and exams are individual efforts to be carried out entirely and solely by an individual. Homework assignments are completed individually, but you are allowed to discuss your work with other students. The team project deliverables are collaborative assignments and students are expected to work cooperatively in all aspects of their creation and production.

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:




Document History
Last modified on 04/02/2014 07:03:13
Home