Syllabus

Course
CSE 441 Game Programming
School
CSUSB
Quarter
Winter 2014
Prerequisites
CSE 330 and preferably CSE 420
Lecture
Tue 12:00 - 1:15, JB 146
Thu 12:00 - 1:15, JB 146
Lab
Thu 1:30 - 3:20, JB 360
Textbook
All reading materials available for free on the Web.
Instructor
Dr. David Turner
Email
dturner@csusb.edu
Office hours
Mon 3:30 - 4:30, JB 340
Tue 1:30 - 3:30, JB 340
Wed 3:30 - 4:30, JB 340
Website
http://csusbdt.github.io/441-2014

Course Format

The following four types of activities will occur in lecture periods.

The lab periods will be used for activities that strengthen your understanding of the topics presented in lecture.

All required work is detailed in the course schedule, published on the Web. I will announced in class, or by email, any changes to required work, points, deadlines and quiz dates.

You will maintain your work on assignments in a remote Git repository that I will set up for you. Only you and I will have access to your repository. I will evaluate your work by looking at your source code, building it and testing it.

Course Goals

Learning Objectives

Grading Criteria for Source Code

Writing a program to produce required behavior is not good enough for a full score in this class; you must also write code that is readable by humans. Program readability is important because real­world programs are read over and over again in the process of fixing bugs and adding new functionality. Program readability will be evaluated according to the following set of criteria.

Readability Criteria for Source Code
Criterion Description
Organization Is source code well organized?
Cleanliness Have unnecessary variables and logic been removed from the code?
Logical indentation Does indentation show logical structure?
Consistent indentation Does indentation follow a consistent policy?
Portable indentation Are tabs omitted?
Logical spacing Does spacing show logical structure?
Consistent spacing Does spacing follow a consistent policy?
Expressive and clear naming Do variables, functions and classes have names that clearly express their purpose in the program?
Clear responsibilities Are responsibilities of functions and classes clear and consistent with their names? Is the code structured to avoid reliance on side effects produced by functions?
Necessary comments Are comments included when needed?
Unnecessary comments Are superfluous comments omitted?
Nonredundant When 2 or more places inside a program need to perform the same activity, is that activity defined as a function and called as such from where it is needed?
Spelling Are user-defined identifiers free of spelling errors? Are comments and other documentation free of spelling and grammatical errors?

Don't use tabs for indentation in your source code in this course. Tabs display differently in different viewing and editing tools. In general, tabs will degrade readability for some people who read your code, especially if you mix tabs with spaces. If you want full score on your assignments in this course, you should not use tabs. If you are in the habit of pressing tab in your editor and want to continue working this way, look for an option in your editor to replace tabs with spaces.

Grading

The normal scale will be used to assign a letter grade.

Percent Grade
95 - 100A
90 - 94A-
87 - 89B+
84 - 86B
80 - 83B-
77 - 79C+
74 - 76C
70 - 73C-
67 - 69D+
64 - 66D
60 - 63D-
0 - 59F

Learning Outcomes

This course is designed to contribute to the following learning outcomes of the computer systems program.

a) An ability to apply knowledge of computing and mathematics appropriate to the discipline.
b) An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution.
c) An ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs.
h) Recognition of the need to and an ability to engage in continuing professional development.
i) An ability to use current techniques, skills, and tools necessary for computing practice.
j) An ability to apply design and development principles in the construction of software systems of varying complexity.

Students with disabilities

If you are in need of an accommodation for a disability in order to participate in this class, please let me know as soon as possible, and also contact Services to Students with Disabilities at UH-183, (909)537-5238. You are advised to establish a buddy system and alternate in the class if you require assistance in the event of an emergency. Individuals with disabilities should prepare for an emergency ahead of time by instructing a classmate and the instructor.

Academic Regulations and Procedures

See the CSUSB Bulletin of Courses for the University's policies on course withdrawal, cheating, and plagiarism.

Computer Science and Engineering Club

The Computer Science and Engineering Club is a student-run organization that uses a combination of email and campus meetings to plan events, ask and answer technical questions, post job and internship openings, and discuss other topics of interest to computing majors at CSUSB. Club-sponsored events include seminars, workshops, tutoring and fun activities.