| 1 | Due Tues 29 Sept. | Make an interpreter for a simple programming language along the lines discussed in class. The
language must include at least expressions involving addition, subtraction, and parentheses,
an assignment statement and a print statement. Your interpreter should be capable of parsing
a whole program, printing its representational tree, and running it. E-mail it directly to me, not to grader. | ||||
| 2 | Due soon | assignment, DEM files, alphaplaces. | ||||
| 3 | Due ??? | Make your programming language useful. It needs loops and conditionals and statements for input and output. It should be something that is actually useful to have around. It needs to have a symbol-table implemented as a hash table. | ||||
| 4 | Due ??? | Improve your map assignment. The user should be able to zoom in or out, select two locations, and be shown the shortest route between them using major roads. Convenient driving instructions should also be provided in text. |
| Class 1 | Thurs‑27‑8‑2009 | General introductions, what more could there be to learn about programming? | ||||
| Class 2 | Tues‑1‑9‑2009 | Designing a nice self contained object to simplify input with complex structure. | ||||
| Class 3 | Thurs‑3‑9‑2009 | The problem of parsing: producing a tree that repreents the structure of an expression. | ||||
| Class 4 | Tues‑8‑9‑2009 | Separate compilation (.cpp, .h, and .o files). Beginning an object oriented parser for a programming language. | ||||
| Class 5 | Thurs‑10‑9‑2009 | The basic plan for reading and executing programs. | ||||
| Class 6 | Tues‑15‑9‑2009 | A summary of today's developments. Sequences of statements, assignments, parentheses, etc. | ||||
| Class 7 | Thurs‑17‑9‑2009 | Review of constructors, pointer creation, new, delete, etc.; considering conditional statements and the full variety of operator priorities. | ||||
| Class 8 | Tues‑22‑9‑2009 | Considering the map object. Class diagrams (UML), using "protected" to allow invisible implementation changes, the Hash function, unsigned, the problem with -231, introducing Hash Tables. | ||||
| Class 9 | Thurs‑24‑9‑2009 | Probabilities for hash tables, Poisson distribution, collisions, the need for collision resolution; linear probing is not too good, hash table is array of linked lists; resizing table when overfull gives fast constant average access time. | ||||
| Class 10 | Tues‑29‑9‑2009 | Programming at a lower level: C strings, strcpy, strlen, etc,
Scratchy notes. Seeing where things are in memory, the experiment. | ||||
| Class 11 | Thurs 1‑10‑2009 | Complicated pointer type-casts, objects in memory, accidents with arrays and pointers, the pointer to anything type "void *", the conformity clause. Today's example. Details of the floating point representation. | ||||
| Class 12 | Tues 6‑10‑2009 | Inheritance, no duplicated code, "pointer to anything", constructor call sequence,
static members, virtual methods. Pet Club. | ||||
| (Wed‑7‑10‑2009 | Academic alerts due) | |||||
| Class 13 | Thurs 8‑10‑2009 | Virtual methods for tree nodes. Pure virtual, what ** can mean in C++, variable parameter lists, macros are evil. | ||||
| Class 14 | Tues 13‑10‑2009 | The Missing Day. | ||||
| Class 15 | Thurs 15‑10‑2009 | Getting sense and value from virtual methods: today's developments. | ||||
| Class 16 | Tues 20‑10‑2009 | Defining terms, and the technicalities of various constructors and operators.
Today's notes, considerably enhanced. | ||||
| Class 17 | Thurs 22‑10‑2009 | Investigating a non-text file. od, fopen, printf, fprintf, fgetc, fclose. The experimental program, and the data files. | ||||
| Class 18 | Tues 27‑10‑2009 | Expect on the test: Parsing, Hash tables, C strings ptrs etc, Inheritance etc. Binary unformatted files: open, read, write, close. classroom scratchings, also see here. special notes for windows/visual studio. | ||||
| Class 19 | Thurs 29‑10‑2009 | Mid Term Test. | ||||
| Class 20 | Tues 3‑11‑2009 | Dealing with large inter-connected data sets, starting to think about
shortest-path algorithms. Negative Nebraska, Positive Nebraska. | ||||
| Class 21 | Thurs 5‑11‑2009 | What we learned from the test. | ||||
| Class 22 | Tues 10‑11‑2009 | Shortest path by treating a graph as a tree, recursive depth-first search with branch-and-bound. | ||||
| Class 23 | Thurs 12‑11‑2009 | A good shortest path algorithm (breadth first), a priority queue. Survey of attitudes towards life-long learning. | ||||
| Class 24 | Tues 17‑11‑2009 | Take-home mini-test, due next Tuesday. The D algorithm for everywhere-to-everywhere shortest path calculation in cubic time, and example of Dynamic Programming. | ||||
| Class 25 | Thurs 19‑11‑2009 | |||||
| Class 26 | Tues 24‑11‑2009 | (the take-home mini-test is due today) | ||||
| Class 27 | Tues 1‑12‑2009 | |||||
| Class 28 | Thurs 3‑12‑2009 |