CS 131 Syllabus

 

Catalog Description

  A thorough examination of issues and features in language design and implementation including language-provided data structuring and data-typing, modularity, scoping, inheritance, and concurrency. Compilation and run-time issues. Introduction to formal semantics. Prerequisites: CS 70 and CS 80. 3 credit hours.

Instructor

 

Joshua S. Hodas
243 Olin, 621-8650
hodas@cs.hmc.edu
http://www.cs.hmc.edu/~hodas


For schedule and office hours, see schedule on office door, or check
http://www.cs.hmc.edu/~hodas/schedule.html

Course Home Page

  http://www.cs.hmc.edu/~hodas/courses/cs131/

Textbooks

  ML for the working programmer (second edition), Larry C. Paulson, Cambridge University Press, 1996.

Date / Time / Place

  Monday and Wednesday, 2:45pm-4:00pm, in Galileo Pryne Auditorium.

Selected Topics

 
  • Different Paradigms of Computing
  • Interpreters vs. Compilers
  • Imperative vs. Functional Programming
  • Breaking The Von Neumann Bottleneck
  • Introduction to ML (3-4 weeks)
  • Higher Order Programming: Functions as Data
  • Denotational and Operational Semantics
  • Regular Expressions, Lexical Analysis, and Lexer Generators
  • Grammars, Parsing, and Parser Generators
  • The Stack as an Environment Model
  • Extending the Stack Model to Environment Frames
  • The Lambda Calculus as a Model of Computation
  • Types and Type Inference

 
 

Assignments and Grading

Projects This course is projects-based. It will be built around the development of a series of interpreters for a variety of mini-languages in the Lisp family. Development will be structured as a series of 2-3 week assignments, each implementing some feature or version of the interpreter. The programming will all be done in the language ML, a modern functional programming language descended from Lisp.

Assignments There will also be occasional short (one week) written assignments involving one of the formalisms we will be studying.

Exams There will be no exams.

Grading and Late Policy Grading will be on a ten point scale. Late assignments will be dropped 1.5 points for every two days late. That is, as soon as an assignment is late it will drop 1.5 points. You then have 48 hours to submit it before it drops another 1.5 points. No assignments will be accepted more than four days late.

In addition, You each begin with a bank of five free delay days that you may use as you see fit to reduce late penalties. You can use up to four on a given project. If you intend to use some delay days on a project, you should indicate that in a comment at the beginning of the program.

Honor Code Policy

With regard to both pencil-and-paper and computer-based assignments we expect you to hold to the following standard in your work: you are free to discuss a problem with other students, and hash out the general framework of the solution, but the actual work handed in must be your own. You should not share code, or substantial aspects of solutions.


This page copyright ©1996 by Joshua S. Hodas. It was built on a Macintosh. Last modified on Wednesday, September 1, 1999 at 1:49:10 PM.
http://cs.hmc.edu/~hodas/courses/cs131/syllabus.html