| 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:
- Does the electronic version of your program compile, test, and run? We
will allocate 20 points to this part alone.
- Does your program come with correct data definitions?
- Does your program come with correct contracts and reasonable purpose
statements for all functions?
- Does your program come with a test suite for every function? (You may
use small lambda functions w/o testing them.)
- 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.)
- Does your program use functions for each task? (Or is it one big lump
of code?)
- 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:
- your names
- your instructor's name/your head TA's name
- your project's title
- data definitions for all the data your program must process
- contracts and purpose statements for major functions, arranged in
sections according to the class of the major argument
- 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:
| Time | Head TA |
| 08:00-09:40 | Jeff Palm |
| 09:50-11:30 | Rebecca Frankel |
| 11:45-01:25 | Stevie Strickland |
| 01:35-03:15 | Sam Tobin-Hochstadt |
| 03:25-05:05 | Carl Eastlund |
| 05:05-06:00 | John 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)))
35)
;; a student who got better:
(= (homework-grade
(list (make-posn 0 10) (make-posn 20 20) (make-posn 120 120)))
35)
;; 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)))
28)
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:
- area0.ss "This version of the program
creates a sequence of rectangles that cover ..."
- area1.ss "This version of the program
uses a loop for sum, an obvious improvement over ..."
- area2.ss "This version of the program
places all those definitions into a LOCAL that ..."
- area3.ss "This version of the program
eliminates the intermediate list of rectangles. ..."
- area4.ss "This version of the program
in-lines the definition of sum. This eliminates ..."
- area5.ss "This version of the program
in-lines the definition of rectangles-create. ..."
- 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:
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
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
Thursday, October 21st, 2004
Wednesday, October 20th, 2004
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)
Solution:
(define (sum a-nlon)
(cond
[(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:
- as a stapled set of pages in front of West Village H
330 (aka WVH 330); or
- 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.
Solution:
(make-book
"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)
false
> (symbol? 'word)
true
Monday, September 13th, 2004
For users of the ccs UNIX systems, DrScheme v208p1 is available at
/proj/clements/csu211-f04/plt/bin/drscheme
... 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
http://download.plt-scheme.org
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.
|