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/

Textbook

 

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

The cheapest I have found this is from Bigwords.com. I have set up a booklist (B-2BG3D7) for direct ordering.

Date / Time / Place

 

Monday and Wednesday, 11:00am-12:15pm, 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
  • The Curry-Howard Isomorphism

  

Assignments and Grading

Projects

This course is principally 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 1-1.5 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 a final exam, counting for 20% of your grade. (I have not yet decided whether to schedule this exam in the assigned slot during finals week or as a take-home exam.)

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. These days will be allocated optimally by the graders at the end of the term to give you the best possible score. There is no need to indicate that you are using them.

Because the allocation of late days will be calculated only at the end of the term, the impact of late submission and delay days will not be reflected in the grades you receive from the graders on individual assignments. It is your responsibility to keep track of how many late days you have used.

Note that the limitation of submitting no later than four days after the due date is unaffected by the use of delay days. This is an absolute limit.

Finally, note that due to the need to distribute the sample solution in adequate time for it to be useful for the following project, project 7 must be turned in at the due time.

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 ©2000 by Joshua S. Hodas. It was built on a Macintosh. Last modified on Tuesday, January 18, 2000.
http://cs.hmc.edu/~hodas/courses/cs131/syllabus.html