CSc 165 -- Spring 2019
Computer Game Architecture and Implementation

| Syllabus | Schedule | Instructor | Homework | Collaboration Policy |

Course Syllabus

Scott Gordon
RVR 5040, phone: 278-7946

Office Hours
Wed 2-4 (RVR-3018)
Thurs 3-5 (RVR-5040)
Please feel free to try dropping by my office at other times.

Canvas will be used for assignment submission.

Class Meetings
Tue/Thu 12:00-1:15 -- RVR-5029

Course Overview
Architecture and implementation of computer game systems. Topics include: game engine architecture; real-time interactive 3D graphics techniques; input handling; screen and rendering management; lighting; camera control; geometric modeling and model animation; scenegraph organization and processing; behavioral control for autonomous characters; physics engines; spatial sound; multi-player games and related networking protocols; texture mapping; scripting; skybox and terrain modeling.

We will be doing most of our work in Java, OpenGL, JOGL, JBullet, and JOAL. Students without prior Java experience should see the instructor.

Required Textbook
There is no required textbook in this course.
However, there will be a substantial amount of material disseminated in class that students will need to study thoroughly.

CSc-130, CSc-133, Math-30 or Math-26A, and Physics-11A or Physics-5A, each with a grade of C- or better.
Students who have not met the prerequisites of the course will automatically be dropped, unless arrangements are made directly with the instructor. It is the students' responsibility to discuss any questions or unusual situations regarding prerequisites with the instructor during the first week of class, or face being administratively dropped from the course.

Important Dates
Tuesday Mar 12 Midterm Exam #1
(week of) Mar 18-22 Spring Break (no classes)
Tuesday Apr 23 Midterm Exam #2
Tuesday May 14 Final Exam (section 1) 12:45-2:45pm

The proposed outline of material to be covered appears in the course schedule. Students are expected to attend all lectures. Students are responsible for making arrangements to get notes from other students if they are absent.

Programming Assignments
There will be three programming assignments, which will be turned in, and will be graded. The first two assignments will be individual, and then the third will be done in groups of two. Refer to the Schedule and the Homework Guidelines for important information on due dates/times, and the late policy.

Midterms and Final Exam
There will be two 45-minute (half-class period) midterms during the semester. Midterms will be held on the Tuesday section of the weeks scheduled, at the start of class. Each midterm will include material covered in lecture and related material in the homework assignments. The final exam will be comprehensive. Taking midterms or the final exam at times other than scheduled is only done under extreme circumstances and must be arranged in advance with the instructor.

All exams are closed book. One 8.5x11 sheet of handwritten notes (handwritten by you, NOT photocopied from other sources) will be allowed for the FINAL EXAM ONLY, and must be submitted along with the exam (it can be returned to you after grades have been submitted).

Coursework and exams will all factor into a student's grade, weighted as follows:

Programming Assignments (1 and 2) 20% (10% each)
Programming Assignment 3 (game project) 40%
Midterms 20% (10% each)
Final Exam 20%

At the end of the semester, a final percentage will be calculated according to the above criteria. It will then be rounded to the nearest integer value. Then, two grades will be assigned: first, a straight percentage grade according to the following scale:

   93-100   A
   90-92    A-
   87-89    B+
   83-86    B
   80-82    B-
   77-79    C+
   73-76    C
   70-72    C-
   67-69    D+
   63-66    D
   60-62    D-
   below 60 F
The second grade assigned will be based on a curve of the final point scores of all students.

The final grade will be the higher of the two assigned grades. That is, the percentage scale listed above is the minimum grade that a student will receive based on his/her percentage.

NOTE: In addition to grades being computed as described above, one further constraint applies: In order to achieve a passing grade of at least C- for the course, it is a requirement that you achieve at least passing completion (that is, D- or better), separately, of (1) the weighted average of the three Programming Assignments, and (2) the weighted average of the exams and quizzes.

Incomplete Grades
University guidelines regarding the grade of Incomplete will be strictly adhered to. Incomplete grades will only be given under extraordinary conditions beyond a student's control. Inability to keep up with the work due to an excessive course load, for example, is insufficient to warrant an Incomplete. A student who does not have a passing grade based on the work completed thus far at the time of the request is ineligible for an Incomplete.

Students on military reserve whose units go on active duty during or around the final exam period are eligible for an Incomplete.

| Scott Gordon | CSUS | CSc Dept | CSc 165 |