Introduction to Computer Science
Union College
Spring 2009
Home> ScheduleResources

Week-by-week Schedule

A more detailed class-by-class schedule will grow below as we go through the course.

week 1getting set up; getting started with Python; algorithms
week 2booleans; conditional statements; while-loops
week 3functions
week 4more on functions
week 5lists
week 6more on lists
week 7objects; working with strings and files
week 8dictionaries
week 9networking
week 10GUI and event programming

Week 1

I am away at at a conference on Monday and Wednesday this week. Lance Spallholz and Valerie Barr will teach the classes on these days.

MO You will learn how to use the computers in the CS computer labs. You will get your password for the division 4 computers and Lance will make sure that you can enter the CS computer labs using your ID card.
First assignment: fill in the questionnaire on Blackboard by Tuesday, March 31st.
WE Your first contact with the python and pygame software. You will compose pictures using colored shapes.
example program for this class with lots of comments
same example program with less comments
At the end of Wednesday's class, upload the .py file with the code that draws your picture onto Blackboard.
TH Algorithms

Readings: a chapter about algorithms, Algorithm March
FR Expressions and statements; Variables

Readings: Gaddis Chapter 2
Homework Week 1 (due Wednesday, April 8, before class; submit all your Python programs on Blackboard)
To prepare for the quiz on Monday, review your notes from Thursday and Friday and do the exercises 1-9 of the section called "Algorithm Workbench" at the end of Gaddis, Chapter 2, pp. 72-73.

Week 2

MO 2nd Quiz. Working with input, output and variables.
Reminder: Homework Week 1 (due Wednesday, April 8, before class; submit all your Python programs on Blackboard)
First set of codelab exercises is due on Wednesday as well.
WE The game loop. Boolean logic. If-statements.

Reading: Gaddis Chapter 4
Second set of codelab exercises is due on Thursday.
For Friday: Read Greg Costikyan's article "I have no words & I must design". Then pick one game that you really like and one that you do not like at all. Why do like one and not the other? Using the dimensions talked about in the article, explain what you like about the first game and what you do not like about the second game. (That means, saying "don't like the game because it's boring" is not good enough. What is it about the game that makes it boring?) Hand in a one page essay on Blackboard. (Note: the games you pick do not necessarily have to be computer games.)
TH Using if-statements.

Pair Programming Info, pair programming pairs
Making things move.
FR Game Design (Part 1 - What makes a game fun?). More on if-statements.

Blinking circles.
Homework Week 2 (due Wednesday, April 15, before class; submit all your Python programs on Blackboard)
Third set of CodeLab exercises is due on Wednesday.
To prepare for the quiz on Monday, review the material we have covered in the first two weeks of this term; read Gaddis Chapter 4, do the "Review Questions" at the end of the chapter and do the CodeLab exercises.

Week 3

MO 3rd Quiz. Intro to functions.

Reading: Gaddis Chapters 3 and 6.
The next set of CodeLab exercises is due on Wednesday.
Reminder: Homework Week 2 (due Wednesday, April 15, before class; submit all your Python programs on Blackboard)
WE Functions. Variable scope.

Reading: Gaddis Chapters 3 and 6.
The next set of CodeLab exercises is due on Thursday.
For Friday: What to prepare.
TH Using functions. Reacting to user events.

Our first game: pop the balloon
FR Values in game: are video games just about fun?
Homework Week 3 (due Wednesday, April 22, before class; submit all your Python programs on Blackboard)
To prepare for the quiz on Monday, review the material we have covered this term so far; read Gaddis Chapter 3 and 6, do the "Review Questions" at the end of the chapter and do the CodeLab exercises.

Week 4

this week's pairs
MO 3rd Quiz.
More on functions. Intro recursion.

Reading: Gaddis Chapter 11.
Reminder: Homework Week 3 (due Wednesday, April 22, before class; submit all your Python programs on Blackboard)
WE Recursive functions.

print_sequence.py, sum_sequence.py

Reading: Gaddis Chapter 11.
TH Using recursive functions. Drawing with recursion.

pair programming pairs
Drawing fractals.
FR Looking inside the computer
big_circle.py

Reading: Gaddis Chapter 1
Listening: Octopus's Counting by Michael Littman
Homework Week 4 (due Wednesday, April 29, before class; submit all your Python programs on Blackboard)
To prepare for the quiz on Monday (the last Monday quiz!), review the material we have covered this term so far; read Gaddis Chapter 11 and do the Review Questions. Chapter 11 will mention some material that we haven't really covered, yet, like iteration, just skim over that. The important parts are the examples of recursive functions discussed in that chapter.

Week 5

w
this week's pairs
MO 4th Quiz.
Lists.

Some exercises.

Reading: Intro to python lists (from "Think Python" by Allen B. Downey
The next set of CodeLab exercises is due on Wednesday.
Reminder: Homework Week 4 (due Wednesday, April 29, before class; submit all your Python programs on Blackboard)
WE Traversing lists.

Reading: Gaddis Chapter 8.
TH Lists of objects.

pair programming pairs
Lots of bouncing balls.
FR Steinmetz Symposium (program). No class.
The next set of CodeLab exercises is due on Monday.
Homework Week 5 (due Wednesday, May 6, before class); submit all your Python programs on Blackboard)
No quiz on Monday. We are done with the weekly quizzes. The average of your quiz grades will count as the first midterm. There will be a second midterm in week 8.

Week 6

MO Animation with lists.
(pair programming pairs)
The next set of CodeLab exercises is due on Wednesday.
WE Multidimensional lists. (lists of lists)

grid_v0.py
pairs
For Friday: What to prepare.
TH Multidimensional lists - Conway's game of life

code to start from
Wikipedia page about Conway's Game of Life
FR Software development and responsibility.

Testing. The software/game development process.

Playtesting Halo
Homework Week 6 (due Wednesday, May 6, before class); submit all your Python programs on Blackboard)
Final Project

Week 7

MO Searching through lists. Sorting lists.

Listening: The Sorter by Michael Littman
WE Objects. Working with files.

Reading: Gaddis, Chapters 7 and 8.
TH Using Objects.

reading in a map file
pairs
Reminder: game designs for final project are due on Friday. Be prepared to talk about your game design in class.
CodeLab: the next set of codelab exercises is due on Monday. For some of these exercises, you will have to consult the documentation of built-in string methods and find the appropriate method to use.
FR Game design presentation and feedback.

More on using objects.
Homework Week 7 (due Friday, May 22, before class); submit all your Python programs on Blackboard)

Week 8

Reminder: codelab exercises are due on Monday of week 8.
MO Dictionaries

a (pre-processed) text file

Reading: Think Python chapter on dictionaries
The next set of codelab exercises is due on Monday of week 9.
WE Midterm Exam
TH Using dictionaries. And reading from files.

a (pre-processed) text file
FR Networking.

Reading: a chapter on networking and the Internet
Watching: http://www.warriorsofthe.net/

Week 9

MO Reading web pages.

This is the URL for getting the weather for Schenectady: http://www.weather.com/weather/local/12308 (for other places, just substitute another zip code at the end)
WE Multiplayer Online Pop-the-Balloon (client, server)
TH Kristina away at a conference: use the time to work on your final projects. I will have extended office hours on Friday (9:00-11:30 and 1-2) so that you can come by to talk about any problems that you are having with your project.
FR Finish networking.
Last Homework (due Wednesday, June 3, before class); submit on Blackboard)

Week 10

Reminder: Last Homework (due Wednesday, June 3, before class); submit on Blackboard)
MO Playtesting.
WE Review.

List of topics and some example questions. Please work through this list to prepare for the review session.
TH GUI programming.

Reading: Gaddis, Chapter 12

GUI for the web-based temperature lookup by zip code

Python Challenges
Teach Yourself Programming in Ten Years by Peter Norvig
FR Final project presentations.
Final exam on Tuesday, June 9, 2009 8:30 - 10:30 A.M. in Olin 102.
by Kristina Striegnitz