CS 2104 - Programming Language Concepts (2002-03)



Announcements

1.  Pre- & Co-requisites for this course : read CS 1102.

2.  A make-up lecture (for the NATIONAL DAY holiday) will be taken on Saturday September 21,  8 - 10 AM. The venue is  LT 33.

3.  Midterm solutions posted.

4.  The final exam has taken place.

Brief Description

A small number of concepts underline the hundreds of programming languages that have been designed and implemented. This module introduces the concepts that serve as a basis for programming languages. It aims to provide the students with a basic understanding and appreciation of the various essential programming language constructs, programming paradigms, evaluation criteria and language implementation issues. The module covers concepts from imperative, object-oriented, functional and logic programming. These concepts are illustrated by examples from varieties of languages such as Pascal, C, Java, Smalltalk, Scheme, Haskell, Prolog, Perl etc.

Course Outline

The following is a tentative outline of the lectures and examinations in the course.

Materials

    Text Book :
           Programming Languages Principles and Paradigms by Allen Tucker and Robert Noonan, McGraw Hill (Available in the Bookstore).
 

     Readings :
               Aug 3:         Chapter 2.1, 2.2, 2.3

               Week  2:      NATIONAL DAY

               Aug 16:        Chapters 3.3, 3.4

               Aug 23:        Chapters 4.1-4.3, 5.3-5.5

                                              It is also good to read Chapter 5.6

               Aug 30:        Chapters 4.6, 5.1, 5.2

               Sep 6:          Chapters 7.1, 7.2, 7.5, 7.6

               Sep 21:        Chapters 3.1, 4.3, 4.4

               Sep 27:        Chapters 3.6, 7.3, 8.2.1, 8.2.2, 8.2.7 

               Oct 4, 11:     Chapter 8, 

                                   SML tutorial by Prof. Robert Harper

               Oct 18, 25 :  Chapter 9,

                                  Logic Programming Draft Book by Prof. David Warren (See the chapter "Intro to Prolog")

               Nov  1:         Final Wrap-up.

      Lectures :  

               Lecture 1 (Aug 3)  :   Language Syntax (ppt)
               August 9: No class (NATIONAL DAY)

               Lecture 2: (Aug 16)  : Language Semantics (pdf)

               Lecture 3 (Aug 23) : Scalar and Structured Types ( ppt )

               Lecture 4 (Aug 30):  Subprograms  (ppt) 

               Lecture 5 (Sep 6):  Inheritance in OOP (ppt)

               Sept. 13:  Semester Break

               Lecture 6 (Sep 20):    MidtermSolutions

               Lecture 7 (Sep 21) :   Type Checking/Polymorphism  (ppt) [Make-up lecture for NATIONAL DAY]

               Lecture 8 (Sept 27):  Expressions  (ppt)

               Lecture 9 (Oct  4) :  Functional Programming - I  (ppt)

               Lecture 10 (Oct 11):  Functional Programming - II (ppt)

               Lecture 11 (Oct 18):  Logic Programming - I  (ppt)

               Lecture 12 (Oct 25):  Logic Programming - II (ppt)

               Lecture 13 (Nov 1) : Final  Wrap-up   (ppt)


Other resources

                    Answers for Last year's final exam (  postscript  )

                    Do not use it as a predictor for this year's exams.

                    Also, some topics covered last year may not have been covered this year (and  vice-versa).

                

Discussion Forum

Use the IVLE discussion forum  for posting queries/messages related to the course. Go to IVLE and click on Discussion Forum.

Assessment

Tutorial Participation :   5 %

10 Homeworks :           20%

Midterm Examination:  25 %

Final  Examination:      50%

Homeworks

There will be 10 homeworks. Homeworks will be handed out on Friday and will be due the next Thursday. We will use the IVLE Workbin for electronic submission of  homeworks.

Homework  1  (Due date:  August 15, 11:59 PM). Solution  

Homework 2 (Due date: August 22, 11:59 PM).    Solution  

Homework 3 (Due date: August 29, 11:59 PM).    Solution  

Homework 4  (Due date: Sept. 5, 11:59 PM)       Solution  

Homework 5   (Due date: Sept. 12, 11:59 PM)    Solution  

Homework 6   (Due date: Oct 3, 11:59 PM)    Solution  

Homework 7   (Due date : Oct 10, 11:59 PM)    Solution  

Homework 8   (Due date: Oct  17, 11:59 PM)    Solution  

Homework 9   (Due date: Oct 24, 11:59 PM)     Solution

Homework 10  (Due date: Oct 31, 11:59 PM)    Solution

 

Workbin

Use the IVLE  Workbin  for submitting homeworks. Go to IVLE and click on Workbin.

Other Course Information

Staff
          Instructor Dr. Abhik Roychoudhury Office : S16 #06-08 , E-mail :  abhik@comp.nus.edu.sg
          Teaching Assistant: Soo Yuen Jien


Lectures
          Friday  10:00 AM -  12:00 noon
          Venue :  LT 27

Consultation

           Thursday  11 AM -  1 PM
            Venue :  S16 #06-08
Tutorials
Tutorials will be held weekly  starting from Week 3 (August 12 - 17). We will have tutorials in the last week also.