Date | Reading | Subject |
---|---|---|
Sept. 3 |
Introduction, administrivia, lab use, languages and paradigms | |
Sept. 5 |
History of programming languages: machine, assembly, first HOL's |
|
Sept. 8 |
More history; Language theory: generative grammar and ambiguity | |
Sept. 10 | timeline | History 1970-present |
Sept. 12 | Kernighan & Ritchie The C Programming Language, or Schmidt, The Annotated ANSI C Standard |
The C Language: types and operators |
Sept. 12 | Deadline to add courses | |
Sept. 15 | C: more operators, grammar | |
Sept. 17 |
C: I/O, pointers, and memory | |
Sept. 19 | C: casting, pointers vs. arrays, memory allocation | |
Sept. 22 | Installing and Using a C Compiler; #include | |
Sept. 24 | Installing and Using jGRASP (in various languages) | |
Sept. 26 | Memory allocation and deallocation; memory leaks and dangling pointers | |
Sept. 29 | Deadline to drop courses | |
Sept. 29 |
C: file I/O, standard string operations, command-line arguments | |
Oct. 1 |
C: arrays of pointers, multi-dimensional arrays | |
Oct. 3 |
C: enums, structs, unions, typedefs | |
Oct. 6 |
Yom Kippur; no classes |
|
Oct. 8 |
C: headers, function prototypes, multiple source files, conditional compilation | |
Oct. 10 |
I'm out of town | |
Oct. 13 |
Stroustrup, The C++ Programming Language, or Budd, C++ for Java Programmers | C++: history and philosophy, I/O, declaration differences, strings |
Oct. 15 | C++: consts, references, default parameters, new/dispose | |
Oct. 17 | C++: classes, data members, member functions, and constructors | |
Oct. 20 |
C++: inheritance, composition, polymorphism, and overriding | |
Oct. 22 | C++: overloading "<<" and ">>"; const member functions | |
Oct. 24 |
C++: try, catch, and assert | separate compilation|
Oct. 27 | Sierra & Bates, Head First Java, or Budd, C++ for Java Programmers |
Java: history and philosophy, final, primitive types |
Oct. 29 | Java: Strings, arrays, new, garbage collection | |
Oct. 31 | Java: classes, instance variables, methods, (default) constructors | |
Oct. 31 | Deadline to withdraw from courses |
|
Nov. 3 | Java: class hierarchy, invoking superclass methods and constructors, abstract classes and interfaces | |
Nov. 5 | Java: toString, I/O, try/catch, assert, file and network I/O | |
Nov. 7 | Java: GUI components and Listeners | |
Nov. 10 | Java: container classes and Iterators | |
Nov. 12 | How to Design Programs | Scheme: history and philosophy, types, defining variables and functions |
Nov. 14 | Scheme: conditionals, symbols vs. strings, type-checking | |
Nov. 17 | Scheme: structures, graphics | |
Nov. 19 | Scheme: inheritance and mixed data types (i.e. polymorphism) | |
Nov. 21 | Scheme: lists and recursion thereon | |
Nov. 24 | Scheme: local definitions, higher-order functions, lambda | |
Nov. 26 | Scheme: mutation, I/O, format, sequential programming, vectors, iteration | |
Nov. 28 | Thanksgiving break -- no classes | |
Dec. 1 | Adventure in Prolog | Prolog: history and philosophy, variables and predicates, arithmetic |
Dec. 3 | Defining rules, arithmetic | |
Dec. 5 |
Recursion | |
Dec. 8 |
Structures and lists | |
Dec. 10 |
Cut, programming tricks, difference lists | |
Dec. 12 | Catch up and review | |
Dec. 17 | Final exam, 8:00-10:00 AM |