Course description

Lecture notes






CS 345 - Programming Languages (52470)

Fall 2010

Lecture notes

  1. Introduction and course logistics.   [PDF]
  2. Programming paradigms.   [PDF]
  3. Brief history of programming languages.   [PDF]
  4. Lexical and syntactic analysis.   [PDF]
  5. Imperative programming.   [PDF]
  6. Functions: parameter passing mechanisms.   [PDF]
  7. Functions: scope and activation records.   [PDF]
  8. Buffer overflow and stack smashing.   [PDF]
  9. Introduction to ML.   [PDF]
  10. Exceptions.   [PDF]
  11. Garbage collection.   [PDF]
  12. Types. Overloading, parametric polymorphism, type inference.   [PDF]
  13. Concurrency.   [PDF]
  14. Lambda-calculus.   [PDF]
  15. Functional programming in Scheme.   [PDF]
  16. Logic programming in Prolog.   [PDF]
  17. Introduction to JavaScript.   [PDF]
  18. Security vulnerabilities in scripting languages.   [PDF]
  19. Modules and objects.   [PDF]
  20. Simula and Smalltalk.
  21. Introduction to C++.