Course Schedule
[Note: this webpage last modified Thursday, 21-Apr-2011 12:04:10 EDT]
We will cover most but not all content in the required textbook. This
web-page will be kept up to date with the required reading to perform before
each lecture. I will also list the key concepts that we cover each week,
and I will put a sample Python program for most lectures.
The following gives a tentative outline of the semester, organized
by week. This webpage will be updated throughout the semester as things change.
Week 0 (Jan 11, 13)
- Key Concepts: Installing and running JES, saving/emailing/editing
Python files, how information is stored on a computer (numbers, text, pictures,
sounds), difference between memory and hard drive, variables (name for a spot
in memory), functions (name for a program to run),
computers are stupid (peanut butter and jelly demo, Amelia Bedelia),
computer science = algorithms, this class = learn the language of
Python (basic building blocks are variables, functions, arithmetic,
lists, loops, and some builtin operations)
- Python functions/syntax/etc.: def, print, +, -, /, *, %, =, abs,
ord
- JES functions: pickAFile, show, makePicture, explore
- Required Reading: Section 1.3, Chapter 2
-
Just for fun: video
(click on "Part 2") and
powerpoint
slides for rousing talk by Scott Aaronson about "the future of CS".
Week 1 (Jan 18, 20)
- Key Concepts: How pictures are stored in JES,
manipulating/changing/creating pictures, for loop, changing color values on
pictures, using print to understand the program, tracing a program to see
what it does, looking up information about functions in JES, creating
pictures to use with simple image-editing programs (like paint in Windows,
or Adobe Photoshop, or GIMP), scaling pictures to be smaller, running time
of a program, overflow
- Python functions/syntax/etc.:for, range
- JES functions:getRed, getBlue, getGreen, setRed, setBlue, setGreen,
getPixels, writePictureTo, pickAFolder, repaint, explore,
getWidth, getHeight
- Required Reading: Sections 3.1, 3.2, 3.3
Week 2 (Jan 25, 27)
- Key Concepts: More about for loops, strings and lists, more about
variables and functions, for loop to do something for each character in a
string or element of a list, for loop to add up numbers
- Python functions/syntax/etc.: [], find, replace, upper, lower, [:],
append, remove, count, max, min, range, sort, reverse
- JES functions:
- Required Reading: Sections 10.2, 10.3
- Links:
Python tutorial introduction to strings,
Python reference list of string functions/methods
Week 3 (Feb 1, 3)
- Key Concepts: More picture manipulation - gray scale, negative
- Python functions/syntax/etc.:
- JES functions: makeColor, getColor, setColor, writePictureTo
- Required Reading: Sections 3.5, 3.6, 3.7
Week 4 (Feb 8, 10)
- Key Concepts: More picture manipulation, nested for loops,
looping over all pixels using range, mirroring a picture, duplicating a
picture multiple times
- Python functions/syntax/etc.: return
- JES functions: getPixel, getWidth, getHeight, makeEmptyPicture
- Required Reading: Sections 4.1, 4.2
Week 5 (Feb 15, 17)
- Key Concepts: Using the if statement, removing red-eye from a picture,
making a picture black and white, drawing on pictures
- Python functions/syntax/etc.: if, else, elif, and, or, not,
<, <=, >, >=, ==
- JES functions: distance, addText, addLine, addRect, addRectFilled
- Required Reading: Sections 5.1, 5.7
Week 6 (Feb 22, 24)
- Key Concepts: Dealing with text files - reading information and
saving/writing information, what does the file of a picture actually look
like, searching in text files for information, keeping information in lists and
saving to a file
- Python functions/syntax/etc.: open, read, readlines, write, close,
"at" versus "wt" versus "rt" versus "rb" versus "wb" versus "ab"
- JES functions:
- Required Reading: Section 10.4
Week 7 (Mar 1, 3)
- Key Concepts: Sounds in JES, what does a sound actually look like,
what is a sample value, what does the amplitude of the sound wave mean, how
to load and change sounds in JES, increasing/decreasing the volume of a sound,
Jeff's note function, numSamples = samplingRate * numSeconds, number of
possible values for a sample (depends on sampling rate), overflow, what
does a sound file actually look like
- Python functions/syntax/etc.: int, float, str
- JES functions: makeSound, getSampleValueAt, setSampleValueAt,
play, blockingPlay, getLength, getSamplingRate
- Required Reading: Sections 6.1, 6.2, 6.3
Week 8 (Mar 15, 17)
- Key Concepts: Splicing sounds together, blending sounds together.
NOTE: if using sound recorder to make a wav sound, make sure it is
mono, 16 bits per sample, 22050 hertz.
- Python functions/syntax/etc.:
pickling files (documentation about this)
- JES functions: makeEmptySound, makeEmptySoundBySeconds,
writeSoundTo
- Links: Use Audacity to make sounds 16 bits/sample instead of 32, and to save an mp3 file
as a wav.
- Link:Additional sound files can be downloaded from
http://www.cc.gatech.edu/~mark.guzdial/mediacomp/mediasources-py2ed.zip.
You can also use the note function to create sounds.
- Required Reading: Sections 7.2, 8.2
Week 9 (Mar 22, 24)
- Key Concepts: Putting everything we know so far into a nice
little program, user input and output, using multiple functions in a program,
higher/lower game (binary search is the best strategy, which is
gauranteed to find the right answer within log(n) -- log base 2 --
steps if the number
was chosen at random from between 1 and n).
- Python functions/syntax/etc.: while, import, from blahblah import *,
raw_input
- JES functions: requestString, requestInteger, printNow
- Required Reading: none (read Chapter 9 at your liesure)
Week 10 (Mar 29, 31)
- Key Concepts: Other python libraries - random, math, urllib, making
movies, how movies are stored on a computer/JES
- Python functions/syntax/etc.: dir, sqrt, pow, sin, cos, random,
choice
- JES functions: writePictureTo, makeMovieFromInitialFile, playMovie
- Required Reading: Sections 10.5, 11.1, 13.1
Week 11 (Apr 5, 7)
- Key Concepts: Topics for the rest of the semester:
dictionaries, classes, review of everything we have done so far,
tKinter, using python with IDLE from python.org, using linux/unix
including a field trip to the unix lab, a few algorithms and talking
about running time and better or worse algorithms
(e.g., different sorting algorithms, shortest path, ...), recursion,
mutable versus immutable types, using the debugger in IDLE.
If there is something you
want to talk about that will help with your project, let me know.
- Python functions/syntax/etc.:
- JES functions:
- Required Reading:
Week 12 (Apr 12, 14)
Week 13 (Apr 19, 21)
- Key Concepts: dictionaries, pickle module
(import pickle, then can use pickle.load and pickle.dump),
excpetions (with try and except), raw_input for input on Python
2, input for input on Python 3, selection sort, merge sort, and
"how fast" are they, review opening/reading/writing files,
more tKinter stuff - putting the adding game into tKinter,
- Python functions/syntax/etc.:
- JES functions:
- Required Reading:
Week 14 (Apr 26, 28)
- Key Concepts: To be determined.
- Python functions/syntax/etc.:
- JES functions:
- Required Reading:
Final Exam slot
Tuesday, May 3 10:00am-12:00. We will have our last quiz and the
project presentations.