A syllabus never stops evolving.
Class* | Topic | Readings* | Assignments | Other |
---|---|---|---|---|
1 | Course overview; Functions and Data | Ch 1 | Exercises 1 | none |
2 | Lists and list operations | Ch 2 | Exercises 2 | none |
3 | Lab Session***: CMU LISP and the debugger | Ch 3 | Laboratory 1: Using CMU LISP | Solution |
4 | Evaluation in LISP | Ch 3 | Exercises 3 | none |
5 | Evaluation in LISP, continued | Ch 3 | Exercises 4 | none |
6 | Conditionals | Ch 4 | Program 1: lemmatization using suffix replacement rules | Solution |
7 | Conditionals, cont'd; Local and Global Variables | Ch 5 | Exercises 5 | none |
8 | List-based Data Structures | Ch 6 | Exercises 6 | none |
9 | Applicative Programming | Ch 7 | Exercises 7 | none |
10 | Recursion | Ch 8 | Program 2: search in directed graphs | Solution 2a, Solution 2b |
11 | Recursion, continued | Ch 8 | Exercises 8 | none |
12 | Recursion, continued | Ch 8 | Continue Exercises 8, do Towers of Hanoi exercise | none |
13 | Writing Programs from Scratch | none | Distance in an IS-A hierarchy | none |
14 | Lab Session***: Writing a program from scratch | Ch 9, incl. 9.8, 9.11 | Exercises 9 | none |
15 | Input/Output | Ch 9, incl. 9.8, 9.11 | Program 3: finite-state automata | Solution |
16 | Assignment, Iteration | Ch 10, incl. 10.8-9; Ch 11, incl. 11.13-15 | Exercises 10 | none |
17 | Iteration, continued | Ch 11, incl. 11.13-15 | Exercises 11 | none |
18 | Structures and the type system | Ch 12, incl. 12.8-10 | Exercises 12 | none |
19 | Structures and the type system, cont'd | Ch 12, incl. 12.8-10 | Program 4: Using file I/O and iteration | Solution |
20 | Arrays, Hashtables, and Property Lists | Ch 13, incl. 13.11 | Exercises 13 | none |
21 | Arrays, Hashtables, and Property Lists, cont'd | Ch 13, incl. 13.11 | none | none |
22 | Macros, LISP wrap-up | Ch 14, incl. 14.15, 14.17 | Look at Final Project | none |
23 | Discuss final project, start Perl |
Optionally look at
Picking up Perl and/or
browse Perl style guide.
We may or may not use these. Also see
the Perl manual's documentation of Perl functions.
|
Perl Assignment P1 | notes |
24 | Perl: scalars, arrays, simple I/O, basic control structures | Optional: Learning Perl, Ch. 2-4 | Perl Assignment P2 | solutions |
25 | Perl: arrays and lists, more loops, hashes, file I/O | Optional: Learning Perl, Ch. 3-6 | Perl Assignment P3 | solutions, notes |
26 | Perl: file I/O cont'd, pattern matching | Optional: Learning Perl, Ch 7 | Read through make_survey.prl | none |
27 | Perl: pattern matching cont'd, subroutines | Optional: Learning Perl, Ch 8 | Perl Assignment P4 (Program); extra credit assignment | Examples: make_survey.prl, survey_materials.random; P4 solution; extra credit solution |
28 | Perl: TBA | TBA | TBA | none |
*A separate list of class dates gives the planned date for each class.
**Readings and exercises are from Touretzky (1990) unless otherwise
specified.
***Unless otherwise specified, lab sessions will be held in
the IBM NT WAM Lab in the Computer and Space Sciences Building, Room
3330. Click here for
a map and directions to the CSS Building. I recommend that you
try to come a little early in order to locate Room 3330.
Return to the course home page