CS 364 Syllabus Spring 2008

Instructor

  • Ed Harcourt
  • Office: Valentine 210
  • Phone: x5444
  • edharcourt@stlawu.edu
  • Office hours: Monday - Thursday 10AM - 11AM. I am usually in the office all morning Monday through Thursday. I will be unavailable on Fridays.

Course Info

CS 364 - Programming Languages

The prerequisite for this course is CS220 or CS319.

Required textbook: Programming Languages: Principles and Paradigms , Second Edition, by Allen Tucker and Robert Noonan. I will refer to this book by the acronym "PLPP".

Required textbook: Structure and Interpretation of Computer Programs Second Edition, by Ableson and Sussman. You do not have to purchase this book; it is freely available online for free at the link above. I will refer to this book by the acronym "SICP".

Required Readings:

Required Software

  • Scheme. Freely available here.
  • Java. I assume you have this already or know how to install it. See me if you need assistance. The keeper of the Java programming language is Sun Microsystems. See java.sun.com. There are several popular IDEs. I've started using DrJava in CS140. For a more "indistrial strength" IDE use Eclipse.

I may also assign a few other readings from papers and web sites.


Grading

Grades are based on a 100 point scale and are derived from the following.

  • Exams (60%)
  • Homework Assignments (40%)

The 100 points above translate to the following GPA points.

Click here to toggle displaying the grade table.

Homework Assignments

There will be regular homework assignments. Most of these are programming assignments but there will also be a few writing assignments based on readings and other problem sets out of the book. All assignments are to be done on your own unless I indicate otherwise. By now you are all mature programmers and I expect your code to be well structured, commented, contain preconditions and postcondintions, etc. We will go over these requirements in class, and if you have any question, I'm happy to look over a project before you turn it in.

Exams

  1. There will be two mid-term exams each worth 20%.
    1. Exam 1: Monday February 25
    2. Exam 2: Monday March 31
  2. The final exam will be a take home exam worth 20% of your grade and includes a final programming project. The final exam is due Saturday May 10 by 4:30PM (the end of the regularly schedule exam time for the class).

Attendance

Attendance is mandatory. You will be allowed two absences during the semester. After that your final grade will be reduced by two points per absence.


Topics

Below is the rough order of topics we will cover in this class.

  1. Overview. Chapter 1 (PLPP). The Hundred Year Language by Paul Graham.
  2. Functional Programming in Scheme. Chapters 1 and 2 in SICP.
  3. Lexical and Syntactic Analysis. Chapter 2 and 3 (PLPP)
  4. Names. Chapter 4 (PLPP)
  5. Types. Chapter 5 (PLPP)
  6. Semantics. Chapter 7 and 8 (PLPP)
  7. Functions. Chapter 9 and 10 (PLPP)
  8. Memory Management. Chapter 11 (PLPP)
  9. Object Oriented Programming. Chapter 13 (PLPP)
  10. Event Driven Programming. Chapter 16 (PLPP)
  11. Concurrent Programming. Chapter 17 (PLPP)

Academic Integrity

Please read the university's academic integrity policies in your student handbook.