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:
Introduction
Programming language pardigms, compilation and interpretation,
history of programming languages.
Slides covered: #1-30
Slides corrected: #13
September 10, 2001:
Formal Languages
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:
Prolog
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:
Prolog2
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:
Formal Languages
Nondeterministic finite state automata. Translation from regular
expressions to NFSAs. Examples.
Slides covered: #16-34.
Slides corrected #16,18,19,25.
September 24, 2001:
Prolog3
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:
C2
C datatypes, pointers, arrays and pointers, recursive data
structures
Slides covered: Mem/C #14-19; C2 #1-10
October 3, 2001:
C3
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:
Parameter Passing
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:
C++ 2
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:
C++ 3
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:
Types
What is a type? type checking, safety, conversion
Slides covered: C++3 #10-12; Types #1-14
November 5, 2001:
Types2
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
Functional Programming
(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 14, 2001: Lecture by Prof Borgida.
More on functional programming.
Notes1
Notes2
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 26, 2001:
Type union examples
Context free grammars
parse trees, derivations, ambiguity, precedence, associativity
Slides covered: TypeUnion #1-4; Formal2 #1-17
November 28, 2001:
More on context free
grammars
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
notes
Note: several pages of these notes have been changed on December
10th.
Concurrent programming, Dining philosphers, Semaphores,
Rendezvous in Ada
Concurrency2
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.