Assignment Schedule
Homework | Topic | Weight | Due Date |
Assignment 1 |
Scheme |
8% |
Friday, February 3 |
Assignment 2 |
Scheme |
8% |
Friday, February 17
extended to Friday, March 3 |
Assignment 3 |
Scheme/C++ |
8% |
Friday, March 17 |
Assignment 4 |
Prolog |
8% |
Friday, March 31
extended to Monday, April 3 |
Assignment 5 |
Prolog/Formal languages |
8% |
Monday, April 10
extended to Tuesday, April 11,
no late assignments |
Announcements, clarifications, corrections and revisions to assigment
specifications are posted to the
Announcements page.
Please read this page regularly.
- Assignment handout:
HTML
Your code must run on the cslinux.utm system.
- Now Due Tuesday, April 11 by 8:00pm (really 11:30pm), no late assignments.
- A good Definite Clause Grammars (DCG) tutorial reference.
- Clarification: In your grammar you may assume there only 4 blocks
in the world, named a,b,c,d, and a table.
Even if you choose to use blocks2 (just make sure you have the same default
initial world). Be aware that it's probably easier if you don't hard-code
it in your grammar, though.
- Clarification: You may submit helper files, including
blocks1.pl, if you so choose. We won't be marking the blocks
world per se for this assignment, but you might find you need some minor
modifications to your code to get it working right. (For example, you
might need to add some cuts even though it worked perfectly the way
is was used in A4.)
- For Part II, each of the scripts mentioned should be accepted
(and interpreted correctly) by your grammar. You should also accept
at least one alternate way of saying the same thing.
For Part III, demonstrate that your grammar accepts both the provided
script (and executes it correctly) and your alternative form.
For example, you might exhibit both
"Which block is on top of a?" and
"What is on top of block b?"
to demonstrate the provided question idiom q.
You don't have to demonstrate all forms your grammar accepts, just
a couple interesting examples.
Organize your transcript (perhaps annotated with comments) to make it easy
for the marker to read and understand.
Assignment 5 submission details
Submit to the
UTM submit system
the following two Prolog source files:
- blocks5.pl - Prolog code for your assignment.
Be sure to include your basic blocks world code in this file!
- transcript.txt - transcript of user interaction with your Prolog program
You do not have to include read_line.pl, as you shouldn't need
to change it.
Include your name and student number in comments at the top of each file.
(Recall that Prolog comments start with /* and end with */,
or go from % to the end of the line.)
Include any helper code in your submitted files.
- Assignment handout:
HTML
Your code must run on the cslinux.utm system.
- Due Monday, April 3 by 8:00pm
- Looking ahead: you will be extending your part I for assignment 5.
You will also have the option of extending my sample solution for
assignment 5, but it won't be available until Wednesday evening.
- Clarifications and hints
- Solutions were posted to the course blog.
Assignment 4 submission details
Submit to the
UTM submit system
the following two Prolog source files:
- blocks1.pl - solution to part 1
- blocks2.pl - solution to part 2
Include your name and student number in comments at the top of each file.
(Recall that Prolog comments start with /* and end with */,
or go from % to the end of the line.)
Include any helper code in your submitted files.
Assignment 3 submission details
We will again be using the
UTM submit system
for electronic submission of your source code.
Please put your solutions in the following two files:
- throwing.scm - solution to question 1
- mimic.cc - solution to question 2
Include your name and student number in comments at the top of each file.
Include any helper code in your submitted files.
Assignment 2 submission details
We will again be using the
UTM submit system
for electronic submission of your source code.
Please put your solutions in the following nine files:
- sum.scm - solution to question 1
- free.scm - solution to question 2
- cond.scm - solution to question 3
- proposition.scm - solutions to all parts of question 4
- cq.scm - solution to question 5(a)
- class-b.scm - solution to question 5(b)
- class-c.scm - solution to question 5(c)
- class-d.scm - solution to question 5(b)
- class-e.scm - solution to question 5(e)
If you want to use procedures from one of the files in another file,
use load. When we test the code we'll make sure the files are
in the same load path so that load can find them.
To load (into the current execution) everything defined in another file, write:
(load "otherfile.scm")
This is also a good way to organize your own testing: put the tests in
another file and load the file with the procedures you want to test.
Assignment 1 submission details
Compose one Scheme file as your answer to each question.
Name your files q1.scm, q2.scm, q3.scm,
and q4.scm.
Include your answers to all subparts of a question in a single file,
as well as any comments or helper procedures that may be required.
Include your name and student number in comments at the top of each file.
We will be using the UTM submit system for electronic submission of
your source code. Once you have created your files,
Submit here.
You will require your UTM login. Please check that your account is
activated for CSC 324 submission before the due date.
(You should have been added automatically.)
If not, please let me know right away.