MzScheme Programming Exercises [PDF | PS]
(you do not need to turn
your solutions in, but you should be confident that you can do these
problems by the end of the second week of the course.)
Solutions: [PDF | PS] (try to work the problems before looking at the solutions)
Requirements Analysis Project [PDF]
Due: Friday, March 30, in class
In order to complete this assignment, members of your group must sign up for meetings with the "clients" (aka course staff). Sign up for meeting slots using the on-line scheduler. The scheduling options are in the top frame (with various options for searching for open meeting times: "schedule by day" is probably the easier method). Specify who you want to schedule a slot with using the "Select Principal" pull-down menu. Each of us appears twice in the menu to allow up to two groups to schedule meetings with us in each slot.
The scheduler will give you a confirmation number for your scheduled meeting. Remember the number, as you will need it to change your meeting slot. Remember that missed meetings may not be rescheduled: we will check the schedule each morning to see who to expect, so if you must change a meeting time, do so at least a day in advance.
Software Integration Project (individual) [PDF, PS; circuits-base.ss ; circuits-sample.ss]
Due (updated): Tuesday, April 17, 11:59pm. Use turnin with
assignment name comparator.
Note: This is NOT a group project. You may not collaborate on or discuss this assignment with other students.
The makefile /home/kfisler/CS3733/Comparator/Makefile
(on
CCC) will compile your adapt.c file into the extension file to load
into MzScheme. All needed project files are now compiled and
available. You need /usr/local/plt/bin in your path to use the
Makefile on CCC.
The extension file adapt.so will be large, on the order of 1MB.
The unix strip utility will reduce this to about .5MB (use command
strip adapt.so
).
Component Implementation Project [PDF | PS]
Interface Proposal Due: Monday, April 9, in class.
Implementation Due: Tuesday, April 24, 11:59pm. Use turnin with
assignment name component.
See the groups page to find out which component(s) of the project your group should implement.
Note: Submit all turnin files for this project under one group member's username.
Code Walk Information: Sign up for slots using the on-line scheduler.
Subsystem Interface Specification
Notes on Networking in MzScheme
A Scheme file containing all of the signatures definitions for the project
The web pages in the Resources section will teach you many of the Scheme fundamentals that you need for this course. If you have taken CS2135, you should need mainly the references on classes and objects in MzScheme. You may also find the design recipes material helpful if you feel your programming skills are weak.
If you want a more detailed review of program design that happens to be presented using Scheme, I highly recommend the text How to Design Programs, which is available on-line. Sections that may be particularly helpful to you are:
If you want a series of very introductory exercises to get practice with simple functions and cond expressions, look at assignments 0 and 1 from the assignments for the intro programming course I used to teach before coming to WPI.
Stephen Bloch's guide to the minimal Scheme language (doesn't include the object system)
Stephen Bloch's summary of the steps to take when designing programs. These steps are called design recipes, and they can help you develop programs in a clear and systematic fashion. The DrScheme helpdesk also contains a guide to developing programs through design recipes. The helpdesk is DrScheme's hypertext-based help system, accessible through the Help menu; enter concepts or keywords in the search window to request documentation on a particular language feature. It is also available as a standalone program in /usr/local/plt/bin/helpdesk on CCC.
The MzScheme language reference. This entire document is also installed in the helpdesk (so if you download DrScheme, you will have this document on your home machine).
The section on classes and objects from the MzScheme language reference. Also available in the helpdesk.
This page maintained by Kathi Fisler Department of Computer Science Worcester Polytechnic Institute |