YCP Logo Syllabus

Instructors:David Babcock, David Hovemeyer
Class Location:KEC 118
Class Times:M 12:00 - 1:00

CS 481 - Senior Software Project I

Fall 2008

Course Description

Student teams will complete a substantial project provided by sponsors drawn from both industry and research organizations. These projects will be developed under the direction of the course instructor and members of the sponsoring organization.

Prerequisites

CS 320

Textbook

None

Course Structure and Expectations

Your overall task for the semester is to pick an interesting team software development project and complete it. Past projects have included:

  • A 3-D game
  • An autonomous remote-controlled vehicle
  • An instant messaging client
  • A 2-D side-scrolling game
  • A fingerprint recognition system
  • Chess AI

In addition to providing a chance to apply all of the things you have learned in your previous Computer Science courses, one of the goals of this course is to learn how to work within a self-directed team. In order to make steady progress, you will need to work with your team members to establish goals and work towards them.

Your team's grade will be determined based on the following deliverables:

  1. Bi-weekly team status reports. These should report your team's progress, discuss any technical challenges you encountered and how you resolved them, and outline goals for the next 2 weeks. Status reports will be evaluated on technical content, writing style, and clarity.
  2. Bi-weekly demonstrations. On weeks in which you don't have a status report due, your group will give a 15-20 minute demonstration. You may present topics including requirements, analysis and design, and research on technical issues. As your project progresses, we will expect you to demonstrate working software functionality at regular intervals. Demonstrations will be evaluated on technical content and clarity.
  3. Formal Design Review. Before your team becomes heavily involved in the implementation of your project, you must document your design with use cases, UML models, and other appropriate design artifacts, and present your design to the class. Your group will be expected, at the very latest, to have a workable design by week 5 of the semester.
  4. Mid-semester report. This is a report describing your analysis, design, and (partial) system implementation. It should discuss the important technical issues you encountered. It should also outline your plan for completing your project by the end of the semester. This report will be evaluated on technical content, writing style, and clarity, and should serve as a useful starting point for your final report.
  5. Final report. This is a report describing the analysis, design, and implementation of your project. It will be evaluated on technical content, writing style, and clarity.
  6. Final group presentation. Your group will give a presentation of approximately 45 minutes to an audience including students and faculty from CS and other technical disciplines. You should discuss the motivation behind your project, how you approached design and implementation, and significant results. Your presentation will be evaluated on technical content and clarity.

In addition to your team's grade, your individual grade will be based on a self evaluation, peer evaluations from your team members, and instructor evaluations. You are responsible for making a significant contribution to the success of your team's project.

We expect the written reports your team submits to be clearly written and organized. You must proofread and edit reports before you turn them in. Any reports which we deem unacceptable in terms of writing quality will be returned unread, and will be marked down one letter grade. We encourage you to take advantage of the writing assistance offered by the Learning Resource Center in preparing your team's written reports.

The Computer Science Field Test

Since this course is the "capstone" of your Computer Science experience, you are required to take the ETS Computer Science Field Test. This test is used by many graduate CS programs as a criterion for admission, and will help you assess what you've learned here at YCP. Your score on the test will not affect your course grade. If you do not take the Field Test, or do not make a good faith effort to do your best on the Field Test, your individual grade for the course will be lowered by one letter grade.

Policies

Grading breakdown

Your team's grade will be determined as follows:

  • Status reports, demonstrations, and formal design review: 25%
  • Mid-term report: 25%
  • Final report, presentation, and system implementation: 50%

Your individual grade is determined by your team's grade, adjusted based on the significance of your contributions to the project as assessed by your peer evaluations and instructor evaluations. (Also, as mentioned above, if you do not take the Computer Science Field Test, or make a good faith effort to do your best on it, your individual grade will be lowered by one letter grade.)

Academic Integrity

Academic dishonesty will not be tolerated at York College. Academic dishonesty refers to actions such as, but not limited to, cheating, plagiarism, fabricating research, falsifying academic documents, etc., and includes all situations where students make sue of the work of others and claim such work as their own.

All uses of external information sources must be properly acknowledged.

Attendance and Participation

Attendance at the weekly meeting is mandatory.

Communication Standards

York College recognizes the importance of effective communication in all disciplines and careers. Therefore, students are expected to competently analyze, synthesize, organize, and articulate course material in papers, examinations and presentations. In addition, students should know and use communication skills current to their field of study, recognize the need for revision as part of their writing process, and employ standard conventions of English usage in both writing and speaking. Students may be asked to further revise assignments that do not demonstrate effective use of these communication skills.