for python 3, you have to say python3.1
http://www.python.org/download/
http://www.upriss.org.uk/python/session1.html

Use the editor idle.

hello.py
basics.py (1000 ways to print hello world)
bomb.py (for loops)
name.py
parsingInput.py
phrase.py (string analysis)
convert.py
cat.py
loops.py
wrongLoops.py (sanity check, can you spot the bug)
breakLoops.py (write a password guesser)
height.py
	Assignmet: ten questions ten.py
	Assignment old: piglatin
ten.py
	Assignment: Do the game of 10 questions for a number between 1 and 1000.
Is the number equal, greater than, or less than x?
People have to answer something like "it is equal to x. equal to x. exactly
x. bigger than x....."
Initially, lower bound is 1 and upper bound is 1000.
Each time you get an answer, you either raise the lower bound
or lower the upper bound.

Show fibfast.py and fibfastloop.py

guessing.py (binary search)
bubbleSort.py (comparisons & pairlooping)
matrix2.py (matrices and movement)
gameOfLife.py

best change problem
coins.py
coins2.py -- for three denominations
coinsgenetic.py -- for seven denominations, use genetic algorithms

cardClass.py -- how classes look

arabic.py
arabic2.py -- language exercise. Assignment is to generalize
this as far as it will go.

auction to show interprocess communication.
first do echoserver and echoclient

possibleWinners.py (sample functions for auction)

then auctionserver5.py auctionclient5a.py auctionclient5a.py
The idea is that players are bidding for items of
different types. The first player
who obtains all needed items while staying within budget wins.
In each bidding round, players determine a bid and send it in.
(If two highest bids are the same, then first one received gets it.)
Each player is told who received the item and for how much.
If you win the item in a round, then you pay that amount.
Otherwise, you pay nothing.
Using this information, determine what to do next. There is a comments
in the client code that say: DO SOMETHING HERE
That is what you do.
There are three versions you send: 1 vs. 1 mode.
melee mode, melee with a secret partner mode
python auctionserver5.py in one window
python auctionclient5a.py in one window
python auctionclient5b.py in one window
Start with auctionserver5.py


mergesort.py


zoo.py
filein.py
	Assignment: read in a file and repeat every line twice
	number the output lines


quidditch.py -- good intro to picking from a pool 
knap.py -- this gives you the basic read of the knapsack data
knapgeneticstarter.py -- give you the basic skeleton. Students should improve
knapgenetic.py -- my solution; but could get over 600

Parse web pages.
googlesearcher.py
A command line argument will deliver search results in response to that
criterion.
simplehtml.py -- opens a url

Assignment: Write a program that opens the third url of the list that you find
in a search.
	e.g. python searchassignment.py windsurfing

Review googlesearchcontent.py. This also returns the content
on the google search page
Try
python googlesearchcontent.py jemma

Interprocess communication game.
You are given 50 units.
There are four triplets of  items.
They will come up in random order.
You will bid for items.
Whoever wins the bid gets the item
If someone gets a triplet earlier than another item, then that person wins.
So there will be a server (the auctioneer), two or more clients.
Auctioneer receives bids and tells the clients who wins or loses.

New assignment: given a query with two arguments. The first argument 
is the keyword you're searching for (could be in quotes).
The second is in one of three categories: location, person, dog.
Your job is to open a web page having that keyword and an appropriate topic.
Or you return the answer -- could not find page with X category.
I will issue 5 queries.
For example:

python categoryassignment.py jemma person -- should return website
about a member of the Redgrave family

python categoryassignment.py jemma dog -- should return "could not find page with dog category and jemma as keyword"

python categoryassignment.py jemma location -- should return website 
about the Bunga river

Of course in our test, we will look at something other than 'jemma'

Resources that may be helpful.
Look at eliza.py and the split command.
Then the in command.
my father got angry with me

Look also at some kind of thesaurus
like http://www.visualthesaurus.com/
to get animals that are dogs, professions having to do with humans,
etc.

fusionsearcher.py
fusionsearcher2.py windsurfing
fusionsearcher3.py  

Assignment: A simple web search engine operating system.
Take the fusionsearcher and create a while loop
so that unless the user says he/she is done, the 
fusionsearcher  will search google and find and number each results.
It's a simple operating system because it dispatches based on input.

Maybe ask the user whether he/she liked the result.
Depending on the answer, send out a new query.
User can answer three ways: I'm satisfied and done,
I don't like this because it's too expensive,
I don't like this because it's too far
Dele d]\
If very relevant, try another query and present that




http://www.boddie.org.uk/python/HTML.html

Mastermind like game: guess the four numbers in order.
Each number is a single digit.
The numbers can be repeated.
Server returns number in correct position and numbers that are present
but incorrect position.
mastermindserver.py
mastermindclient.py



german.py -- example of dictionary obsolete
simpsons.py -- example of dictionary

Assignment: an engaging Eliza program: see notes of oct 26 and oct 28 2009

discuss local and global variables.
screengame.py: print screen and print out letter; screen changes
a simple game that stops if you hit an obstacle

Assignment: game of your choosing

dectree2.py: computes entropy and conditional entropy
k dectree generates a tree in tmpinput and a result in tmpoutdectree
That works on MakeATree.orig and produces tmpoutdectree which you can show.
gendata.k can generate data for an exercise

Assignment: Determine decision tree to conclude whether sick or not 

Or better: a single person game where someone uses the arrow keys
to avoid obstacles that come from the top.
You are timed.

Sudoku game solver.

Sudokill maybe.


Need some examples of recursion
fib.py
piglatin.py
multidim.py

threader.py


From shasha@access1.cims.nyu.edu  Mon Nov 30 16:15:38 2009
Received: from mx.cims.nyu.edu (mx.cims.nyu.edu [128.122.80.107])
	by mail.cims.nyu.edu (8.13.8+Sun/8.13.8) with ESMTP id nAULFcKs007318
	for <shasha@mail.cims.nyu.edu>; Mon, 30 Nov 2009 16:15:38 -0500 (EST)
Received: from access1.cims.nyu.edu (access1.cims.nyu.edu [128.122.49.15])
	by mx.cims.nyu.edu (8.13.8+Sun/8.13.8) with ESMTP id nAULFaWO016335
	for <shasha@cs.nyu.edu>; Mon, 30 Nov 2009 16:15:37 -0500 (EST)
Received: from access1.cims.nyu.edu (localhost [127.0.0.1])
	by access1.cims.nyu.edu (8.13.8+Sun/8.13.8) with ESMTP id nAULFaKR011965;
	Mon, 30 Nov 2009 16:15:36 -0500 (EST)
Received: (from shasha@localhost)
	by access1.cims.nyu.edu (8.13.8+Sun/8.13.8/Submit) id nAULFa8w011964;
	Mon, 30 Nov 2009 16:15:36 -0500 (EST)
Date: Mon, 30 Nov 2009 16:15:36 -0500 (EST)
From: Dennis Shasha <shasha@courant.nyu.edu>
Message-Id: <200911302115.nAULFa8w011964@access1.cims.nyu.edu>
To: abk235@nyu.edu, ck1247@nyu.edu, dlc333@nyu.edu, jas1026@nyu.edu,
        jh2674@nyu.edu, lad393@nyu.edu, ld969@nyu.edu, lsl278@nyu.edu,
        mjk474@nyu.edu, msm452@nyu.edu, my719@nyu.edu, sh1759@nyu.edu,
        shasha@cs.nyu.edu, tz348@nyu.edu, yas225@nyu.edu
Subject: description of the final assignment
X-Scanned-By: MIMEDefang 2.58 on 128.122.80.107
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-3.0 (mx.cims.nyu.edu [128.122.80.107]); Mon, 30 Nov 2009 16:15:37 -0500 (EST)
Content-Length: 138


Writing a program to create a decision tree based on
a set of data (called MakeATree) and you're laying out that
tree in outline format.

