General Info
   Non-functional Requirements

CPSC 449: Principles of Programming Languages - Assignment

In this course, we will have three assignments that essentially require that you implement the same method for deciding decidability of a set of propositional clauses in three different programming languages. In order to keep these assignments reasonable, you will do them in teams of 5 students.

You find a description of the general method and of the syntax for the input file, as well as a description of the required output on the page describing the DavisPutnam method. For the first assignment, your team can choose whether you want to use Pascal or Java as implementation language. The second assignment will use Haskell, while in the third you have to use PROLOG.

Note that your systems should allow for the use of two different controls for the method!

Non-functional Requirements

While the main focus of your assignments should be on correctly implementing the required functionality, it is expected that your systems are efficient enough to solve not too complicated examples in a reasonable time. The definition of complicated and reasonable will be different for the different languages. You will be given examples in the labs that will tell you the particular definition for the particular assignment. Note that we will use the better of your two control functions to base our grading on!

Each team has to submit their source code and a text file describing how to install and run the system to the TA of their lab before the deadline given below. If the description in the text file does not lead to a successful installation, this is considered the submitting team's fault. Late submissions without having obtained beforehand (i.e. before the deadline) permission (and penalities for the late submission) will be graded as F.

Time table

The following table gives for each assignment the day the assignment is due. Your submission has to have reached your TA by noon on the given day.

Assignment Deadline
Pascal/Java March 2
Haskell March 30
PROLOG April 15

to the timetable for the course.

Last Change: 22/12/2003