CS 240 Software Project: Green Sheet, Spring 2004
Website: www.cs.sjsu.edu/faculty/rucker/cs240.htm

Prof. Rudy Rucker, MH 213, 924-5147, How to email me.
Office Hours:
T, Th 12:00 - 1:30
T, Th 4:15 - 5:00

Section 1: Meets T & Th 1:30 - 2:45 PM, MH 225.
Section 2: Meets T & Th 3:00 - 4:15 PM, MH 225.
Midterm: Thursday, March 25
Final Reports and Demos Section 1: Monday, May 24 1215-1430
Final Reports and Demos Section 2: Wednesday, May 26 1445-1700

In this course we are going to carry out some projects relating to game programming as it relates to artificial life, computer graphics and artificial intelligence. We will be using Ruckers' Pop game framework code, which is in C++. See the Pop website.

The required text for the course is
        Rudy Rucker, Sofware Engineering and Computer Games (Addison Wesley, 2002).

If you don't know C++, you should definitely study up on it before taking this course. If you have trouble with C++, or are rusty with it, read this quick review of C++. Although not required, it is recommended that you have taken a course such as our CS 151: Object Oriented Design.

Simple assignments relating to instructor-specified programs will be given in the first part of the course by way of getting the students up to speed with the material.

Students will work on small individual projects and we will also put together some team projects in each class. The software projects will be discussed and designed by the students and the professor over several iterations. Project goals will be assigned by the instructor, taking into account student suggestions and classroom discussion. Each project must be based on a solid object-oriented design.

Our goal is for each section to produce at least one project that we can enter by September 2004 to appear at the Independent Games Festival Student Showcase held at the Game Developer's Conference in March, 2005.

In addition, you will write an individual term paper on which you will give two in-class oral reports, and which will be posted on our class web site. The paper will count for 30% of your grade. The writing project must be related to issues relating to game programming and either artificial life, computer graphics, or artificial intelligence. Rucker will post a list of suggested programming project and writing project topics.

Note that, to prevent plagiarism, professor will search Google for unusual phrases in your paper. As long as any evidence of plagiarism is found, you will get a 0 on the paper. Whatever you haven't written in your own words, you must place in quotation marks and attribute!

Grades will be based on some small writing and programming assignments (10%), on an in-class written midterm (30%), on your final contribution to a software project (30%), and on your term paper (30%).

Note that we will not have a final exam. Instead the time scheduled for the final will be used for the oral reports and final demos of the software projects. As this may not provide enough time for everyone, Some of the last few class days may also be used for oral reports and final demos.

The software projects will involve several preliminary assignments (requirement, specifications, prototype, alpha releases, class-room demos) as well as the final release with documentation. Grading of the projects will be based on (a) Lack of Bugs, (b) Originality and Difficulty of the Project, (c) Simplicity and Strength of User Interface, (d) Quality of Printed and Paintings & Links Documentation,  (e) Classroom Presentations and Demos.

The writing projects will be graded on (a) complexity and significance of the topic, (b) research on and presentation of known results (c) good writing style (d) original content (if any) (e) neatness (f) correct spelling, grammar, and English.

Programs are to be submitted in a two-pocket folder holding (1) a floppy disk or disks with runnable Windows *.EXE file with buildable source code and (2) printed documentation. Source code should build with no warning messages. Specs and documentation should be attractively formatted and printed out. Assignments are due at the START OF CLASS on the due dates. Assignments will be graded down 20% for 1-7 days late. Assignments later than 7 days will not be accepted. WARNING: Skipping an assignment can lower your grade by a full point.

The prerequisite for this course is (a) grad student status and CS 100W or, (b) undergrad status and CS 151 with B- grade or higher.

Cheating policy: Copying on an exam will result in a score of 0 on that exam for both parties.