CS 313 - Fall 2006
Programming Languages
Instructor:
Amy Briggs
Course information
Students
Announcements
Happy Happy Joy Joy
Assignments
Homework 1
due Wednesday 9/20 in class. (
Solutions
).
Homework 2
due Wednesday 9/27 in class. (
Solutions
).
Homework 3
due Wednesday 10/4 in class. (
Solutions
).
Homework 4
due Wednesday 10/11 in class. (
Solutions
).
Homework 5
Part 1 due Wednesday 10/18, Part 2 due Monday 10/23. (
Solutions
).
Homework 6
due Wednesday 11/1 in class. (
Solutions
).
Homework 7
due Wednesday 11/8 in class. (
Solutions
).
Homework 8
due Wednesday 11/15 in class. (
Solutions
).
Homework 9
due Wednesday 11/29 in class. (
Solutions
).
Homework 10
due Friday 12/8 at midnight.
Lectures & Readings
Monday 9/11 - Course information, Introduction (Ch 1)
Wednesday 9/13 - Syntax vs. semantics, contex-free grammars (Ch 2)
Friday 9/15 - History of programming languages, (Ch 1,
slides
)
Monday 9/18 - Expression grammars, pre-/in-/postfix, Pascal,
hello.p
,
max1.p
,
max2.p
(Ch 2.5, 3.1, 15.1,
Tutorial
)
Wednesday 9/20 - Quiz 1, Pascal: types, arrays, records,
makemaze.p
(Ch 3, 4)
Friday 9/22 - Pascal: pointers, Parameter passing,
stack.p
,
qsort.p
(Ch 4.7, 5.2)
Monday 9/25 - Parameter passing, scope, nested procedures (Ch 5.2-4)
Wednesday 9/27 - Quiz 2, Procedure activation, stack frames, C,
division.c
(Ch 4.8, 5.5-7)
Friday 9/29 - C: functions, pointers, arrays, structs,
stack.c
(Ch 4.8, 15.2)
Monday 10/2 - C: strings, I/O,
wordcount.c
,
itob.c
, Intro to object-oriented programming (Ch 7)
Wednesday 10/4 - Quiz 3,
Intro to C++
(Ch 6.5, 7.4-7.6)
Friday 10/6 - Intro to Smalltalk (Ch 7.7, 15.4)
Monday 10/9 - Smalltalk methods and class definition (Ch 7.7, 15.4)
Wednesday 10/11 - Smalltalk: class vs. instance methods, linked list, Lab: Smalltalk/X (
tutorial
,
method list
) (Ch 7.7-8)
Friday 10/13 - Quiz 4, Smalltalk wrapup,
IntList
Wednesday 10/18 - Exam Review
Friday 10/20 - Functional programming (Ch 10)
Monday 10/23 - Intro to Scheme, lists, quoting (Ch 10,
R5RS
,
mit-scheme
,
tutorials
)
Wednesday 10/25 - Scheme: list functions, append, reverse, tail recursion,
sample.scm
,
lists.scm
,
tail-rec.scm
(Ch 10.1-3, 15.6)
Friday 10/27 - Scheme: higher-order functions, lambda expressions,
sum-fun.scm
(Ch 10.1-3)
Monday 10/30 - Scheme: let expressions, equivalence predicates, numeric differentiation,
nderiv.scm
(Ch 10.1, 10.6)
Wednesday 11/1 - Quiz 5, Symbolic differentiation,
deriv.scm
, procedure application and evaluation order (Ch 10.4-5, 8.4)
Friday 11/3 - Intro to ML (Ch 8.1-3, 15.5)
Monday 11/6 - ML: let expressions, lists (Ch 8.2-3, 9.1-2, handouts)
Wednesday 11/8 - Quiz 6, ML: function definitions by cases, defining new types,
sample.ml
(Ch 9.2, 9.5, handouts)
Friday 11/10 - ML: datatypes, higher-order functions, Curried functions (Ch 9.5, 9.3)
Monday 11/13 - Logic Programming, intro to Prolog,
SWI Prolog
,
family.pl
(Ch 11.1-2)
Wednesday 11/15 - Quiz 7, Simple Prolog programs, arithmetic, Pete's puzzle,
pete1.pl
(Ch 11.2)
Friday 11/17 - Prolog lists, list functions, tail recursion (Ch 11.3-4)
Monday 11/20 - Quiz 8, Binary search trees, Prolog control, rule and goal order,
bst.pl
(Ch 11.3, 11.5)
Monday 11/27 - Unification, Prolog search algorithm (Ch 11.2, 11.5)
Wednesday 11/29 - Quiz 9, Cut, negation,
pete1a.pl
(Ch 11.6)
Friday 12/1 - Searching with Prolog and Scheme,
goat.pl
,
goat.scm
Monday 12/4 - Postscript,
examples
Wednesday 12/6 -
Tcl/Tk
Friday 12/8 - Course summary, final exam review
Related Links
UNIX tutorials
,
Quick list of UNIX commands
SAL's list of programming languages available for linux
(Mirrors:
Finland
,
Japan
,
Spain
)
"99 Bottles of Beer" in
a lot
of different programming languages...
The Language Guide
CS majors' logo