[Note: this webpage last modified Friday, 04-Feb-2011 19:44:51 EST]
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 practice exercises that you can work through to test your knowledge, as well as the key concepts that should be learned from the reading. And this page will include links to supplementary reading material that is not required but can be consulted for those interested in getting more information.
The following table gives a tentative outline of the semester, organized roughly by week. Below the outline are the details for each lecture. Each of these will be updated throughout the semester as things change.
Course Introduction | August 25 |
Introduction to programming, pictures | August 27 August 30, September 1, September 3 September 8, September 10 September 13, September 15, September 17 September 20, September 22 |
1st exam (sample exam, solutions) | September 24 |
More programming, sounds |
September 27, September 29, October 1 October 4, October 6, October 8 October 11, October 13 October 18, October 20, October 22 (project proposal) October 25, October 27 |
2nd exam (sample exam, solutions) | October 29 |
Working with text, unix/linux |
November 1, November 3, November 5 November 8, November 10, November 12 November 15, November 17, November 19 (project midpoint) November 22 November 29, December 1 |
3rd exam (sample exam, solutions) | December 3 |
Final project presentations |
December 6, December 8,
December 10 exam slot |
Required Reading: none
Reference material for the entire semester:
Python tutorial on the
python.org website. By the end of the semester, we will have covered
most parts of the tutorial.
Reference material for the entire semester:
Think Python: How to Think Like a Computer Scientist by
Allen Downey. This is the text used by the other sections of 151 and
is a good supplementary source of information to the Mark Guzdial text
we are using.
Just for fun: video
(click on "Part 2") and
powerpoint
slides for rousing talk by Scott Aaronson about "the future of CS".
Just for fun: a
blog post
and a news article about the
recent stir over recent claimed proof that P!=NP. Challenge: identify the mistakes in the
news article...
Exercises: none
Key Concepts: course organization, take online quiz before Friday
What we did in class today.
Required Reading: Sections 2.1, 2.2, 2.3, 2.4
Supplemental, Optional Reading:
Exercises: Problems 2.1, 2.3-2.16
Key Concepts: using JES, print, pickAFile, makePicture, show, play,
variables, arithmetic (floating point and integer), bugs,
order of operations
What we will do/did in class today.
Required Reading: Sections 1.3, 2.5, 3.1, 3.2
Supplemental, Optional Reading: Sections 1.1, 1.2, 1.4, 1.5
Exercises: Problems 1.2, 1.4, 1.5, 2.2, 2.17-2.21, 3.1, 3.5
Key Concepts: review from last time,
how data is stored on a computer (0's/1's, encodings),
data representation for text and pictures,
how images are stored on the computer
What we will do/did in class today.
Required Reading: review previous readings
Supplemental, Optional Reading:
Exercises: review previous problems
Key Concepts: functions in Python, how to access pixels of
pictures in JES (getPixel, setRed, setBlue, setGreen, getRed, getBlue,
getGreen), printing a list of things
What we will do/did in class today,
Python file from today
Required Reading: Sections 3.3, 3.4
Supplemental, Optional Reading:
Exercises: Problems 3.2-3.4, 3.6-3.11
Key Concepts: for loop with getPixels, writePictureTo, arrays,
pickAFolder
What we will do/did in class today,
Python file from today
Required Reading: Sections 3.5, 3.6, 3.7
Supplemental, Optional Reading:
Exercises: 3.12-3.19
Key Concepts: for loops, makeColor, setColor, graying an image,
making a negative of an image, swapping colors
What we will do/did in class today,
Python file from today
Required Reading: Sections 4.1
Supplemental, Optional Reading:
Links:what other students
have done with JES, and
some more,
draft
of the text that is fairly outdated but is online/free,
official PPT slides
for the textbook,
Key Concepts: makeColor, setColor, graying an image, making a
negative of an image, range
What we will do/did in class today,
Python file from today
Required Reading: Sections 4.2, 4.3
Supplemental, Optional Reading:
Key Concepts: for loops with range, mirroring, scaling
What we will do/did in class today,
Python file from today
Required Reading: review of material up until now
Supplemental, Optional Reading:
Key Concepts: review of material up until now
What we will do/did in class today,
Required Reading: Section 5.1
Supplemental, Optional Reading:
Key Concepts: "if" in Python, distance function,
comparison operators (≥, ≥=, ≤, ≤=, ==), boolean
condition operators (and, or, not)
red-eye reduction, make image black and white
What we will do/did in class today,
Python file from today
Required Reading: Sections 5.3
Supplemental, Optional Reading:
Key Concepts: ways to make black and white
What we will do/did in class today,
Python file from today
Required Reading: 5.6
Supplemental, Optional Reading:
Key Concepts: taking something from one picture and "putting it into"
another picture
What we will do/did in class today,
Python file from today
1st exam
Required Reading: Section 6.1
Supplemental, Optional Reading:
Key Concepts: what is sound, and how it is stored on the
computer, makeSound, play, what is an octave, amplitude (roughly volume) of sound wave,
frequency (roughly pitch) of sound wave, sample rate, min/max amplitude in sound stored
on the computer (-32,768=-(216-1+1) to 32,767=(216-1-1)
if using 16 bits for a sample)
What we will do/did in class today,
Python file from today
Required Reading: Section 6.2
Supplemental, Optional Reading:
Key Concepts: sounds in JES, getSampleValueAt,
setSampleValueAt, getLength, getSamplingRate, blockingPlay
What we will do/did in class today,
Python file from today
Required Reading: Section 6.3
Supplemental, Optional Reading:
Key Concepts: getSamples,
getSampleValue, setSampleValue, debugging/tracing,
increasing and decreasing volume
What we will do/did in class today,
Python file from today
Required Reading: Section 6.4
Supplemental, Optional Reading:
Key Concepts: normalizing volume (set to max volume without clipping),
max, writeSoundTo
What we will do/did in class today,
Python file from today
Required Reading: Section 7.1
Supplemental, Optional Reading:
Key Concepts: working on different parts of a sound file, using arrays
in Python with [], using float and int
What we will do/did in class today,
Python file from today
Required Reading: Section 7.2
Supplemental, Optional Reading:
Key Concepts: splicing sounds together, makeEmptySound,
makeEmptySoundBySeconds
What we will do/did in class today,
Python file from today
Required Reading: Section 7.3
Supplemental, Optional Reading:
Key Concepts: more splicing with a general
clip and copy function, using import in Python
What we will do/did in class today,
Python file from today,
cs151functions.py
Required Reading: none
Supplemental, Optional Reading:
Key Concepts:
What we will do/did in class today,
cs151functions.py
Required Reading: Sections 8.1, 8.2
Supplemental, Optional Reading:
Key Concepts: adding sounds together, blending sounds, min, overflow
What we will do/did in class today,
Python file from today
Required Reading: Section 8.3
Supplemental, Optional Reading:
Key Concepts: creating an echo (by adding a sound to itself delayed a
little bit)
What we will do/did in class today,
Python file from today
Project proposal is due and will be checked in class.
Required Reading: Section 9.1
Supplemental, Optional Reading:
Key Concepts: (note: this week's material will be on exam3 not on
exam2), printNow, requestString, requestInteger, while loop, having a program
run continuously taking user input, using else with if
What we will do/did in class today,
Python file from today
Required Reading: Sections 9.3, 9.4
Supplemental, Optional Reading:
Key Concepts: debugging using print, debugging using the watcher,
more with while loops (can do a for loop with a while loop)
What we will do/did in class today,
Python file from today
2nd exam
Required Reading: Sections 10.2, 10.3.1
Supplemental, Optional Reading:
Key Concepts: manipulating strings, triple quote, string as an
array, using [] and [:] with strings, len, escape characters (\t, \b, \n),
adding strings together, strings as objects, string functions (capitalize,
upper, lower, swapcase, startsWith, endsWith, find, isalpha, isdigit, replace,
etc. - see reference sheet for complete list)
Administrative: exam2 grades, total grade so far, Nov 2 last day
to drop with failing grade and not have it part of GPA, working on
projects?, forgot to mention CS minor last time...,
Python file from today
Required Reading: Continuation of previous day's material
Supplemental, Optional Reading:
Key Concepts:
Administrative: Exam2, HW10, Projects, Course scheduling
Python file from today
Required Reading: Section 10.3.2
Supplemental, Optional Reading:
Key Concepts: lists (creating with [], accessing with []), nested
lists, parsing information out of a string and putting into a list, list
functions (append, remove, sort, reverse, count, max, min), split for
strings
Python file from today
Required Reading: Section 10.4.1
Supplemental, Optional Reading:
Key Concepts: getting and putting text in files, file functions
(read, readlines, write, open, close),
Administrative: HW10
Python file from today
Required Reading: Continuation of previous day's material
Supplemental, Optional Reading:
Key Concepts:
Administrative: HW10, HW11, project
Python file from today
Required Reading: Sections 10.4.2 and 10.4.3
Supplemental, Optional Reading:
Key Concepts: more working with text files - reading and writing,
can use str to convert a number into a string
Python file from today
Required Reading:
Supplemental, Optional Reading:
Key Concepts: review of most important programming concepts
(how functions work with input/output and how to use them, difference
between returning a value from a function and not,
how variables work with setting values to them, what does a loop do - the
same thing a bunch of times,
how to look up information about what a function does and how to
use it, lists and strings - storing information in an organized way),
practice tracing code and taking quizzes
Python file from today
Required Reading: Section 10.5
Supplemental, Optional Reading:
Key Concepts: using builtin Python libraries, os library (listdir),
random library (random and choice functions), datetime library, math
library (functions sin, cos, sqrt, pow, ...), for a module use dir to see
what functions are available (e.g, dir(random), and things that start with underscores
are "internal" to the module and not for you to use)
Adminstrative: project (due Monday?), HW12, in class quiz
Python file from today
Classtime to work on project and ask questions. The project midpoint is
due before class starts on Monday, November 22. Send your code and
project document to me before class starts on Monday.
Notes: If want to open a text file for "appending", use "at" instead
of "wt" or "rt".
Required Reading: Section 11.3
Supplemental, Optional Reading:
Key Concepts: putting a secret message in a picture (or in a sound),
encryption (encoding and decoding), reviewing how to work with pictures
Administrative: project midpoint due today, HW12 due next wednesday December 1,
exam3 next Friday December 3.
Python file from today
Required Reading: Section 11.1
Supplemental, Optional Reading:
Key Concepts: how webpages and the web works, urllib builtin library
(urlopen, read, and close functions)
Administrative:Exam3, sample exam tonight, HW11 grading,
projects, quiz, go over practice quiz,
extend HW12?, HW13 extra credit only?
Python file from today
Required Reading: To be determined
Supplemental, Optional Reading:
Key Concepts: continuation of previous
3rd exam
Final projects will be presented during class.
Final projects will be presented during class.
Final projects will be presented during class.
Final projects will be presented during exam slot.