The lecture notes are available 2up per page. They can be read using the Adobe reader by giving the Unix command acroread and can be printed using the Unix print command lpr. Notes will be posted the evening before our class meeting, as possible. :-) If there are corrections, these will also be posted under the corresponding entry on this page.
September 5, 2001:
Programming language pardigms, compilation and interpretation, history of programming languages.
Slides covered: #1-30
Slides corrected: #13
September 10, 2001:
Regular expressions and finite state machines.
Slides covered: #1-15
Slides corrected (in longer version): #19,22,29,31
Note: this lecture had slides added to it on Sept. 13th and those
were corrected on Sept 16th.
Make sure you have the newest version of these slides. In Prof Kremer's class on Sept 13th,
I covered slides #16-34 of this newest version of the lecture. Our lecture will cover these
slides later in the term.
September 17, 2001:
Introduction to database programs in Prolog. Horn clauses,
Declarative and procedural semantics. Syntax.
Slides covered: #1-23
Slides corrected: #1,8,23
September 19, 2001:
Negation by failure. Lists in Prolog and list functions.
Prolog search trees. Tracing Prolog programs.
Slides covered: Prolog #21,23-25; Prolog2 #1-19
Slides corrected: Prolog #23; Prolog2 #14-15
MAKEUP LECTURE, SUNDAY, September 23, 2001, 7:30-9:00pm:
Nondeterministic finite state automata. Translation from regular expressions to NFSAs. Examples.
Slides covered: #16-34.
Slides corrected #16,18,19,25.
September 24, 2001:
More list functions. Generate and test paradigm - N queens. Unification.
Slides covered: Prolog2 #20-22, Prolog3 #1-16
September 26, 2001:
Memory / C Programming Language
Bindings, Static, stack and heap memory, garbage collection,
problems with heap memory, introduction to C, differences from Java, Example program.
Slides covered: Prolog3 #16-20; Memory/C #1-13
October 1, 2001:
C datatypes, pointers, arrays and pointers, recursive data structures
Slides covered: Mem/C #14-19; C2 #1-10
October 3, 2001:
More on pointers, casting, structs
Slides covered: C2 #10-25; C3 #1-5
Slides changed: C3 #2,3,8,16 (on 10/7/01 - added slides 20-23)
October 8, 2001:
C3, continued: use of casting for subtyping,
addressing into arrays with pointer arithmetic, strings
Slides covered: C3 #6-23
October 10, 2001:
Different methods: by value, by result, by value-result, by reference,
by name, passing functions as parameters
Slides covered: ParamPass #1-20
October 15, 2001:Lecture by Prof Kremer
Scoping in block structured languages
procedure activation tree, runtime stack, static and dynamic scoping,
static chain, dynamic chain, using a display for static scoping,
central reference table
October 17, 2001:Lecture by Prof Kremer
C++ and data abstraction
abstract data types, stacks example, encapsulation,data members,
member functions,constructors and destructors, function overloading
October 22, 2001:
Defining a class in C++, inheritance, virtual functions,
abstract classes, visibility rules
Slides covered: C++ 2: #1-16.
October 24, 2001: NO CLASS TODAY.
Instead Prof Ryder
will hold office hours during our uRsual class period in SEC118.
Prof Ryder's regular office hours on Thursday morning, October 25th are CANCELLED.
October 25, 2001: MIDTERM EXAM
Octover 29, 2001:
More on visibility and inheritance, more on virtuals,
iterators, friend functions
Slides covered: C++ 2: #17-23; C++3: #1-11
Slides changed: C++ 2: #14,18 (see Oct 22); C++ 3: #10
October 31, 2001:
What is a type? type checking, safety, conversion
Slides covered: C++3 #10-12; Types #1-14
November 5, 2001:
Arrays, strings, structures, enumerations,
type equivalence, Algol68 - a PL with orthogonal types,
Slides covered: Types: #15-24; Types2: #1-7
Slides changed: Types2: #6,21,26,27
November 7, 2001:
Continuing on types in Algol68.
Array addressing, Type unions,
Slides covered: Types2: # 8-18
November 12, 2001 More on Algol68 types
User-defined types, Ref mode
(Note: these notes were posted last week under Nov 7th lecture.)
S-expressions: cons, cdr, car; defining functions, read-eval-print loop,
recursive functions, equality testing
Slides covered: Types2 #19-27; Functional #1-10
November 19, 2001:
Yet more on functional programming
Higher order functions, let statements, closures, currying
Slides covered: Functional2 #1-19
Slides corrected: Functional2 #6
This is a Rutgers Friday for classes so
our lecture will not meet;
however, we will hold recitation. 11/21/01 BGR: Pai-hsi is ill today so all recitations are cancelled.
November 28, 2001:
More on context free
Ambiguity, classes of langauges and their recognizers
Prof Ryder's office hours this week will be from 4:30-6:00pm
on Weds, November 28th.
Office hours on Thurs, Nov 29th are cancelled.
December 3, 2001: cancelled
December 5, 2001: Prof Borgida lectured
Borgida's Concurrency notes
December 10, 2001:
Prof Ryder's Concurrency1
Note: several pages of these notes have been changed on December 10th.
Concurrent programming, Dining philosphers, Semaphores, Rendezvous in Ada
Buffered communication, monitors, concurrency mechanisms in PLs, message passing
Note: because we missed a class last Monday, there will be class on
December 10th and 12th.