211 F '04
Ofc Hrs


Important Messages from the Instructors

Thursday, December 16th, 2004

Good Bye.

We have finished grading the final projects. The results were mostly positive and showed that you learned something this semester. Keep it up! If you are in desperate need of your final grade, contact John Clements (clements at ccs dot neu dot edu) or see him at this desk. Otherwise just wait for the goodies in the mail. If you would like to get your marked-up final project back, see Stevie.

This is the last message on the blog. So let me take the opportunity again to say that I enjoyed this semester very much. Good luck with your future work on and off campus, and don't forget the design recipe.

-- Matthias Felleisen

Monday, December 6th, 2004

How We Will Grade Your Final Project

The grading process for the final project will heavily rely on the design recipe and the programming guidelines ("one task, one function" and friends). To make this concrete, I have compiled a list of specific check points:

  1. Does the electronic version of your program compile, test, and run? We will allocate 20 points to this part alone.
  2. Does your program come with correct data definitions?
  3. Does your program come with correct contracts and reasonable purpose statements for all functions?
  4. Does your program come with a test suite for every function? (You may use small lambda functions w/o testing them.)
  5. Is each function organized according to the proper template? (You do not need to show templates, and you won't get better grades for showing templates.)
  6. Does your program use functions for each task? (Or is it one big lump of code?)
  7. Did you abstract common patterns or did you turn in the first draft?
You all know what correct means for data definition and contract. Even though both borrow some English words, they are rigorously defined notions and leave little space for error. For the formulation of data definitions and contracts, you may use Listof[...] but you must not use list by itself; this just doesn't exist.

Warning: You will get no points for creative extensions of the game or extra features. While such creativity is necessary to sell products, it is necessary for you to demonstrate that you have absorbed the principles of design so that your business can survive the first generation product.

Tuesday, November 30th, 2004

Getting Your Design Checked

On Thursday, December 2, 2004, you must see either your head TA (from your lab) or John Clements to get your design approved. Your design should consists of a DrScheme print-out that contains:

  1. your names
  2. your instructor's name/your head TA's name
  3. your project's title
  4. data definitions for all the data your program must process
  5. contracts and purpose statements for major functions, arranged in sections according to the class of the major argument
  6. optional but highly recommended: examples turned into tests
You need to obtain the signature on these sheets, retain them, and turn them in as an appendix with your final project. Not appending the signed design to your hand-in will result in a 30-point penalty.

The schedule for Thursday is as follows:

TimeHead TA
08:00-09:40Jeff Palm
09:50-11:30Rebecca Frankel
11:45-01:25Stevie Strickland
01:35-03:15Sam Tobin-Hochstadt
03:25-05:05Carl Eastlund
05:05-06:00John Clements
Go to your TA's desk and wait in line: first-come, first-serve. If you miss your head TA's time slot, see John Clements.

Monday, November 29th, 2004

Help for Final Project

Important: You will not receive any help from an instructor, a TA, or a tutor if you ignore the design recipe. When you aske for help, show them your data definitions, your "wish list" of functions with contracts and purpose statements, your examples, etc. Then show them where you are stuck. --- Just in case there are any doubts, we will use the design recipe to allocate points and for being able to run it. "But it worked when I ran it" will give you 0 points.

For this project, we do not allow collaboration between teams. You may only work with your partner and nobody else. We will use tools that discover non-obvious plagiarism to test for violations of this policy.

Monday, November 29th, 2004

Stevie is canceling this week's office hours. He will hold office hours on Monday 12/6/2004 from 3:00 to 5:00pm instead.

Monday, November 29th, 2004

The solutions to the two exams are now on-line: Exam 2a, Exam 2b. If you believe that you received an inappropriate for a problem on your second exam, please see the responsible grader first:

Problem 1, 2.1&2.2:Carl Eastlund
Problem 2 rest:Stevie Strickland
Problem 3:Matthias Felleisen
Problem 4:John Clements
Problem 5:Sam Tobin-Hochstadt
Problem 6:Rebecca Frankel
If you and the responsible grader can't agree, please see one of the instructors together.

Monday, November 22nd, 2004

The exam is graded, and the results are good. We will hand out the exam on Monday. The "complaint" period will start on Monday in a week. Instructions will appear on the blog.

Friday, November 19th, 2004

Problem sets: The course staff has discussed the final two homework sets and has decided to cancel problem set 12 and to finalize the last problem set. Please take a close look at the final description. You will see that we the project has two deadlines and that it is worth a substantial part of the grade.

Final grade: We have slightly changed the final grade policy. Instead of just eliminating a 0, we take the best possible score of all scenarios:

;; Grade = Posn
;; Interpretation: 
;; - the x field is the actual grade, 
;; - the y field is the maximal grade

;; homework-grade : Listof[Grade] -> Grade 
;; determine the value of the final homework grade: 
;; eliminate the homework that would damage the total most 
(define (homework-grade log)
  (local ((define all (map score (all-possibilities log))))
    (apply max all)))

;; TESTS: 
;; a perfect student:
(= (homework-grade 
     (list (make-posn 10 10) (make-posn 20 20) (make-posn 0 120))) 

;; a student who got better: 
(= (homework-grade
      (list (make-posn 0 10) (make-posn 20 20) (make-posn 120 120))) 

;; a weak student with a strong but not perfect final project:
(= (homework-grade
    (list (make-posn 0 10) (make-posn 10 30) (make-posn 110 120))) 
As you can see from this code, it is possible to improve your grade substantially between now and the end of the semester. The full code for this program is available.

Monday, November 15th, 2004

From the dean: for the top-ten degrees in demand this year, see CNN

Friday, November 12th, 2004

Contrary to rumors that are floating around, we will conduct labs next tuesday (11/16), we will teach something essential that every freshmen (not just in CS) must know, and we will run a quiz. The quiz will be on generative recursion.

Wednesday, November 10th, 2004

The second midterm is

  • open book
  • open notes (lecture, lab, homework)
  • no electronics
  • no loose-leaf papers
just like the first one.

Friday, November 5th, 2004

Here are the various stages of editing of the area function that we discussed today in lecture:

  1. area0.ss "This version of the program creates a sequence of rectangles that cover ..."
  2. area1.ss "This version of the program uses a loop for sum, an obvious improvement over ..."
  3. area2.ss "This version of the program places all those definitions into a LOCAL that ..."
  4. area3.ss "This version of the program eliminates the intermediate list of rectangles. ..."
  5. area4.ss "This version of the program in-lines the definition of sum. This eliminates ..."
  6. area5.ss "This version of the program in-lines the definition of rectangles-create. ..."
  7. area6.ss And this version goes to the market. No, it is the promised one-line version, but I would never write it this way and I would never give you credit for this.
Note the files are actually html files; to download, copy and paste.

Thursday, November 4th, 2004

Stevie writes: I will be moving my office hours from Wednesday 11/10 2-4 to Monday 11/8 2:30-4:30 (this change is for this coming week only!).

Wednesday, November 3rd, 2004

Since I forgot to hand out the Tech Forum fliers (again) and explain the event, I am posting a link here:

Tech Forum
The dean especially recommends the panels where you can find out a bit more about computer science, its direction, and an especially important topic.

Tuesday, November 2nd, 2004

I have replaced the HtDP problems from problem set 9 with problems that you can do based on the material we have covered so far. This will give us time to relax the schedule, and it eliminates a baldy covered topic from the homework.

Sunday, October 31st, 2004

Let me remind everyone of this sentence in the preface to problem set 8:

For full credit, use Scheme loops for the final definitions of these functions. Recall that you do not have to use loops for the first draft. Programming is like writing; editing and improving the essay is everything.
In case you don't read the newsgroup, we use the word "loop" to refer to the functions in figure 57 on page 313 of HtDP.

Thursday, October 28th, 2004

Tuesday, October 26th, 2004

Someone finally asked for a solution for the tree-to-path problem posted here last Thursday. So I uploaded it. Enjoy!

Monday, October 25th, 2004

I have revised the syllabus and the problem sets to reflect the delay in our schedule.

Friday, October 22nd, 2004

Please read the introduction to next week's lab before you come to lab. The lab is once again derived from a real-world scenario (cancer treatment), and the motivational background descrtipion is almost two pages long.

Friday, October 22nd, 2004

Since we have fallen behind the planned syllabus, problems 19.1.5 and 20.2.4 are not a part of Problem Set 7 anymore. You may simply ignore them. The due date of Monday 6pm stands.

Thursday, October 21st, 2004

The "find a path into a tree" program is now on-line (after class 2). Study it and try to finish the definition. We will replace the file with a solution tomorrow.

Thursday, October 21st, 2004


Wednesday, October 20th, 2004

Today's program for replacing emphasis in text with underline is now on-line. Study it in preparation for tomorrow's lecture.

Tuesday, October 19th, 2004

Today's quiz was intended as a wake-up call only. For some reason, my email message didn't communicate to the TAs clearly enough that they were not supposed to collect the quizzes at all but only had out a solution so that you can correct yours.

In case you had problems with today's quiz, remember some of my advice: polish your notes every day and look at them in preparation for the next meeting (this includes labs). If the polishing raises questions, bring them up at the beginning of the next meeting. Now think about the fact that today's quiz was straight from yesterday's lecture and whether the advice is useful.

Tuesday, October 19th, 2004

If you believe that you received an inappropriate for a problem on your first exam, please see the responsible grader first:

Problem 1:Sam Tobin-Hochstadt
Problem 2:Stevie Strickland
Problem 3:John Clements
Problem 4:Matthias Felleisen
Problem 5:Carl Eastland
Problem 6:Rebecca Frankel
If you have any other complaints about your homework, you should see one of the instructors directly.

The final grades in this course are assigned on an absolute scale; we will not curve the grades. The approximate scale is: A for 100%-85%; B for 85%-70%; C for 70%-60%; and D for 60%-50%.

Tuesday, October 12th, 2004

For your orientation, here is the solution and grading rubric for the quiz of week 5:

Problem: Your manager just came home from a consulting visit with a client. They insist that all their lists of numbers are non-empty:

 ;; A NLON is one of: 
 ;; -- (cons Number empty)
 ;; -- (cons Number NLON)

Your manager promised that you would write a function that consumes a NLON and produces the sum of all numbers on the list.

;; sum : NLON -> Number 
;; compute the sum of all numbers on a-nlon
(define (sum a-nlon) 


(define (sum a-nlon) 
    [(empty? (rest a-nlon)) (first a-nlon)]
    [else (+ (first a-nlon) (sum (rest a-nlon)))]))

Grading: If the students get two out of three points:

  • two cond lines and correct conditions: 1 point
  • the three selector expressions: 1 point
  • the recursion in the third line: 1 point

Tuesday, October 12th, 2004

We just received the following email:

  From: Andrew ...
  Date: October 11, 2004 9:29:11 PM EDT
  To: clements@ccs.neu.edu
  Subject: problem 13.0.8

  In my book the problem that is 13.0.8 is numbered
  13.1.6.  I don't know if this is due to the book
  edition or something, but I checked the online
  version of the book and it is the same problem.
  I just thought I would send you an e-mail to make
  sure you were aware of it.

Explanation: The book is now its fourth printing. Before each printing, the publisher allows us to fix typos and small problems. For the second printing, I (Matthias) switched the numbering of exercises in this third intermezzo. Some of you have old copies of the book and therefore find exercise 13.0.8 as a different exercise. For a list of typo corrections in old printings, see the book's web page.

Friday, October 8th, 2004

Office Hours: Sam Tobin-Hochstadt will not have office hours on Friday, October 8th. Instead, he will be available on Tuesday, October 12th [Ed. Note: changed from Monday!] from 4:30 until 6:30 PM.

Friday, October 8th, 2004

Mike Burns and Carl Eastlund have swapped office hours this week. This means that Mike Burns will hold office hours (in room 308) from 11:00 until 1:00 pm today, October 8, and that Carl Eastlund will hold office hours (in room 102) from 4 PM to 6 PM on Sunday, October 10.

Friday, October 8th, 2004

When you signed the contract for this class, you signed the following sentences:

You are free to collaborate at will with others on the problem sets. If you do so, you must acknowledge all collaborators on your cover page.
Please keep this in mind as you turn in your homework. Also, if you need a lot of help from others in class, you're much better off getting help from trained staff. That way you know the answer is reliable and you're probably getting a better preparation for the exam, which really matters.

Thursday, October 7th, 2004

The exam is an open-book, open-notes exam. You may also use your notes from lecture and from lab, as long as they are in a notebook. You may not loose pages. Finally, you may listen to music during the exam, as long as you don't disturb your neighbors. Do no use any other electronic gadgets.

You should try to complete your fifth problem set by Monday evening, as if it were due on the usual day and at the usual time. It will help you prepare for the exam, and it leaves you some time to seek additional help.

Tuesday, October 5th, 2004

Until further notice, turn in your problem sets in paper form with a cover page (sample) at West Village H 330 (aka WVH 330) before Monday 6:00pm.

Note that some assignments are due on Wednesdays. In that case, read the above and replace Monday with Wednesday.

For the projects at the end of the semester, we will set up some means of turning in the projects electronically. It is therefore imperative that you finish and run all programs in DrScheme, regardless of whether we can check this out or not.

Tuesday, October 5th, 2004

For your orientation, I have posted the solution and grading rubric for the problem set of week 4. Study it carefully so you understand how we follow the design recipe; what we expect; and how we grade. The exam will look just like the homeworks, and we will grade it just like a homewor.

Saturday, October 2nd, 2004

You may turn in problem set 4 in two ways:

  1. as a stapled set of pages in front of West Village H 330 (aka WVH 330); or
  2. via the homework server.
In either case, the submission is due before Monday (04 October) 6:00pm. Starting next week all submissions will go through the server.

If you use the server, you may earn up to six points of extra credit (on top of 36), if we can run your program and the reasonable test cases produce true.

The server will be open for business as of Sunday October 3, noon.

Friday, October 1st, 2004

Quiz: We, the instructors, have decided to ignore the quiz from last Tuesday. Recall that this implies a "no exceptions" stand from here on out to the end of the semester. Study!

Office Hours: Sam Tobin-Hochstadt has moved his office hours from 1-3pm to 2-4pm. Laura Huber has also moved her office hours by 20 minutes.

Thursday, September 30th, 2004

Please study how we developed the program go (for green-is-out). While it is important to understand the program and even how it works (step through some small examples!), it is even more important to understand how we got from a blank screen to this program.

Wednesday, September 29th, 2004

For your orientation, here is the solution and grading rubric for the quiz of week 3:

Problem: Someone introduced a new class of structures as follows:

  (define-struct author (first last yob yod))
  (define-struct book (title author publisher year))

  ;; An Author is: 
  ;;  (make-author String String PosIntegerNumber FON)

  ;; A Book is: 
  ;;  (make-book String Author String PosIntegerNumber)

  ;; A FON is one of: 
  ;;  -- false 
  ;;  -- PosIntegerNumber
Make up an example for the class of Books.


 "HtDP" (make-author "M" "F" 1873 false) "Press" 2001)

Grading: If the students get three out of five right, give a 1, otherwise 0:

  • use make-book and make-author
  • use false or positive integer in make-author position 4
  • place an instance of author in slot 2 of make-book
  • strings in positions 1 and 3 of make-book
  • a positive integer in position 4

Tuesday, September 28th, 2004

CCS Unix Accounts Please obtain a CCS Unix account by the end of the week. Read Communication to find out where and how you get such an account. Starting next week, we will use newsgroups

Study Groups We encourage you to form study groups. The ideal study group consists of several pair programming partnerships. These groups should meet briefly each week. You may discuss problems with the homework assignments in these study groups though don't exchange solutions. Ask each other the relevant questions for each step in the design recipe. Also you should use these study groups to prepare for the upcoming exam, but keep in mind that you must be able to solve all homework problems on your own.

Sunday, September 26th, 2004

Several clarifications on Assignment 3:

  • 6.3.1: This problem asks you to draw boxes. You may do these as drawings on paper or as "ascii art" in the DrScheme definitions window. Either is acceptable.
  • Additional Problem 1: The final step is to "modify tick." Since the data definition now tracks seconds, the tick function should advance the clock one second at a time, rather than one minute at a time.
  • Additional Problem 2: you may assume that the bird flies horizontally at the same speed the rock falls. That is, the bird flies at 3 pixels per tick.

Friday, September 24th, 2004

Turn in problem set 3 as a stapled set of pages in front of West Village H 330 (aka WVH 330) before Monday (20 September) 6:00pm.

As for problem set 3, there will be five labeled boxes near the door of WVH 330, one per lab. The labels will specify the time of the labs. You must place your homework in the box for the lab that you attend.

While the web server is now in shape to submit homeworks electronically, we want all of you to experience the submission server during lab before you entrust it with your valuable solution to a problem set.

Friday, September 24th, 2004

A few notes about partners & labs:

You must turn in your homework with your partner. We will not accept homeworks submitted by one person, unless an instructor has explicitly agreed to it. You must work on your homework in pairs. Please see the contract that you signed for more details.

You must go to the same lab as your partner. If this is impossible, you must arrange a swap of partners.

Each week's lab includes a quiz. A zero on this quiz means a zero for the week's homework. (Again, this is covered in the contract that you signed.) This means that if you don't go to the lab, you won't get credit for the homework.

Friday, September 24th, 2004

Homework 1 is graded and available for pickup. The assignments are outside WVH 330, sorted by last name.

Friday, September 17th, 2004

Turn in problem set 2 as a stapled set of pages in front of West Village H 330 (aka WVH 330) before Monday (20 September) 6:00pm.

There will be five labeled boxes near the door of WVH 330, one per lab. The labels will specify the time of the labs. You must place your homework in the box for the lab that you attend.

Thursday, September 16th, 2004

Problem set 2, additional problem 3 is difficult at this stage of the course. We have therefore made this problem optional.

Hint: If you want to solve it, you must know that there are predicates such as boolean? and symbol? and char?, which recognize whether a value is a boolean, a symbol, or a char, respectively:

> (symbol? 10)
> (symbol? 'word)

Monday, September 13th, 2004

For users of the ccs UNIX systems, DrScheme v208p1 is available at


... or you can just add /proj/clements/csu211-f04/plt/bin/ to your PATH.

Friday, September 10th, 2004

For those of you downloading & installing DrScheme yourselves:

Don't forget to install the patch, available on the download page.

Friday, September 10th, 2004

Don't be caught unaware: the first homework is due on Monday, September 13th. You have three days to get it done.

Friday, September 10th, 2004

You may have noticed that the syllabus has been updated. Reload the page in your browser, if you have visited it before.

From the book store:

Professor Clements,

      I apologize for our error with your book order.
I have ordered 140 additional copies of "How to Design
Programs" by Felleisen.  The books should be available
in the store by Monday, September 13th.  I have asked
the publisher to try to ship the books today, and ship
overnight to arrive Friday.  If they do not ship until
tomorrow, we will then receive them Monday.

      Again, I am very sorry for any inconvenience to
you and your students.  If you have any questions,
please email or call me at X2286.

Thank you,
Gretchen Suarez

That is, by Monday you should be able to buy them in the bookstore, if you so desire.

Friday, September 10th, 2004

From one of my team members:

  From: 	  mflatt@cs.utah.edu
  Subject: [plt-edu] One more down time this evening
  Date: 	September 8, 2004 10:53:30 AM EDT
  To: 	  plt-edu@list.cs.brown.edu

The network-hardware problems near www.plt-scheme.org 
and www.htdp.org have been fixed.

There will be one more down time this evening, however, 
due to a scheduled power outage: 5:00 PM to 10:00 PM MDT 
Wednesday, September 8 (this evening).

No further outages are expected.

If you need to download software during the outage, 
you should still be able to reach
which is a different machine/network/building/timezone.

Friday, August 6th, 2004

Welcome to the 211 Blog site. The instructors will post important messages here, concerning lectures, labs, homework assignments, exams, and so on. Make a habit of reading the blog at least once a day.

last updated on Thu Dec 16 14:17:30 EST 2004generated with PLT Scheme