January 27, Tuesday. SNOW DAY.

January 29, Thursday. class01

February 3, Tuesday. ANOTHER SNOW DAY.
Please read class02 before the next class.
February 5, Thursday. class02

February 10, Tuesday. ANOTHER SNOW DAY. Assigned Homework 2

February 12, Thursday. class03

February 17, Tuesday. NO CLASS AGAIN TODAY.
Read ahead in notes for class04 .

February 19, Thursday... class04 .

February 24, Tuesday... class05 .

February 26, Thursday... class06.

March 3, Tuesday... class07.
March 5, Thursday.... class08.
March 10, Tuesday.... class09.

March 12, Thursday.... class10.

Spring break March 15-22
March 24, Tuesday....
Character frequencies: Python dictionaries.
March 26, Thursday....
Cryptography. Substitution ciphers as an application for Python dictionaries.
March 31, Tuesday....
Swami guest lecture - pseudocode for homework 5.
April 2, Thursday....
Lecture on literate programming - keeping documentation, code and tests all in the same file. (Not quite what my TeX framework does, but close.) Using the framework to tell the development story.
April 7, Tuesday....
Started mathematica. Spent a few minutes with the kernel application - just a command line interpreter. That won't do for serious work. Then opened a brand new notebook to play in. Arithmetic and variables work the way you'd expect. Built in keywords start with an upper case letter. They get arguments with brackets. Braces group. Checked out Integrate, Plot, Sum, Function, Pi, Infinity.

Talked about using a notebook for literate programming. Saved our notebook as a TeX file (it was enormous); couldn't compile it in TeX since was missing a package and wasn't connected to the internet.

Mathematica help (via prompts) is very good. For one liners, you can ask in English at Wolfram alpha and have it tell you mathematica syntax.

April 9, Thursday....
Sage. Free as in speech/beer. What sage wraps for you (e.g. GAP). Installing sage - virtual machines. Sage worksheets (notebooks) - see the command line kernel under the covers. Sage locally and in the cloud. Sage vs mathematica.

Sage and TeX:

April 14, Tuesday....

April 16, Thursday....
The Mandelbrot set - mathematics, pictures, read naive Mathematica implementation at www.kellenmyers.org/ExpMath/mandel.html. Not the most sophisticated code, but worth reading for an introduction to Mathematica programming (beyond onw-liners), memoization and complex arithmetic.
April 21, Tuesday....

Slicing cubes. Physical models. Challenge to find software tools for 3D visualization.

April 25, Thursday....
Brief look at Microsoft Mathematics. Why it's not suitable for this course, and for math majors. But it did allow for a nice excursion into superellipses and the L_p norms (in the plane).

Looked at the Mathematica function for finding convex hulls, and at the Rhombic Dodecahedron notebook (downloaded from wolfram) to think about implementing functions to draw cube slices, and dodecahedron slices.

April 28, Tuesday....
Benford's law - the mathematics, and Python. See benford directory for notes and code.
April 30, Thursday....
Revisited factoring using the rosetta code solution that implements the Croft sieve - an algorithm we reinvented earlier this semester. See the rather weird discussion at http://www.primesdemystified.com/, croft.pdf and croft.py. Digression on Mersenne primes.
May 5, Tuesday....
Lucas Lehmer test. lucaslehmer.pdf, lucaslehmer1.py, lucaslehmer2.py.
May 7, Thursday....

May 12, Tuesday....
Sudoku in Python.