CS 313 - Fall 2006

Programming Languages

 

Announcements

  1. Happy Happy Joy Joy

Assignments

  1. Homework 1 due Wednesday 9/20 in class. (Solutions).
  2. Homework 2 due Wednesday 9/27 in class. (Solutions).
  3. Homework 3 due Wednesday 10/4 in class. (Solutions).
  4. Homework 4 due Wednesday 10/11 in class. (Solutions).
  5. Homework 5 Part 1 due Wednesday 10/18, Part 2 due Monday 10/23. (Solutions).
  6. Homework 6 due Wednesday 11/1 in class. (Solutions).
  7. Homework 7 due Wednesday 11/8 in class. (Solutions).
  8. Homework 8 due Wednesday 11/15 in class. (Solutions).
  9. Homework 9 due Wednesday 11/29 in class. (Solutions).
  10. Homework 10 due Friday 12/8 at midnight.

Lectures & Readings

  1. Monday 9/11  - Course information, Introduction (Ch 1)
  2. Wednesday 9/13  - Syntax vs. semantics, contex-free grammars (Ch 2)
  3. Friday 9/15  - History of programming languages, (Ch 1, slides)
  4. Monday 9/18  - Expression grammars, pre-/in-/postfix, Pascal, hello.p, max1.p, max2.p (Ch 2.5, 3.1, 15.1, Tutorial)
  5. Wednesday 9/20  - Quiz 1, Pascal: types, arrays, records, makemaze.p (Ch 3, 4)
  6. Friday 9/22  - Pascal: pointers, Parameter passing, stack.p, qsort.p   (Ch 4.7, 5.2)
  7. Monday 9/25 - Parameter passing, scope, nested procedures   (Ch 5.2-4)
  8. Wednesday 9/27 - Quiz 2, Procedure activation, stack frames, C, division.c   (Ch 4.8, 5.5-7)
  9. Friday 9/29 - C: functions, pointers, arrays, structs, stack.c   (Ch 4.8, 15.2)
  10. Monday 10/2  - C: strings, I/O, wordcount.c, itob.c, Intro to object-oriented programming    (Ch 7)
  11. Wednesday 10/4   - Quiz 3, Intro to C++   (Ch 6.5, 7.4-7.6)
  12. Friday 10/6  - Intro to Smalltalk   (Ch 7.7, 15.4)
  13. Monday 10/9  - Smalltalk methods and class definition   (Ch 7.7, 15.4)
  14. Wednesday 10/11  - Smalltalk: class vs. instance methods, linked list, Lab: Smalltalk/X (tutorial, method list)    (Ch 7.7-8)
  15. Friday 10/13 - Quiz 4, Smalltalk wrapup, IntList
  16. Wednesday 10/18 - Exam Review
  17. Friday 10/20 - Functional programming   (Ch 10)
  18. Monday 10/23 - Intro to Scheme, lists, quoting   (Ch 10, R5RS, mit-scheme, tutorials)
  19. Wednesday 10/25 - Scheme: list functions, append, reverse, tail recursion, sample.scm, lists.scm, tail-rec.scm   (Ch 10.1-3, 15.6)
  20. Friday 10/27 - Scheme: higher-order functions, lambda expressions, sum-fun.scm (Ch 10.1-3)
  21. Monday 10/30  - Scheme: let expressions, equivalence predicates, numeric differentiation, nderiv.scm   (Ch 10.1, 10.6)
  22. Wednesday 11/1  - Quiz 5, Symbolic differentiation, deriv.scm, procedure application and evaluation order   (Ch 10.4-5, 8.4)
  23. Friday 11/3  - Intro to ML   (Ch 8.1-3, 15.5)
  24. Monday 11/6  - ML: let expressions, lists   (Ch 8.2-3, 9.1-2, handouts)
  25. Wednesday 11/8 - Quiz 6, ML: function definitions by cases, defining new types, sample.ml   (Ch 9.2, 9.5, handouts)
  26. Friday 11/10 - ML: datatypes, higher-order functions, Curried functions   (Ch 9.5, 9.3)
  27. Monday 11/13 - Logic Programming, intro to Prolog, SWI Prolog, family.pl   (Ch 11.1-2)
  28. Wednesday 11/15 - Quiz 7, Simple Prolog programs, arithmetic, Pete's puzzle, pete1.pl   (Ch 11.2)
  29. Friday 11/17 - Prolog lists, list functions, tail recursion   (Ch 11.3-4)
  30. Monday 11/20 - Quiz 8, Binary search trees, Prolog control, rule and goal order, bst.pl   (Ch 11.3, 11.5)
  31. Monday 11/27 - Unification, Prolog search algorithm   (Ch 11.2, 11.5)
  32. Wednesday 11/29 - Quiz 9, Cut, negation, pete1a.pl   (Ch 11.6)
  33. Friday 12/1 - Searching with Prolog and Scheme, goat.pl, goat.scm
  34. Monday 12/4   - Postscript, examples
  35. Wednesday 12/6   - Tcl/Tk
  36. Friday 12/8   - Course summary, final exam review

Related Links