Friday, April 24, 2009

Final Grades

Here are the final grades, sorted by the last 4 digits of your NUID. Good luck to you all!

--Prof. Wand

NUID Letter Grade
2404 B
3133 F
4271 B
5035 B
6981 B
7389 B
8906 A
8954 B
9999 A

Thursday, April 16, 2009

Extra Credit

Since the lab PCs have only the latest DrScheme version installed, v1.4.5, please update your code so that it works with the newer version.

The only two different points in the interface are:
-- the register function is now split in two functions(register and name)
-- all the world keywords start now with iworld. For example world1 is now iworld1.

Sorry for the last minute change.

Final Codewalk

Hi everyone,

The final codewalk is next Thursday. This time, the codewalk will be public. You are all invited to watch your fellow students' presentations. We will meet at WVH212 at 17:00.


Problem Set 11 codewalk's stats

full grade:120, max grade: 110, min grade: 90, avg grade: 104.4, mean grade: 107.5

Thursday, April 9, 2009

Problem Set 10 codewalks stats

full grade:80, max grade:75, min grade:68, avg grade: 71.25, mean grade: 71

Wednesday, April 8, 2009

Change of room for the last 2 codewalks

Hi guys,

I have reserved WVH 212 (one of the on the second floor) for the last two codewalks. We are moving to the lab so that we can try out the distributed applications.


Tuesday, April 7, 2009

Readings for Lecture 12

For next week, please review the material on generative recursion, both in the book and from lecture, and read the pdf document in the examples repository, Lecture12/invariants.pdf .

--Prof. Wand

Monday, April 6, 2009

Problem Set 11 and DrScheme

Please, use DrScheme v4.1.4 for problem set 11.

Finger Exercise for Problem Set 11

Extend the chess clocks server with a reset procedure. When the operator of the server presses ''k'' , the server asks all the clocks to stop and reset their internal counter.

Friday, April 3, 2009

Course Evaluations

I've been asked to communicate the following information to you. I've customized it somewhat.

--Prof. Wand

1. It's time for you to participate in on-line course evaluations. This program is called TRACE. This stands for something, but I don't know what :-) The University really likes to collect this data. We will also have in-class course evaluations on 4/13. At that time we will have forms from the College and from me personally.

2. Your assessments through TRACE are completely anonymous, as are the in-class evaluations.

3. Your assessments and comments will be available to the NU student community to assist future course selections.

4. Your assessments and comments are important data in evaluations of faculty performance.

5. Given the public nature of the comments and their intended use to enhance teaching, please be thoughtful and appropriate in crafting your input.

6. The TRACE evaluation period begins on Monday April 6. You can complete your assessments through Monday, April 27.

7. You access TRACE through your MyNEU portal. Please evaluate my course and all your other courses. For your convenience, you can save your work on the evaluations and you can submit course evaluations separately. However, you cannot change an evaluation once it is submitted. If your courses are not listed correctly, please email

Students will have from Monday, April 6 through Monday, April 27 at 11:50 p.m. to complete their survey.

Please e-mail for questions regarding TRACE. You should be receiving an individual email
announcing that the evaluation is open and describing how evaluations are used.

Your participation is appreciated.

Thursday, April 2, 2009

Problem 9 codewalks stats

full grade: 40, max grade: 37, min grade: 34, avg grade: 35.5, mean grade: 35.5

Readings for Monday 4/6

For Monday 4/6, please read HtDC Chapters 30-31, and the material in the DrScheme Help Desk on the Teachpack.

From the Help Desk, go to Teachpacks (this usually appears as the fifth item under "Languages") >> HtDP/ 2e Teachpacks >> 3.1 Worlds and the Universe

On my installation this resolves to:


Your installation may be different, of course.

Also, we will have a final lecture on Monday 4/13.

--Prof. Wand

Tuesday, March 31, 2009

Problem Set 10 is now available; other things

Homework 10 is now on the web site.

Also, I've committed the example files from last night's lecture to the example repository.

Last, if you are looking for a tool to make nicer class diagrams, you might want to check out UMLet. It can run either as a standalone application or as an Eclipse plug-in. I played with the standalone version for about 5 minutes and it seems ok. Kindly note that the handwritten class diagrams are fine, and I don't want you to waste a lot of time making them prettier. But if you feel the lack of a tool, here's one to check out. Thanks to Denis and Chander for the tip.

--Prof. Wand

Thursday, March 26, 2009

Problem set 8 codewalks stats

full grade: 90, max grade: 80, min grade:70, avg grade:74, mean grade: 73

Tuesday, March 24, 2009

Problem Set 9 is now available the usual place.

--Prof. Wand

Thursday, March 19, 2009

Problem set 7 codewalks stats

full grade:70, max grade:70, min grade:56, avg grade:65.5, mean grade:67

Wednesday, March 18, 2009

Readings for Monday 3/23

For Monday's lecture, please read Part IV (Chapters 23-28). This is complicated stuff, so it may take us more than one lecture to cover it, but you should read as much of it as you can for Monday.

--Prof. Wand

Sunday, March 15, 2009

Readings for Monday

We covered parts I and II of HtDC last week, so you should read Part III and Intermezzo 3 for this week's lecture.

--Prof. Wand

Thursday, March 12, 2009

Problem set 6 codewalks stats

full grade: 64, max grade : 52, min grade: 37, avg grade: 44.25, median grade: 44

Tuesday, March 10, 2009

Updates to Lecture 7 examples

There were a few points that I missed during last night's lecture:

1. Every method has an implicit argument called this . This is the argument on which the method "works" and corresponds to the argument on which we are using the structure strategy. Recall how I wrote

(define (foo this)
[(empty? this) ...]

Your purpose statement will almost always contain the word "this". That's a clue!

2. When you reference a field foo of an object, you should always say, not just foo. This is enforced in ProfessorJ/Beginner, but not in ProfessorJ/Intermediate. My examples violated this rule. So I should have said things like:

boolean test1 = check this.book1.listing() expect "Mitch: EOPL";

rather than

boolean test1 = check book1.listing() expect "Mitch: EOPL";

3. I was not happy with the method availableHelper :

boolean availableHelper (String title, int quantity) {
// is this book available in this quantity?
return ((this.ncopies >= quantity) && this.title.equals(title));

because (a) it violates the rule of 1-task/1-function and (b) it seems awfully artificial: it's not an obvious method for Book.

Here's a better solution: add to Book two methods

boolean titleEquals(String s) {
// does the title of this book equal s?
return this.title.equals(s);

boolean ncopiesGreaterThan(int n) {
// are at least n copies of this book on hand?
return this.ncopies >= n;

and in NeLOB redefine availableTitle to:

boolean availableTitle(String title, int n) {
// ... this.first ..., n) ...
if (this.first.titleEquals(title) && this.first.ncopiesGreaterThan(n))
{return true;}

[Finger exercise: Modify the method so that if the title is found, but there aren't enough copies, the method returns false immediately, rather than recurring through the rest of the list.]

Anyhow, both these changes are in, now in the examples/Lecture 7 repository.

--Prof. Wand

Problem Set 7 now available

PS7 is now up on the web site. Please make the class diagrams using whatever method is effective for you. We'd prefer to get something we can project, but if that turns out to be hard, just do it on paper.

Wednesday, March 4, 2009

Tutorial/Drill Club/Questions on Thursday

Hi everyone,

On Thursday at 18:00 @ WVH 164, I will hold a multi-purpose office hours session.

See you then.


Tuesday, March 3, 2009

Collection of Templates

Thanks to Christos, we now have the collection of official templates posted online. This is also available from the navigation column on the course home page.

--Prof. Wand

Friday, February 27, 2009

How to Design Classes now available

The textbook for the next portion of the course, How to Design Classes, is now available at the bookstore in the Curry Student Center.

Please read Part 1 and Intermezzo 1 of HtDC for the next class, Monday 3/9. That lecture will be devoted in part to a review of design strategy and in part to beginning the unit on OOP.

Tuesday, February 24, 2009

OT: Sita Sings the Blues

This is off-topic for the course, but I thought some of you might find it interesting.

From boingboing :

Nina Paley's brilliant -- and troubled -- animated short "Sita Sings the Blues" will air on PBS. This is the critically acclaimed short film that blends Hindu traditional stories with jazz-era music, whose distribution has been stopped by an unforeseen copyright claim on some of the 1920s music that is integral to the film.

Check out some of the links in the BoingBoing article if you want to learn more.

--Prof. Wand

findroot posted; PS6 revised

I've posted my version of findroot on the examples repository, as well as all the files from last night. This includes several versions of sqrt.

Also, I've added a new section to PS6, entitled "Finger Exercises". These are various short exercises related specifically to material we covered in lecture. Like drill problems, they will not be graded.

The name "Finger Exercises" was chosen to evoke images of music lessons, where you often have little exercises just to teach your fingers the notes. I may continue this for future lectures; we'll see.

--Prof. Wand

Thursday, February 19, 2009

Codewalks statistics

Here are some useful numbers from the codewalks' grades

-- Set 3

full grade:80,  avg grade:49.75,  median grade:46.5, max grade:64,  lowest grade:42

-- Set 4

full grade:80,  avg grade:52.25,  median grade:53.5,  max grade:66,  lowest grade:38

-- Set 5

full grade:82,  avg grade:53.5,  median grade:60.5,  max grade:81,  lowest grade:12

This info can provide a good indication of how well you are doing in this course.

And remember, we have half a semester ahead of us so nothing is lost or won yet!


Friday, February 13, 2009

Updated Problem Set 5

In response to student requests, I've revised the last question on problem set 5, so you no longer need to wrestle with the World teachpak. But of course now you'll be able to check more of it with check-expect.

--Prof. Wand

Wednesday, February 4, 2009

Change in Syllabus: Accumulators first

I've switched the order of Part V and Part VI of HtDP. We will be covering Part VI (accumulators) next Monday, 2/9, and Part V (generative recursion) at the next lecture, 2/23.

I've updated the syllabus accordingly.

Please read Part VI for next Monday.

--Prof. Wand

Tuesday, February 3, 2009

Office Hours on Wed 2/4

My office hours tomorrow, Wed 2/4, will be slightly delayed. They will start about 11:00am. Sorry for any inconvenience.

--Prof. Wand

Monday, February 2, 2009

Examples url

You can find the examples shown in class at the following svn repository url:

New pairs and new codewalks schedule

This is valid for problem set 4 and following problem sets until the next pairs appointment.

Thursday afternoon @ WVH 164

5:30 - 6:00 pair 08: Rohith Shivankumar - Jason Letourneau
6:00 - 6:30 pair 09: Denis KransnitskiyGeetha Rasamsetti 
6:30 - 7:00 pair 06: Lucas Peter Callado - Bansari Ghedia
7:00 - 7:30 pair 07: Chander Shivdasani - Richin Jain
7:30 - 8:00 pair 10: Wanli Cheng

Sunday, February 1, 2009

Drill Club

New time: Tuesdays at 6 @ WVH 164.

See you all there!!!!

Thursday, January 29, 2009

Codewalk reports

Every week, starting from today, I will upload a file with each student's code-walk detailed deduction points. You can find your codewalk reports for set 1 and 2 in the corresponding folders in your pair's repository.

Just as an indication of you performance so far, the average grade is 20/30 for set 1 and 42.5/60 for set 2.

Tuesday, January 27, 2009

Probably no office hours Wed 1/28

Given the impending snowstorm, I will probably not be in for office hours tomorrow, Wednesday 1/28. I hope that isn't a problem.

If I arrive later in the day, I will post my availability on the blog.

Otherwise, stop by on Thursday; I should be available from 10 to 12.

--Prof. Wand

Codewalks and Design Recipe

Advise on codewalks:

-- Make a real index card with the design recipe steps (not a piece of paper).
-- Copy the various strategies at the back of your card.
-- Copy the content of this page at the back of your card.
-- Structure your presentation around the content of your index card.
-- Make sure to answer all the questions on your index card in the order they appear on your card.
-- Add sufficient documentation to your code as a guide to your presentation (annotate your examples and tests, write the strategy comment, write concise purpose statements).
-- Bring with you your index card (I will ask for it).
-- Use it during the presentation if you get stuck.

And finally practice your talks with your partner before coming to the codewalks...

Drill Club

Drill Club has moved to Tuesdays at 6pm @ WVH164

Saturday, January 24, 2009

Now hear this: templates are now deliverable

On problem set 1, many of you seemed to be unclear about the use of design strategies and templates. So, effective with problem set 2, you will be required to specify both the design strategy and the template for each procedure.

Your template should be delivered in a form like that in the book. For example, if your function consumes a structure, then you should deliver a template like that in Section 6.5 of HtDP ("Designing Functions for Compound Data"). Of course, your template will be the one that goes along with your design strategy, not necessarily the compound data strategy.

Your template must match your stated design strategy, and your code must match your template.

We will be checking to make sure that your solutions meet this criterion.

Tuesday, January 13, 2009


The codewalks schedule for the first weeks of the course is as follows:

Thursday afternoon @ WVH 164

5:30 - 6:00 pair 3: Jason Letourneau - Denis Kransnitskiy
6:00 - 6:30 pair 1: Lucas Peter Callado - Rohith Shivankumar
6:30 - 7:00 pair 2: Chander Shivdasani - Bansari Ghedia
7:00 - 7:30 pair 4: Geetha Rasamsetti - Richin Jain

Each pair gets a half an hour slot. You should be prepared for a 15 minutes joint presentation of one of the problems from the week's homework assignment. We will pick one of the partners to start the presentation and then we will switch to the other one. We will choose the problem but we will not publish our decision. So you need to be prepared to present any problem from the assignment. After your presentation there will be a round of questions on your solution and feedback on your performance.

Advice1: Always follow the design recipe while coding and presenting.

Advice2: Practice your presentation with your partner.

Wednesday, January 7, 2009

Problem Set 1 is posted

Problem Set 1 is now out; you can follow the link from the main page.

Tuesday, January 6, 2009

Please get CCIS username

If you do not already have a CCS login, please get one NOW. You will need it for Thursday's lab.

You can get the form for a login by going to the hallway outside 310 WVH (the systems office) and following the directions carefully, including both front and back.

Last night's examples, compose-vertical

The examples from last night's lecture are now on the web site. Follow the link from the syllabus page.

You should look particularly at . The code we had last night was wrong: it composed the images in the wrong order-- something I couldn't tell because I had used bad names-- rect1 and rect2 instead of red-rect and green-rect. Had I used better names for the test data I would have seen immediately that the images were appearing in an order opposite from what I had intended. (Test everything! (and examine your tests closely!)).

I've also included a function compose-vertical-scene, which does the same thing for scenes. Look at the documentation for the World teachpack to learn about scenes. You'll need to do this for the problem set anyway.

--Prof. Wand