|General Course Information||Course Content||Required Background||Software|
|Textbooks||Required Work||Grading||Detailed Course Schedule|
My colleague Bob Muller calls this
policy the 'laptop-free classroom'. (For 'laptop', read
'laptop and smartphone'.)
A successful class requires your
attention, engagement, and participation. You need
to be prepared to ask and answer questions during the
lectures, and to attend to the questions and answers of
your fellow students and of the instructor. That
screen open to your e-mail or Facebook page distracts not
only you, but the students sitting behind you. For this
reason, open laptops are not
permitted in the classroom, unless they are part of
some planned activity for which your computer is required.
You say you're taking notes on
that laptop instead of shopping on Amazon? You should be
aware that (a) it is very difficult to take notes for this
class on a computer, given the large number of special
symbols and diagrams that we use; and (b) taking
notes by hand is better for you. It is
acceptable to take notes on a tablet computer with a
||Handouts and Lecture Notes
||Lab Exercises from the Discussion
||Python in interactive
Types, constants, operators, expressions, variables, assignment.
|An annotated interactive
session with Python
Notes to accompany Assignment 0.
The first two test programs:
Due 11:59 PM, August 30.
Install the software, and revise the two sample programs.
|August 30-September 4
||Writing simple functions
The wind chill program, first version (DON'T write programs this way.)
The wind chill program, second version.
(Write them this way.)
Notes on structure of Python programs; how function calls work, etc.
section problem for the week of September 4.
|Assignment 1, Due
11:59 PM, September 6.
Templates for the programs in the assignment.
||No class (Mass of the
conditional statements (if and its relatives)
||Notes on boolean
Example:Solving a quadratic equation
Example: Solving a quadratic equation (again)
Example: A fancy version of the calendar program that checks for valid input and prints nice output.
Example: A diagnostic decision tree, and an implementation, done two different ways.
section exercise for the week of September 10.
|Assignment 2, Due
11:59 PM, September 18
Download a 'compiled' version of the college admission program so you can see what it is supposed to do--see instructions.
| Some loop basics (lots
of short functions demonstrating while and for
Some nested loops.
Random number generation, and a program that plays the casino game craps.
section exercises for the week of September 17.
|Assignment 3, due
11:59 PM, September 25.
Code to accompany Assignment 3.
The file wordslist1000.txt
||Some basic string
Writing numbers in English
section exercises for the week of September 24
|Assignment 4, due
11:59PM, October 4
||Making GUIs, review
||Notes on creating
A minimal application with two buttons.
Jack and Jill
Calculate area of a triangle (again)
Draw a checkerboard
Draw 281,474,976,710,656 different checkerboards.
section exercises for October 1
exercises (from an old midterm)
midterm with solutions and results.
||A GUI problem for extra credit.|
||Notes on lists
Prof. Griffith's slides for lists (from another section)
The calendar program simplified even further.
Tabulating dice statistics.
15-16 Discussion section exercise
The Scrabble tournament word list
||Sorting and Searching
A look a recursion
Linear and binary search
Prof. Griffith's slides on binary search
Code with sorting algorithms and timing tests
October 22-23 Discussion section exercises.
|October 30-November 1
Binary and hex. Image processing.
29-30 Discussion section exercises
due Tuesday, November 6
.py files you will need for this assignment
.ppm files to experiment with (see instructions if you want to use your own .jpg files)
||Tuples and dictionaries.
||An example using
dictionaries to count the number of occurrences of
words in a long text.
The text used for this experiment.
An efficient solution to the anagrams problem, using dictionaries.
exercises for November 5-6.
|Assignment 7, due
Monday, November 19
Code to get you started
The Oracle of Bacon
||The second midterm from an
earlier version of the course.
Solutions to the old midterm.
This year's test
Solutions and results
section exercises for November 12-13.
(No class November 22.)
Fibonacci numbers and other recursion disasters
The queens puzzle (backtracking)
Some tools used to animate the Towers of Hanoi solution (they really don't involve recursion, they simply use the recursive solution to make a cool display):
Beef up Towers of Hanoi to create a list of configurations, not just a list of moves..
A general-purpose animation engine for Tkinter
Towers of Hanoi plugged into the animation engine.
This piece is used to get nice colors.
section exercises for November 26-27.
|Assignment 8, due
Friday, November 30
|November 27-December 4
Dataset used for the demo (extracted from US Army anthropometric data)
Decision tree classifier demo
Dataset used for the demo (Fisher's famous iris dataset)
section exercises for December 3-4.
Old Faithful data set
Life expectancy data set
9 due Monday December 10
Dataset for the assignment (Wisconsin breast cancer study)
sheet from a few years back
The final exam from 2014
The final exam from 2015