Several different models of languages are discussed, including procedural (Ruby), functional (OCaml), and object-oriented (Java). Language features such as formal syntax, scoping and binding of variables, higher-order programming, typing and type polymorphism, and object inheritance are explored.
Course syllabus: http://www.cs.umd.edu/class/spring2008/cmsc330/syllabus.shtml
Course content can be found at http://www.cs.umd.edu/class/spring2008/cmsc330/schedule.shtml
All course materials are copyright Dept. of Computer Science, University of Maryland (Marvin Zelkowitz, Jeff Foster, Larry Harman, Atif Memon, Chau-Wen Tseng)