CMSC 330, Fall 2005

Organization of Programming Languages

Projects

  • Project 0:  Set up Your Account, and Get to Know Ruby   PS  PDF
    In this project, you will set up your account, practice reading the class newsgroup, and write three small Ruby methods.

  • Project 1:  Use Ruby Regular Expressions and Data Structures PS  PDF
    In this project, you will write a Ruby program to check the output of a simulator of a bicycle race. This involves checking certain structural properties of one input data file representing the course the bicycle race is run on, and verifying that the data in another input file has certain properties with respect to the course.

  • Project 2:  Write Various OCaml Functions PS  PDF
    In this project, you will write several OCaml functions of varying degrees of difficulty, including some higher-order functions. The most complex of these will be an implementation of the Game of Life in OCaml.

  • Project 3:  Write Some OCaml Modules PDF
    In this project, you will implement a module in OCaml for rational numbers and another module for working with boolean formulae, and a module which implements Binary Decision Diagrams, a data structure for representing boolean formulae.

  • Project 4:  Write A Small Scheme Interpreter PS  PDF
    In this project you will write in OCaml a scanner, parser, and interpreter for a subset of the language Scheme.

  • Project 5:  Write A Concurrent Simulator for the Bicycle Race PS  PDF
    In this project you will use threads in Java to implement a simulator which will maintain the positions of cyclists running a race similar to that in Project 1, and verify that none of them violate the rules given in that project.

  • Project 6:  Write A Cyclist PDF
    In this project you will create a cyclist for the bicycle race which is able to navigate a course on its own.

Project Submission Instructions

You must submit your projects electronically using the submit server. You will log in to the submit server using your University Directory ID. Once you log in, click on the submit link for the project you wish to submit, and follow the directions. Alternately, we will supply you with a command-line tool for submitting each project.

Valid HTML 4.01!