CS 480/680 Comparative Languages

  • Quarter : Fall, 2011
  • Class Hrs : MW, 4:10 - 5:25pm,  155 Russ Center
  • Office Hrs : MW, 3:00 - 4:00pm, 395 JC (or by appt.)

  • Course Description

    This course will introduce fundamental concepts and paradigms underlying the design of modern programming languages. For concreteness, we study the details of an object-oriented language (e.g. Java), and a functional language (e.g., Scheme). The overall goal is to enable comparison and evaluation of existing languages. The programming assignments will be coded in Java and in Scheme.


    Prerequisites


    Course Material

    1. On-line Lecture Notes.
    2. OOP Basics

    References

    1. K. Arnold, J. Gosling, and D. Holmes: The Java Programming Language.  Addison-Wesley Publishing Co., 4th Edition, 2005. ISBN 0-321-34980-6
    2. Michael L. Scott, Programming Language Pragmatics. Morgan Kaufmann Publishers, 2nd Edition, 2006. ISBN 0126339511
    3. The Java Tutorial
    4. Ravi Sethi, Programming Languages: Concepts and Constructs. Addison-Wesley Publishing Co., 2nd Edition, 1996. ISBN 0-201-59065-4
    5. R. Kent Dybvig, The Scheme Programming Language, 3rd Edition. Prentice Hall, 2003.
    6. Scheme : Language Reference Manual
    7. Chez Scheme Download Site (http://www.scheme.com)
    8. DrScheme Download Site (http://www.drscheme.org/)
    9. Jython Home Page
    10. Dive into Python
    11. Scala

    Relevant Websites


    Course Load

    The course load includes programming assignments worth 30 points, a midterm worth 30 points and a final worth 40 points. Normally, CS680 students are assigned additional homework problems and are expected to solve additional/different problems in the tests.


    Grading

    The letter grades will be assigned using the following scale: A[90-100], B[80-90), C[70-80), D[60-70), and F[0-60). However, I reserve the right to adjust the scale somewhat to utilize the gaps in the distribution. Academic dishonesty will be "rewarded" with a grade of "F". "Sharing/reuse" of solutions to assignment problems is strictly prohibited.

    Attendance Policy

    All registered students are expected to attend all lectures. In case a student is absent from a lecture due to unavoidable circumstances, the student is still responsible for the material covered in the class, as it is typically available from the course web-page well in advance. Furthermore, the student is expected to find out about in-class announcements from their colleagues/instructor.


    Class Schedule and Syllabus


    Topic
    Class 1 Evolution of Programming Languages
    Class 2 Syntax Specification : Grammars
    Class 3 Object-Oriented Programming
    Class 4 Symbolic Data; List Processing  
    Class 5 Styles : Functional vs Procedural
    Class 6 Recursive Definitions ( Scheme-Startup )(Examples)
    Class 7 Abstraction : Higher Order Functions
    Class 8 Scoping; Closures
    Class 9 Midterm (October 12)
    Class 10 Java Design Goals
    Class 11 Types, Values, Variables
    Class 12 Arrays; Classes
    Class 13 Inheritance; Polymorphism
    Class 14 Interfaces; Packages; Strings
    Class 15 Exceptions
    Class 16 Threads
    Class 17 (continue) (Scripting vs Systems PL)
    Class 18 SCHEME INTERPRETER (2/3 classes)
    Class 19 Code (scm/txt)
    Class 20 Hand Written Slides (83M pdf) (43M pdf)
    Class * Parameter Passing Mechanisms
    Class * Implementing Subprograms

    Final (November 14,   5:45pm-7:45pm)


    Assignments  (Fall 2011)


    Exams (Summer 2011)


    T. K. Prasad 
    (08/31/11 )