For this lab, you will work through section 7.6 of the text. We want you to work on this lab in groups of two (with perhaps one group of three, should that prove necessary due to an odd number of students). You should tell us at the start of lab on Thursday, April 24th whom you intend to work with; otherwise we will make group assignments for those students who have not decided. You may work with someone from another lab section, but if so, you should both attend the same lab section while working on this lab.
We warn you that working in a group of two does not mean that your work load will be halved; in fact, some groups may find that the amount of hassle will effectively increase the work. Our intention is that you gain experience in working in teams, since teamwork is very common in today's workplace. You should have a clear understanding of each other's responsibilities, and be dependable and punctual in carrying them out. Also, be sure that neither partner monopolizes the work, but rather that you share it as equally as possible. Finally, we strongly encourage you to set up a group meeting with your lab instructor after your second day of working together in lab (Tuesday, April 29th), so that we can assess how the project is going and, if need be, suggest strategies for more successfully working together.
Before coming to lab on Thursday, April 24th, you should read section 7.6 through at least exercise 7.24 on pages 225-226. Barbara will be discussing section 7.6 in class on Friday, April 25th.
You are required to do exercises 7.22-7.31 for the lab, and you may additionally do as many of exercises 7.32-7.38 as you have time and interest. You should probably do exercise 7.34 before exercise 7.35, but otherwise the optional exercises are independent of one another, so you can generally do any of them without having done the preceding ones.
Following is a breakdown of the exercises into related groups:
Using the File menu's Open command, you should open the file:
/Net/solen/u8/Faculty/em/max/MC27/movie.scmthen save it somewhere in your directory and evaluate everything in it. This file contains the main procedures for the movie query system from section 7.6, commented and organized for your ease of understanding.
Work on exercises 7.22-7.24 during the first lab day. These
exercises will give you practice manipulating lists using
filter
and map
. You do not yet have to work
with the movie query system.
Next do exercises 7.25-7.27 on pages 231-233. These exercises deal with the basics of the query system, which Barbara will have talked about by the second lab day. Note that you can't actually test your solution to exercise 7.25 using the query-loop until you reach exercise 7.27. However, other than this you should test as you go. As the text of exercise 7.26 remarks, you should test each procedure independently rather than only in the context of the overall query-loop.
Next do exercise 7.28. This exercise, the two in the next portion, and the optional exercises all consist of extending the working query system with extra features.
The final required part of the lab is exercises 7.29-7.31. For these
exercises you'll want to use the second version given in the text of
the pattern/action list and the matches?
procedure. To
get these second versions, use the File menu's Open command to open
the file:
/Net/solen/u8/Faculty/em/max/MC27/movie-second.scmthen save it somewhere in your directory and evaluate everything in it. If you quit work and resume another day, remember to evaluate the definitions from this file after the ones from the original file, so that these newer ones are in effect.
As usual, write up a lab report that explains all of what you did to an audience generally knowledgeable about Scheme and such, but ignorant of specifically what you did. Answer all of the questions posed, but do not simply write up your lab as a sequence of exercises. Instead, try to convey the big picture of what you accomplished. Remember, there are some tips in the document entitled "Suggestions for clear lab reports in computer science courses."