Game Development:
Intro to Computer Science

CSC 105
Union College
Fall 2009

Exercises about dictionaries and to practice for the final are on Codelab.

Helpdesk in Olin 102, Sun-Thu 7-9pm.

Week-by-week Schedule

Below is a tentative class-by-class schedule.

week 1what is CS? what is programming? intro to the notions of algorithms, programs, functions, variables
week 2control flow; the game loop; intro to booleans
week 3more control flow; lists
week 4more on lists; functions
week 5more on functions
week 6data representation; multi-dimensional lists
week 7objects; working with strings and files
week 8dictionaries
week 9networking
week 10GUI and event programming
week 11final project presentations

Class-by-class Schedule

This schedule is tentative and will be updated regularly as we go through the term. I will also post readings and links to files that we use in class here. So come back frequently to check for updates.

Week 1
DateTopicAssignments due at this date
WE

Intro. What is CS? Algorithms. Functions.

TH

Getting started with using the CS computer labs. Running python programs. Using built-in functions to draw pictures.

drawing_with_shapes_more_comments.py
drawing_with_shapes_less_comments.py

Please, fill in this survey by today.
FR

Variables. Datatypes.

Week 2
MO

More on using variables. Python's interactive interpreter.

Reading: Gaddis, Ch. 2

Quiz 1

Solution to Quiz 1

WE

Control flow. Loops.

HW 1 due

TH

While loop. Game loop. Making sprites move.

Reading: Gaddis, Chapter 5.2 (while-loop)

game_loop.py

FR

Intro to if-statements.

Reading: Gaddis, Chapter 4 (if-statements)

moving_ball.py

Week 3
MO

More on if-statements.

Quiz 2 (Solutions)

WE

Boolean Logic. Intro to lists.

Reading: Gaddis, Chapter 8.

HW 2 due
TH

Traversing lists. Using lists (and if-statements) to react to player input.

click_the_ball_v0.py
pop.wav

FR

Quiz review.

Game design: What are games? What kinds of games do you like/not like?

What to prepare for this class

Week 4
MO

More on lists.

Quiz 3 (Solution)

WE

Functions: parameter passing and return values.

Reading: Gaddis, chapter 3 and 6. (You can skip those parts that talk about "writing functions" or "defining your own functions".)

take home 1 due
TH

Intro to (using) objects.

Practice using functions and lists. (pygame)

Animated Pictures: instructions

FR

Quiz review.

Can games influence peoples attitudes, opinions, real life behaviors?

Defining functions.

Reading: Gaddis, chapter 3 and 6. (Now, read all of these chapters, including the parts that talk about writing and defining your own functions.)

What to prepare for this class

Week 5
MO

More practice working with functions.

Quiz 4 (Solution)

WE

Variable scope.

HW 3 due

TH

Recursive functions.

Drawing fractals.

Gaddis, Chapter 11.

FR

More recursive functions.

Week 6
MO Data representation.
WE

Data representation

big_blinking_circle_v0.py

HW 4 due

TH

Multidimensional lists. (Game of life)

gol_v0.py

FR

Multidimensional lists. (Game of life)

gol_v1.py

Week 7
MO

Software errors - who is responsible?
Software development strategies. Debugging strategies.

To watch: An illustrated history of (software) failure

gol.zip

What to prepare for this class

WE

Role of the operating system.
Working with files.

take home 2 due
TH

Working with files.

Keeping track of scores

FR Midterm
Week 8
MO

Game design presentations.

Dictionaries.

game design due
WE Dictionaries.

HW 5 due

TH

Dictionaries.

keeping track of scores with dictionaries

FR

Dictionaries. Review.

Week 9
MO

Networking: downloading web pages.

A list of topics and questions to test yourself.

Code specifications due.
WE Privacy.
Networking.
TH

Networking.

Multiplayer online pop-the-balloon

FR Project work day.

take home 3 due

Week 10
MO

List searching and sorting.

linear.py, binary.py

WE

Final project playtesting.

More list seaching and sorting.

playable version of final project
TH

GUI programming.

Some examples: a skeleton to start from, a GUI only consisting of labels, a simple GUI with some buttons, a GUI with a textbox for user input (input is echoed back in the console), a GUI with a textbox for user input (input is echoed back in the GUI), the web-based temperature program

FR

GUI programming.

multiplication_game.py

Week 11
MO Final project presentations. final project due
Fri

Final on Friday, November 20, 8:30am in Olin 102