Computer Science 121A
Introduction to Computer Science Scheme-based Version
(Professor McKelvey)
Syllabus, Fall Term, 2011


(Subject to Change)
Date Text
Section
Topic
Sept.91.1 The Wiki and Scheme--Functions and Names
121.2, 1.3, 1.4 Components of a Computer, Functions, Types of Data
142.1-2.3 Scheme Lists, cons, car, cdr
162.4, 2.5 Scheme Lists, Conditional Expressions
193.1 Lambda, a Function to Create Functions
213.2, 3.3 Function Specs, Local Bindings
234.1 Lists of Arbitrary Length--Recursion
264.2, 4.3 Traces, More Recursion on Lists
28 Application: DNA and RNA
304.4 Recursion with Numbers
Oct.35.1, 5.2 Varieties of Recursion
55.4, 5.5 Nonlinear Recursion
7 Catch-up and Review
10 FIRST IN-CLASS EXAM
125.7 Tail Recursion (Project 1 Out)
146.1 Writing Tail Recursive Functions
17 FALL BREAK
196.2, 6.3 Iteration and Stack Frames
217.1 Local Bindings (again)
247.2, 7.3 let and letrec
268.1 Generator Functions
288.2 Procedural Abstraction in Practice
31 UNIX, Emacs and Scheme (Project 1 Due)
Nov.2 Catch-up and Review
4 SECOND IN-CLASS EXAM
79.1 State Changes and Output Ports
99.2, 9.3 Input Ports, Sequences of State Changes
1110.1, 10.2 State Changes in Main Memory
1411.1, 11.2 List Box-and-Arrow Diagrams
1611.3, 11.4 Imperative Programming with Pairs
18 The case Expression, Extending lambda.
2114.1 Principles of Object Technology
23 THANKSGIVING BREAK
25 THANKSGIVING BREAK
2814.2 Implementation of OOP in Scheme
3014.3 Delegation and Inheritance
Dec.2 Substantial OOP Example (Project 2 Out)
5 Catch-up and Review
7 THIRD IN-CLASS EXAM
9 Object Oriented Programming Project
12 Catch-up and/or Review for Final Exam (Project 2 Due)
15 FINAL EXAM (9:00am)

Disclaimer