CS 104 - Computer Gaming, Fall 2017

Lecture: TR 1:10 pm - 3:00 pm in AEC 519
Instructor: Ge (Frank) Xia
Office: AEC 506
Phone: 610-330-5415
Office hours: TR 10:00am - 11:00 am

[Announcements] [Labs] [Description] [Textbook] [Grading] [Schedule]



The webpages of the lab assignments run Java applets, which may not be supported some web browsers such as Chrome. In this case, please use Firefox, Internet Explorer, or Safari to open the lab webpages. You may also need to add "http://www.cs.lafayette.edu" to the Exception Site List in the settings of Java. Please see me or the lab instructor for help.

Course Description

This course provides hands-on experience developing computer games. The course covers the basic techniques of game programming, including graphics, events, controls, animations, and intelligent behaviors. Students learn the concepts and skills of object oriented programming by designing and implementing a sequence of computer games. No prior knowledge in programming and computer games is required. A good understanding of algebra and geometry is strongly recommended.

Course Objectives:

By taking this course, students will learn:

  • The basic techniques of game design and implementation.
  • The fundamental concepts of computing, the basic principles of object-oriented programming, and the basic data structures and simple algorithms.

Learning Outcomes:

  • Design and implement game behaviors that simulate the physical world.
  • Formulate scientifically testable hypotheses (in the form of program designs).
  • Generate and evaluate evidence from programming to test and revise hypotheses (designs).
  • Understand the quality of the data and the need to collect sufficient date for hypothesis testing.
  • Create, interpret, and evaluate graphs and models that represent data.
  • Understand how scientific uncertainty informs the evaluation of hypotheses.

ABET Learning Outcome:

  • An ability to apply knowledge of computing and mathematics appropriate to the discipline.


  • Lecture Notes, written by Ge Xia will be distributed during the course. Students are required to finish reading the assigned chapters before the contents are covered in class.
  • Java: A Beginner's Guide, 6th Edition by Herbert Schildt, 2014. ISBN: 0071809252. This book will be used as a reference.

Optional Reading

  • Head First Java, 2nd Edition by Kathy Sierra and Bert Bates, 2005. ISBN: 0596009208.
  • The Art and Science of Java by Eric Roberts. Addison-Wesley, 2008.
  • Thinking in Java, 3rd Edition, by Bruce Eckel. Available free for download.
  • Java: An Eventful Approach by Kim Bruce, Andrea Danyluk, and Thomas Murtagh. ISBN 0131424157, Prentice Hall 2005.

Grading Policy

The grades will be assigned based on a combination of lab assignments, projects, and exams. A sample of the distribution of the course grade is shown below:

  • Labs/Projects -- 30%
  • Midterm exam -- 20%
  • Lab exam -- 20%
  • Final exam -- 30%
Lab assignments are to be turned in before the specified deadlines. Assignments turned in later will not receive credit.

Letter grades for the semester will be assigned based on the percentage of points earned.

Academic Honesty

All students must adhere to the college academic honesty policy in the Student Handbook. Discussion of concepts with others is encouraged, but the work you submit in this course must be your own work, unless otherwise instructed. Copying is strictly forbidden.

The Student Handbook of Lafayette College has a section on Principles of Intellectual Honesty that defines academic dishonesty to include:

  • Use of other persons' writings without proper acknowledgment,
  • Use of reference material without properly crediting sources used,
  • Use of other students' work, with or without revision,
  • Collaboration beyond the limits established by the instructor,
  • Submission of the same work in more than one course
A student who commits academic dishonesty is subject to Disciplinary actions including suspension or expulsion.


Students are expected to attend classes unless there is a reasonable excuse. A reasonable excuse is a previously approved Dean's excuse or the instructor's permission.

Tentative Schedule

Changes will be made according to the progress of the course.

  1. Introduction to games and Java

  2. Basic graphics and events

  3. Game control and conditionals

  4. Animations and loops

  5. Game structures and object-oriented design

  6. Advanced game control using arrays

  7. More advanced game design

  8. More advanced game design

  9. Strings and files

  10. GUI and IO

Federal Credit Hours:

The student work in this course is in full compliance with the federal definition of a four [two or one as appropriate for half and quarter unit courses] credit hour course. Please see the Registrar’s Office web site (http://registrar.lafayette.edu/additional-resources/cep-course-proposal/) for the full policy and practice statement.