03-60-440 Principles of Programming Languages (2011 Fall)

School of Computer Science, University of Windsor

 

There are more office hours on Dec 13 and Dec 14 from 11:00am 12:00am to 3 pm. The final exam is on Dec 15 Thursday starting from 15:30pm in CN G125.
  • Lecture time and place: Tuesdays and Thursdays 13:00--14:20 DH 364
  • Office hours: Tuesday and Thursday 2:30-3:30. I added more office hours on Monday 11:00-1:00.
  • Instructor: Jianguo Lu, LT 5111. Email: jlu at uwindsor.
  • Graduate Assitant: Iman Rezaeian. Email rezaeia at uwindsor. Office hours: Wednesday 14:00--15:30 in LT 8107.

    Marks for assignment 3 are out.
    To get your marks, please enter your student ID:

    Handouts

    1. (week 1) Course outline [MS Word format],  overview (ppt slides).
    2. (Week 2) introduction to programming language classification, paradigms, and history ( classification slides, history slides )
    3. (Week 3, 4) Functional Programming [ Scheme] [ Lambda calculus], Sample scheme programs,
    4. (Week 4) MapReduce,
    5. (week 5) XSLT Slides
    6. (week 6) Logic Programming [Slides], sample.pl, path.pl, snowy.pl. GNU Prolog can be downloaded from the grolog.com web site. Supported platforms include windsows, OS x et al. It is also installed on machines in our school.
    7. (Week 7, 9) OOP and Polymorphism, Distributed object and object persistence.
    8. (Week 8) Review ( slides ) and midterm
    9. (Week 10, 11) Aspect Oriented Programming, Slides [AOP 1] [AOP2]
    10. (Week 12, 13) Axiomatic semantics.
    11. (Week 13 ) review, ppt , Online sample test ,
    12. Sample exam questions [Midterm 2006 Winter] [Final sample exam] Note that we did not cover web service this time and we will not test it

    Assignments

    1. [Functional programming]
    2. [ XSLT]
    3. [AspectJ]

      Sample code

      1. overloading/A.java, overloading/OverloadingIncorrect.java,
      2. overriding/A.java, overriding/B.java
      3. inheritance/A.java, inheritance/B.java, inheritance/C.java
      4. inheritance/incorrect/A.java, inheritance/incorrect/B.java, inheritance/incorrect/C.java
      5. inclusionPolymorphism/noPolymorphism/Cat.java inclusionPolymorphism/noPolymorphism/Dog.java, inclusionPolymorphism/noPolymorphism/Interrogator.java,
      6. inclusionPolymorphism/withPolymorphism/Cat.java, inclusionPolymorphism/withPolymorphism/Dog.java, inclusionPolymorphism/withPolymorphism/Mammal.java, inclusionPolymorphism/withPolymorphism/Interrogator.java,
      7. inclusionPolymorphism/morePolymorphism/Cat.java,   inclusionPolymorphism/morePolymorphism/Dog.java inclusionPolymorphism/morePolymorphism/Mammal.java, inclusionPolymorphism/morePolymorphism/Clock.java, inclusionPolymorphism/morePolymorphism/AlarmClock.java, inclusionPolymorphism/morePolymorphism/Talkative.java, inclusionPolymorphism/morePolymorphism/Interrogator.java
      8. generics/SubtypeIterateDogsCorrect.java, generics/GenericMethod.java, generics/Dog.java, generics/Mammal.java, generics/Pair.java
      9. Above classes have package declarations. To compile and run those classes, you need to put them in appropriate directories.
      10. Example for distributed objects (Person class) Person, PersonInterface, Person_Stub, Person_Skeleton, PersonClient
        • "If you give someone a program, you will frustrate them for a day; if you teach them how to program, you will frustrate them for a lifetime." --Anonymous
      11. 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) , Wikipedia definition.
      5. Sun Java Generics Tutorial
      6. AspectJ book,  AspectJ in Action: Practical Aspect-Oriented Programming, by Ramnivas Laddad (Paperback - Jul 1, 2003)  (sample chapter)
      7. AspectJ project
      8. DrRacket, a language derived from Scheme.
      9. a web based Scheme program development environment WeScheme
       

       

      Dr. Jianguo Lu   Email: jlu at uwindsor,  Office: LT5111