• Lecture time and place: Monday and Wednesday 10:00-11:20. Essex Hall 186.
  • Office hours: Monday and Wednesday 12:00-13:00.
  • Instructor: Prof. Jianguo Lu, LT 5111. Email: jlu at uwindsor.

    Midterm exam will be on Oct 23 10:00-11:20 in Erie Hall 1118

    • Our GAs for this course are Qinglan Lu (at lu13o) and Yichen Lu (at lu16a). Their office hours are Thursday 1:00-2:20 (Yichen Lu) and Thursday 2:30-3:50 (Qinlan Lu) at ER 3146.


    To retrieve your marks, please enter your student ID:



    Handouts

    1. (week 1) Course outline [ pdf], overview ( PPT, ).
    2. (Week 2) introduction to programming language classification, paradigms, and history [PPT]
    3. (Week 3, 4) Functional Programming
    4. (Week 4) MapReduce [PPT],
    5. (Week 5) XSLT [PPT]
    6. (Week 6) Logic Programming [Slides(PPT)],
      sample.pl, path.pl, snowy.pl. GNU Prolog can be downloaded from the gprolog.com web site. Supported platforms include Windows, OS x et al. It is also installed on machines in our school.
    7. (Week 6, Review and midterm exam) ( slides ) midterm sample exam (PPT file) (PDF file)
    8. (Week 7, 8) Aspect Oriented Programming [PPT]

      aop assignment slides .

    9. (Week 8) Distributed object and object persistency [PPT]
    10. (Week 9, 10) Axiomatic semantics[PPT] [PDF] .
    11. (Week 11, 12) ,
    12. (Week 12 ) review, Online sample test
    13. sample questions and answers .

    Assignments

    1. [Functional programming] Due date: October 9.
    2. [ XSLT] Due date: October 20
    3. [AspectJ]

    Sample code

    1. Example for distributed objects (Person class) Person, PersonInterface, Person_Stub, Person_Skeleton, PersonClient
    2. AspectJ

    Resources

    1. Popularity of programming languages gives the popularity of programming languages, updated once a month.
    2. C. A. R. Hoare revisits his axiomatic semantics paper, CACM 2009.
    3. Computer Language History
    4. Axiomatic Semantics (book Chapter) ,
    5. Lambda calculus Wikipedia definition.
    6. Sun Java Generics Tutorial
    7. AspectJ book,  AspectJ in Action: Practical Aspect-Oriented Programming, by Ramnivas Laddad (Paperback - Jul 1, 2003)  (sample chapter)
    8. AspectJ project
    9. DrRacket, a language derived from Scheme.
    10. a web based Scheme program development environment WeScheme