CS 130 Project, Overview
(updated 9/1/2004)


Introduction
The CS130 Project is intended to facilitate your learning of software development concepts and processes, as well as your acquisition of software development skills.  To accomplish this goal, you will participate in the design and implementation of a significant software system.  More importantly, the project will lead you to learn about working in groups, sharing tasks, meeting deadlines, resolving conflicts, writing technical reports, and making presentations.  If you decide to seek employment in software engineering after you graduate, this project may prove to be the highlight of your resume.

This page provides necessary details for the completion of your project.  It should serve as the reference source to resolve any questions.  Anything not covered by this document should be brought to the instructor's attention; this document will be updated accordingly. 

Group Organization
It is the group's responsibility to determine and maintain its structure.  That is, you are free to choose the team structure yourselves.  I will evaluate the team on how well it implements the selected structure, not on which structure you select.  However, I will expect a certain level of responsibility rotation (e.g., recording project meeting minutes for the Log Book) regardless of the team organization that you select.

Project Meetings
We will hold weekly project meetings during a portion of class.  The length of these meetings will depend on the agenda.  Prior to some of the meetings, someone from the group will give a presentation related to a particular deliverable or some other topic that becomes relevant to the project.  However, you should also expect to hold additional project meetings outside of class at times arranged mutually by the group. 

Log Book
The group is required to maintain and submit at various intervals a log book reporting on project meetings, topics of debate, decision processes and decisions.  Think of this log as a lab book in which you record your steps and experiments.  The lab book is a fundamental component of the scientific process in general and your software development log book is fundamental to the success of your project.  You will be graded on completeness and conciseness of the Log Book; you will not be graded on the specific decisions or decision processes, etc.

Presentations
It is expected that over the course of the semester, everyone in the class will give at least one presentation on something.  Presentations typically will be 10-15 minutes in length.  The main presentations will correspond to the major deliverables of the project.  Other presentations will become necessary as issues and problems arise during your progress.  The goal of the presentation is to practice and demonstrate an ability to communicate technical content to a given audience; in the future, you will be making presentations to peers, managers, and customers.  You will be graded individually on your presentations based on coherence, organization, coverage and conciseness.

Project Documents
You will create a series of standard documents as you develop this project: Requirements Specification, Project Plan, Architecture Design, Implementation, and Integration and Test Plan.  These documents will be graded on content, structure, grammar and style, and format.  The documents will require periodic maintenance as your development leads to changes in earlier decisions.  At the end of the semester, your final deliverable will include the final versions of all the documents.

Group Assessments (40% of course grade)
Each group will be graded on several dimensions; each member of the group will receive the same group scores regardless of that member's respective contributions (or lack thereof).  Thus, it is important that you find a way to operate effectively as a group.  Factors determining the group score will be: instantiation of team structure (5%), log book (10%), project deliverables (collectively 35%).

Individual Assessments (20% of course grade)
You will also be graded individually by me and by your peers.  Your peers will assess your contribution to the project; your submission of a completed form for your peers is required in order for you to receive the credit attributed by your peers.  I will evaluate your presentation.

Project Components
0:  Proposal
1:  Requirements Specification
2:  Project Plan
3:  Design Document
4:  Implementation
5:  Final Integration and Acceptance Test

Project possibilities:

Acknowledgements:  The details of the project assignments are extensively borrowed from Professor Richard Taylor's website for a software engineering class he teaches at UCI.