<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>CS2500 Blog</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/www/#blog</link>
    <description>Course blog for Fall 2010 edition of CS2500</description>
    <language>en-us</language>
    <copyright>The content in this document is made available under the
      terms of an Attribution/Share Alike Creative Commons license
      (http://creativecommons.org/licenses/by-sa/1.0/)</copyright>
    <webMaster>tov@ccs</webMaster>
    <lastBuildDate>Tue, 04 May 2010 13:21:31 -0400</lastBuildDate>
    <generator>A tiny shell script</generator>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <item>
    <title>The End</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Tue04May20101321260400</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Tue04May20101321260400</guid>
    <pubDate>Tue, 04 May 2010 13:21:26 -0400</pubDate>
    <description>
&lt;div class="p"&gt;
We&amp;#8217;re done!  Thanks for a great semester.
&lt;/div&gt;
&lt;div class="p"&gt;
I&amp;#8217;m supposed to once again encourage you to complete TRACE online
course evaluation surveys.
They&amp;#8217;ve extended the deadline.  You can get
to them from &lt;a href="http://myneu.neu.edu"&gt;myNEU&lt;/a&gt;.
Don&amp;#8217;t forget to fill out the survey for the
lab course (CS2501) and your TAs Stevie and Vincent.
&lt;/div&gt;
&lt;div class="p"&gt;
Enjoy your summer and keep programming.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Don&#8217;t Forget Your Late Days</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Mon19Apr20101915230400</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Mon19Apr20101915230400</guid>
    <pubDate>Mon, 19 Apr 2010 19:15:23 -0400</pubDate>
    <description>
&lt;div class="p"&gt;
If you have late days remaining, you can certainly use them on Problem
Set 12&amp;#8212;just let Stevie know before it&amp;#8217;s due.  As usual, you can use a
maximum of two, so no games will be accepted after 11:59 PM on Thursday.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>TRACE Surveys</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Fri16Apr20101254340400</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Fri16Apr20101254340400</guid>
    <pubDate>Fri, 16 Apr 2010 12:54:34 -0400</pubDate>
    <description>
&lt;div class="p"&gt;
I&amp;#8217;m supposed to encourage you to complete TRACE online course evaluation
surveys.  These are different from the surveys you did yesterday in
class.  The survey will be open until May 2 at 11 PM.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Updated Lecture Notes</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Thu15Apr20102039490400</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Thu15Apr20102039490400</guid>
    <pubDate>Thu, 15 Apr 2010 20:39:49 -0400</pubDate>
    <description>
&lt;div class="p"&gt;
&lt;a
href="http://www.ccs.neu.edu/course/cs2500/lec/lec20100414.ss"&gt;Wednesday&amp;#8217;s
and today&amp;#8217;s lecture notes&lt;/a&gt;, combined.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Lecture Notes</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Wed14Apr20102103460400</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Wed14Apr20102103460400</guid>
    <pubDate>Wed, 14 Apr 2010 21:03:46 -0400</pubDate>
    <description>
&lt;div class="p"&gt;
I&amp;#8217;ve posted lecture notes for
&lt;a
href="http://www.ccs.neu.edu/course/cs2500/lec/lec20100412.ss"&gt;Monday&lt;/a&gt;
and
&lt;a
href="http://www.ccs.neu.edu/course/cs2500/lec/lec20100414.ss"&gt;Wednesday&lt;/a&gt;.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Proposals Now Due Tuesday</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Sat10Apr20101402310400</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Sat10Apr20101402310400</guid>
    <pubDate>Sat, 10 Apr 2010 14:02:31 -0400</pubDate>
    <description>
&lt;div class="p"&gt;
I&amp;#8217;ve received only one game proposal thus far, and this has me worried.
Proposals are now due this Tuesday, 4/13, at 11:59 PM.  Don&amp;#8217;t try to
submit them using the submission server&amp;#8212;please email them to me.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Partner Reminder and Lecture Notes</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Fri09Apr20101330230400</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Fri09Apr20101330230400</guid>
    <pubDate>Fri, 09 Apr 2010 13:30:23 -0400</pubDate>
    <description>
&lt;div class="p"&gt;
Several partner requests have now been fulfilled.  If you still need a
partner, please email me ASAP.
&lt;/div&gt;
&lt;div class="p"&gt;
I&amp;#8217;ve posted lecture notes for
&lt;a
href="http://www.ccs.neu.edu/course/cs2500/lec/lec20100407.ss"&gt;Wednesday
(optional lecture)&lt;/a&gt;
and
&lt;a
href="http://www.ccs.neu.edu/course/cs2500/lec/lec20100408.ss"&gt;Thursday&lt;/a&gt;.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Lab Quiz Amnesty</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Thu08Apr20100242450400</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Thu08Apr20100242450400</guid>
    <pubDate>Thu, 08 Apr 2010 02:42:45 -0400</pubDate>
    <description>
&lt;div class="p"&gt;
When you get back your exam, you may notice a list of lab numbers at the
bottom.  If you have such a list, these are the lab quizzes that you
missed or failed over the course of the semester.  Our rule is that you
can only receive credit for your homework in weeks where you pass or
make up your lab quiz.  Therefore, if you have missing or failing quiz
grades, this could severely impact your grade.
&lt;/div&gt;
&lt;div class="p"&gt;
Since we want you to get credit for the work that you did, we are
announcing a lab quiz amnesty.  For one week only, starting at Vincent&amp;#8217;s
office hours on Friday and continuing through Jesse&amp;#8217;s on Monday and
Stevie&amp;#8217;s on Tuesday, you may make up &lt;em&gt;any quizzes&lt;/em&gt; that you have
missed.
&lt;/div&gt;
&lt;div class="p"&gt;
Some guidelines:
&lt;ul&gt;
  &lt;li&gt;Show up at least half an hour before the end of office hours if
    you want to be sure we&amp;#8217;ll have time to give you a quiz.&lt;/li&gt;
  &lt;li&gt;Don&amp;#8217;t expect this to be easy.  We try to help you quite a bit
    during regular quiz make-ups, but for this we&amp;#8217;ll be a little tougher.&lt;/li&gt;
  &lt;li&gt;If you can&amp;#8217;t make any of the three available office hour periods
    over the next week, please email to make an appointment.
&lt;/ul&gt;
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>No Lab Tomorrow/Today, but Yes Lecture</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Wed07Apr20102207530400</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Wed07Apr20102207530400</guid>
    <pubDate>Wed, 07 Apr 2010 22:07:53 -0400</pubDate>
    <description>
&lt;div class="p"&gt;
Don&amp;#8217;t forget that lab is canceled tomorrow.  We won&amp;#8217;t be there.
We do still have lecture, though.  Come get your exams and learn about
accumulators.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Problem Set 12 Is Up</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Wed07Apr20102024120400</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Wed07Apr20102024120400</guid>
    <pubDate>Wed, 07 Apr 2010 20:24:12 -0400</pubDate>
    <description>
&lt;div class="p"&gt;
&lt;a
href="http://www.ccs.neu.edu/course/cs2500/assigns/12.html"&gt;Problem Set
12&lt;/a&gt;.
&lt;/div&gt;
&lt;div class="p"&gt;
Start &lt;strong&gt;now&lt;/strong&gt;, because you need to have your proposal
approved before you start coding.
If you need a partner, please email ASAP.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Review Session Notes</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Wed07Apr20101203510400</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Wed07Apr20101203510400</guid>
    <pubDate>Wed, 07 Apr 2010 12:03:51 -0400</pubDate>
    <description>
&lt;div class="p"&gt;
Several people have asked for these
&lt;a
href="http://www.ccs.neu.edu/course/cs2500/lec/exam2-s.ss"&gt;notes
from the review session&lt;/a&gt;.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Fractals in HTDP</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Sun04Apr20100046210400</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Sun04Apr20100046210400</guid>
    <pubDate>Sun, 04 Apr 2010 00:46:21 -0400</pubDate>
    <description>
&lt;div class="p"&gt;
Several of you have asked me questions about the fractal code in
&lt;a
href="http://htdp.org/2003-09-26/Book/curriculum-Z-H-34.html#node_sec_27.1"&gt;&amp;sect;27.1
of HTDP&lt;/a&gt; and how it might relate to your homework.  The idea of
generative recursion is the same, but the code in the book uses the
&lt;code&gt;draw.ss&lt;/code&gt; teachpack, which works very differently from the
&lt;code&gt;image.ss&lt;/code&gt; and &lt;code&gt;universe.ss&lt;/code&gt; teachpacks that we
use now.
&lt;/div&gt;
&lt;div class="p"&gt;
In particular, the &lt;code&gt;draw.ss&lt;/code&gt; teachpack relies on &lt;em&gt;side
effects&lt;/em&gt;.  A side effect is when calling a function, in addition to
returning some answer, causes something to &lt;em&gt;happen&lt;/em&gt;.  In this
particular teachpack, for example, there is a &lt;code&gt;line&lt;/code&gt; function
that always returns &lt;code&gt;true&lt;/code&gt;, but also causes a line to appear
on the screen.  Everything we do using the &lt;code&gt;image.ss&lt;/code&gt;
teachpack is about returning images, not about causing things to happen
on the side.  (Even when you use &lt;code&gt;big-bang&lt;/code&gt;, all the
functions you write are about computing values, not doing things.
Things happen, but that&amp;#8217;s something that &lt;code&gt;big-bang&lt;/code&gt; takes
care of for you.)
&lt;/div&gt;
&lt;div class="p"&gt;
Rather than using side effects, you should
be writing a function that &lt;strong&gt;returns&lt;/strong&gt; a scene.  You
can make this work if you think carefully about the four parts in the
recipe for generative recursion:
&lt;/div&gt;
&lt;div class="p"&gt;
&lt;ol&gt;
&lt;li&gt;What is a trivial problem?  Is there some size
fractal that you can produce right away, without recursion?  In
particular, is there some size under which smaller sizes could not show
additional detail?
&lt;/li&gt;
&lt;li&gt;How do you produce this trivial fractal?
&lt;/li&gt;
&lt;li&gt;For a larger fractal, how can you generate a simpler (smaller)
subproblem, which you can then solve recursively?
&lt;/li&gt;
&lt;li&gt;How can you construct the fractal you want from the solution to the
smaller problem?
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div class="p"&gt;
Since it might help, let&amp;#8217;s take
a look at the function &lt;code&gt;sierpinski&lt;/code&gt; from the book:
&lt;/div&gt;
&lt;div class="p"&gt;
&lt;pre class="code"&gt;
;; sierpinski : posn posn posn  -&gt;  true
;; to draw a Sierpinski triangle down at a, b, and c,
;; assuming it is large enough
(define (sierpinski a b c)
  (cond
    [(too-small? a b c) true]
    [else 
     (local [(define a-b (mid-point a b))
             (define b-c (mid-point b c))
             (define c-a (mid-point a c))]
       (and
         (draw-triangle a b c)
         (sierpinski a a-b c-a)
         (sierpinski b a-b b-c)
         (sierpinski c c-a b-c)))]))
&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="p"&gt;
You can see in the first cond clause, it checks for the trivial case
&lt;code&gt;(too-small? a b c)&lt;/code&gt;, and the trivial solution is to draw
nothing else to the screen, so it returns &lt;code&gt;true&lt;/code&gt;.  Otherwise,
it uses &lt;code&gt;and&lt;/code&gt; to &lt;em&gt;sequence&lt;/em&gt; four side-effecting
operations:  First it draws a triangle at the requested points on the
screen, and then it recurs three times to draw the subfractals
(subproblems) to the screen.  This is following the recipe for
generative recursion, but in terms of drawing, it is quite different
from how we do things.
&lt;/div&gt;
&lt;div class="p"&gt;
For comparison, here&amp;#8217;s a version that&amp;#8217;s closer to how we do it in this
course.  Notice the changes to the contract and purpose:
&lt;/div&gt;
&lt;div class="p"&gt;
&lt;pre class="code"&gt;
;; sierpinski-helper : Posn Posn Posn Scene -&gt; Scene
;; To add a Sierpinski triangle at points a, b, and c
;; to the given scene, assuming it is large enough to see
(define (sierpinski a b c scene)
  (cond
    [(too-small? a b c) scene]
    [else 
     (local [(define a-b (mid-point a b))
             (define b-c (mid-point b c))
             (define c-a (mid-point a c))]
       (sierpinski c c-a b-c
        (sierpinski b a-b b-c
         (sierpinski a a-b c-a
          (add-triangle a b c scene)))))]))
&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="p"&gt;
If you&amp;#8217;d like to make this work, you&amp;#8217;ll need to write
&lt;code&gt;too-small? : Posn Posn Posn -&gt; Boolean&lt;/code&gt; and
&lt;code&gt;add-triangle : Posn Posn Posn Scene -&gt; Scene&lt;/code&gt;.
&lt;/div&gt;
&lt;div class="p"&gt;
Note that if you want to use a similar strategy for
&lt;code&gt;sierpinski-carpet&lt;/code&gt;, the recursive function had to be a
helper to a &lt;code&gt;Natural -&gt; Scene&lt;/code&gt; function that creates the
empty scene and calls the helper to add the carpet to it.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Graph Coloring Lecture Notes</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Sat03Apr20102046120400</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Sat03Apr20102046120400</guid>
    <pubDate>Sat, 03 Apr 2010 20:46:12 -0400</pubDate>
    <description>
&lt;div class="p"&gt;
&lt;a
href="http://www.ccs.neu.edu/course/cs2500/lec/lec20100401.ss"&gt;Lecture
notes&lt;/a&gt; from Thursday.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Exam Review Session</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Fri02Apr20101444210400</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Fri02Apr20101444210400</guid>
    <pubDate>Fri, 02 Apr 2010 14:44:21 -0400</pubDate>
    <description>
&lt;div class="p"&gt;
The review session will be held on Monday from 6 to 8 PM in 272 West
Village F.  I haven&amp;#8217;t been there, but I expect it&amp;#8217;s just upstairs from
our usual lecture room.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Topological Sort Lecture Notes</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Wed31Mar20102333220400</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Wed31Mar20102333220400</guid>
    <pubDate>Wed, 31 Mar 2010 23:33:22 -0400</pubDate>
    <description>
&lt;div class="p"&gt;
&lt;a
href="http://www.ccs.neu.edu/course/cs2500/lec/lec20100331.ss"&gt;Lecture
notes&lt;/a&gt; from today.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Practice Exam</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Wed31Mar20101627110400</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Wed31Mar20101627110400</guid>
    <pubDate>Wed, 31 Mar 2010 16:27:11 -0400</pubDate>
    <description>
&lt;div class="p"&gt;
Here&amp;#8217;s a &lt;a
href="http://www.ccs.neu.edu/course/cs2500/exam2-s.pdf"&gt;practice
exam&lt;/a&gt; for next week&amp;#8217;s midterm.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Even More Lecture Notes</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Tue30Mar20101237410400</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Tue30Mar20101237410400</guid>
    <pubDate>Tue, 30 Mar 2010 12:37:41 -0400</pubDate>
    <description>
&lt;div class="p"&gt;
Lecture notes from
&lt;a
href="http://www.ccs.neu.edu/course/cs2500/lec/lec20100324.ss"&gt;Wednesday
2/14&lt;/a&gt; and
&lt;a href="http://www.ccs.neu.edu/course/cs2500/lec/lec20100329.ss"&gt;Monday
3/29&lt;/a&gt;.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Lecture Notes</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Thu18Mar20101019070100</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Thu18Mar20101019070100</guid>
    <pubDate>Thu, 18 Mar 2010 10:19:07 +0100</pubDate>
    <description>
&lt;div class="p"&gt;
Lecture notes from
&lt;a
href="http://www.ccs.neu.edu/course/cs2500/lec/lec20100315.ss"&gt;Monday&lt;/a&gt;
and
&lt;a
href="http://www.ccs.neu.edu/course/cs2500/lec/lec20100317.ss"&gt;Wednesday&lt;/a&gt;.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Instructor Office Hours Schedule</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Sat13Mar20100748550500</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Sat13Mar20100748550500</guid>
    <pubDate>Sat, 13 Mar 2010 07:48:55 -0500</pubDate>
    <description>
&lt;div class="p"&gt;
Because I&amp;#8217;ll be out of town, I won&amp;#8217;t have my usual office hours on 3/15,
3/22, and probably 3/29.  I will hold office hours on Monday, 3/15, from
11:30 AM to 1:30 PM, and again on Tuesday, 3/30, from 2 to 4 PM, both in my
office (308 WVH).  I&amp;#8217;ll resume the usual schedule on Monday, 4/5.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Lecture Notes and the Make-Up Quiz</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Fri12Mar20100957240500</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Fri12Mar20100957240500</guid>
    <pubDate>Fri, 12 Mar 2010 09:57:24 -0500</pubDate>
    <description>
&lt;div class="p"&gt;
Here is the
&lt;a href="http://www.ccs.neu.edu/course/cs2500/lec/lec20100310.ss"&gt;code
from Wednesday and Thursday&lt;/a&gt;.
&lt;/div&gt;
&lt;div class="p"&gt;
I&amp;#8217;ve been asked to post the make-up quiz from class yesterday, so here
it is.  (The solution is in white text.
To see it, either highlight it or copy it and paste in another program.)
&lt;/div&gt;
&lt;div class="p"&gt;
&lt;blockquote&gt;
&lt;pre class="code"&gt;
;; A QTree is one of:
;; &amp;#8211; "Q"
;; &amp;#8211; (make-single QTree)
;; &amp;#8211; (make-double QTree QTree)
;; &amp;#8211; (make-triple QTree QTree QTree)
(define-struct single (only))
(define-struct double (this that))
(define-struct triple (left middle right))
 
;; Template for QTree:
&lt;span style="color: white"&gt;(define (process-qtree qt)
  (cond
    [(string? qt)   ...]
    [(single? qt)   ... (process-qtree (single-only qt)) ...]
    [(double? qt)   ... (process-qtree (double-this qt)) ...
                    ... (process-qtree (double-that qt)) ...]
    [else           ... (process-qtree (triple-left qt)) ...
                    ... (process-qtree (triple-middle qt)) ...
                    ... (process-qtree (triple-right qt)) ...]))&lt;/span&gt;
 
;; q-count : QTree -&gt; Natural
;; To count the number of "Q"s in a QTree.
(define (q-count qt)
&lt;span style="color: white"&gt;  (cond
    [(string? qt)   1]
    [(single? qt)   (q-count (single-only qt))]
    [(double? qt)   (+ (q-count (double-this qt))
                       (q-count (double-that qt)))]
    [else           (+ (q-count (triple-left qt))
                       (q-count (triple-middle qt))
                       (q-count (triple-right qt)))])&lt;/span&gt;)
 
;; Examples/Tests:
(check-expect (q-count "Q") 1)
(check-expect (q-count (make-double (make-single "Q") "Q"))
              2)
(check-expect (q-count (make-triple
                        (make-double "Q" "Q")
                        (make-single (make-single "Q"))
                        "Q"))
              4)
&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Monday&#8217;s Lecture Notes</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Wed10Mar20102007310500</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Wed10Mar20102007310500</guid>
    <pubDate>Wed, 10 Mar 2010 20:07:31 -0500</pubDate>
    <description>
&lt;div class="p"&gt;
Here is the
&lt;a href="http://www.ccs.neu.edu/course/cs2500/lec/lec20100308.ss"&gt;code
from Monday&lt;/a&gt;.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Frequent Design Doc Advice</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Tue09Mar20101000180500</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Tue09Mar20101000180500</guid>
    <pubDate>Tue, 09 Mar 2010 10:00:18 -0500</pubDate>
    <description>
&lt;div class="p"&gt;
Having written some of the same comments several times in response to
the design documents turned in so far, I figured I could save us all
some trouble by sharing them with the rest of you now, while you&amp;#8217;re
still working on yours.
&lt;/div&gt;
&lt;div class="p"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
Storing a velocity in your representation of an enemy (or shot) implies
that the velocity will be different for different enemies (or shots) or
at different times.  Above, you included those velocities in your list
of constants, but you&amp;#8217;re also including velocities in your data
representation.  Which is it?  Storing the same constant everywhere for
some value that doesn&amp;#8217;t change just makes your code more complex.
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Your list of functions is a good start, but you may want to think this
through a bit more before you start coding.&lt;/p&gt;
&lt;p&gt;Most of your contracts just
take worlds to worlds, but I&amp;#8217;m certain you&amp;#8217;ll actually have many
functions that deal with only part of the world.&lt;/p&gt;
&lt;p&gt;Might you want some
rendering helpers or helpers for generating new enemies?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
Hint: Use &lt;code&gt;place-image&lt;/code&gt; to add each enemy (and shot) to the
scene.
Avoid &lt;code&gt;overlay/xy&lt;/code&gt;.  Trying to assemble several different scene
elements by overlaying them before adding them to the world will just
cause you trouble.
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
You aren&amp;#8217;t sure yet how you&amp;#8217;ll do collision detection.
You may benefit from the concept of a bounding box.  The displayed
shape of a thing might be complicated, but as long as it&amp;#8217;s pretty
small (enemies and bullets both count), for collision detection it&amp;#8217;s
often best to treat it as a rectangle.  It&amp;#8217;s very easy to tell when
two rectangles overlap.  If you have two rectangles centered at
(&lt;em&gt;x&lt;/em&gt;&lt;sub&gt;1&lt;/sub&gt;,&amp;nbsp;&lt;em&gt;y&lt;/em&gt;&lt;sub&gt;1&lt;/sub&gt;) and
(&lt;em&gt;x&lt;/em&gt;&lt;sub&gt;2&lt;/sub&gt;,&amp;nbsp;&lt;em&gt;y&lt;/em&gt;&lt;sub&gt;2&lt;/sub&gt;),
with dimensions &lt;em&gt;w&lt;/em&gt;&lt;sub&gt;1&lt;/sub&gt; by &lt;em&gt;h&lt;/em&gt;&lt;sub&gt;1&lt;/sub&gt;
and &lt;em&gt;w&lt;/em&gt;&lt;sub&gt;2&lt;/sub&gt; by &lt;em&gt;h&lt;/em&gt;&lt;sub&gt;2&lt;/sub&gt;, then they
overlap when &lt;em&gt;x&lt;/em&gt;&lt;sub&gt;1&lt;/sub&gt; and &lt;em&gt;x&lt;/em&gt;&lt;sub&gt;2&lt;/sub&gt;
are no more than
(&lt;em&gt;w&lt;/em&gt;&lt;sub&gt;1&lt;/sub&gt;&amp;nbsp;+&amp;nbsp;&lt;em&gt;w&lt;/em&gt;&lt;sub&gt;2&lt;/sub&gt;)&amp;nbsp;/&amp;nbsp;2
apart &lt;strong&gt;and&lt;/strong&gt; &lt;em&gt;y&lt;/em&gt;&lt;sub&gt;1&lt;/sub&gt; and
&lt;em&gt;y&lt;/em&gt;&lt;sub&gt;2&lt;/sub&gt; are no more than
(&lt;em&gt;h&lt;/em&gt;&lt;sub&gt;1&lt;/sub&gt;&amp;nbsp;+&amp;nbsp;&lt;em&gt;h&lt;/em&gt;&lt;sub&gt;2&lt;/sub&gt;)&amp;nbsp;/&amp;nbsp;2
apart.
&lt;/p&gt;
&lt;p&gt;
Circles and points are good, too.  It&amp;#8217;s very easy to tell when a
point intersects a circle, a circle intersects a circle, or a point
intersects a rectangle.
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
Be careful not to write helpers that you may turn out not to need,
or to need with a substantially different interface.
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
Random enemy generation is hard; I found it to be the hardest part.
I&amp;#8217;d recommend doing it near the end.  Before that, you
can use a hand-made list of enemies that you make yourself.
&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Email Me if You&#8217;re Missing Class Today</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Mon08Mar20101355320500</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Mon08Mar20101355320500</guid>
    <pubDate>Mon, 08 Mar 2010 13:55:32 -0500</pubDate>
    <description>
&lt;div class="p"&gt;
If you are 1) still in the class and 2) missing lecture today, please
email me by the end of class today to tell me.  This will ensure that
you are assigned a partner.  (Conversely: If you miss lecture today and
don&amp;#8217;t email me, I&amp;#8217;ll assume you are withdrawing and may not assign you a
partner.)
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>New Partners</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Sun07Mar20101717030500</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Sun07Mar20101717030500</guid>
    <pubDate>Sun, 07 Mar 2010 17:17:03 -0500</pubDate>
    <description>
&lt;div class="p"&gt;
If you haven&amp;#8217;t requested a new partner yet, and you want to have some
say in who you work with, email me ASAP!
&lt;/div&gt;
&lt;div class="p"&gt;
(Also, I&amp;#8217;d be glad to start looking over your game designs now if you
send them to me.)
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Problem Set 6 Solutions</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Sun28Feb20100012060500</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Sun28Feb20100012060500</guid>
    <pubDate>Sun, 28 Feb 2010 00:12:06 -0500</pubDate>
    <description>
&lt;div class="p"&gt;
Some of you asked me for
&lt;a
href="http://www.ccs.neu.edu/course/cs2500/assigns/6-sol.ss"&gt;solutions to
last week&amp;#8217;s homework&lt;/a&gt;.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Design Document from Today&#8217;s Lecture</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Thu25Feb20102148080500</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Thu25Feb20102148080500</guid>
    <pubDate>Thu, 25 Feb 2010 21:48:08 -0500</pubDate>
    <description>
&lt;div class="p"&gt;
Here is &lt;a
href="http://www.ccs.neu.edu/course/cs2500/lec/lec20100225.ss"&gt;today&amp;#8217;s
lecture code&lt;/a&gt;, which includes my design document for the ball world
program.
&lt;/div&gt;
&lt;div class="p"&gt;
Also, something I neglected to mention today, which you may need rather soon,
is the &amp;lsquo;function&amp;rsquo; &lt;a
href="http://download.plt-scheme.org/doc/4.2.3/html/htdp-langs/intermediate-prim-op.html#(def._((lib._lang/htdp-intermediate..ss)._random))"&gt;&lt;code&gt;random&lt;/code&gt;&lt;/a&gt;.
I put &amp;lsquo;function&amp;rsquo; in quotes there because unlike
&lt;em&gt;every&lt;/em&gt; Scheme function we&amp;rsquo;ve seen so far,
&lt;code&gt;random&lt;/code&gt; may return different results when given the exact
same arguments.
It&amp;rsquo;s not truly a function in the mathematical sense, but
it&amp;rsquo;s useful for what we want to do in Scheme.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>New Late Day Rules</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Thu25Feb20100050000500</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Thu25Feb20100050000500</guid>
    <pubDate>Thu, 25 Feb 2010 00:50:00 -0500</pubDate>
    <description>
&lt;div class="p"&gt;
For the rest of this course, you have four free late days to be used
as you wish, according to the following rules:
&lt;/div&gt;
&lt;div class="p"&gt;
&lt;ul&gt;
&lt;li&gt;To use a late day, email Jesse and Stevie
&lt;em&gt;before&lt;/em&gt; the time that the homework is due.&lt;/li&gt;
&lt;li&gt;If you tell us that you&amp;#8217;re using one late day and need to use a
second, you must tell us before your first late day ends.&lt;/li&gt;
&lt;li&gt;You may use at most two late days for any one assignment.&lt;/li&gt;
&lt;li&gt;When you use a late day, you get a 24 hour extension, until 11:59 PM
the next day.&lt;/li&gt;
&lt;li&gt;We will be leaving electronic submission open for 48 hours after
each homework is due.  To submit late, submit electronically before
your late day (or two late days, if you so choose) ends.&lt;/li&gt;
&lt;li&gt;You and your partner must use a late day &lt;em&gt;together&lt;/em&gt;.  If one
partner has no late days remaining but the other has two, the partner
that has two needs to email us to confirm that he or she wishes to give
a late day to the partner that has none.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="p"&gt;
Caution: Since we now need to leave the hand-in server open beyond the
normal due date, there are a few things to watch out for.  In
particular, at some point after the due date, but possibly before the
late days end, we may gather your homework and begin grading.  This
means that if you intend to take a late day but you don&amp;#8217;t tell us, we
won&amp;#8217;t know to wait to grade your homework, so we &lt;em&gt;may&lt;/em&gt; grade a
previous submission that you&amp;#8217;ve sent us on time&amp;#8212;but we might not,
depending on when we start grading.
On the other hand, if you submit late but don&amp;#8217;t tell us, we might assume
you intended to take a late day and charge you for it.
&lt;/div&gt;
&lt;div class="p"&gt;
I realize that&amp;#8217;s quite a few rules, but I hope this will make the course
fairer and make it easier for you to deal with unforseen obstacles.  I
suggest conserving your late days for dire circumstances, because if you
run out, you might not have them when you really need them.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Today&#8217;s Lecture Code (updated)</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Thu25Feb20100024530500</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Thu25Feb20100024530500</guid>
    <pubDate>Thu, 25 Feb 2010 00:24:53 -0500</pubDate>
    <description>
&lt;div class="p"&gt;
Here is &lt;a
href="http://www.ccs.neu.edu/course/cs2500/lec/lec20100224.ss"&gt;today&amp;#8217;s
lecture code&lt;/a&gt;.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Today&#8217;s Lecture Code</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Mon22Feb20102125070500</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Mon22Feb20102125070500</guid>
    <pubDate>Mon, 22 Feb 2010 21:25:07 -0500</pubDate>
    <description>
&lt;div class="p"&gt;
Here is &lt;a
href="http://www.ccs.neu.edu/course/cs2500/lec/lec20100222.ss"&gt;today&amp;#8217;s
lecture code&lt;/a&gt;.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Alpaca Birthdays</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Mon22Feb20101608210500</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Mon22Feb20101608210500</guid>
    <pubDate>Mon, 22 Feb 2010 16:08:21 -0500</pubDate>
    <description>
&lt;div class="p"&gt;
For problem 4, you may safely assume that no two alpacas were born on
the same day.
&lt;/div&gt;
&lt;div class="p"&gt;
For this homework assignment, using the right template for processing
alpacas will be a great help in getting your code to work.  If at any
point you find yourself thinking about alpacas&amp;#8217; grandparents, writing
phrases like &lt;code&gt;(alpaca-dam (alpaca-dam a))&lt;/code&gt;, this is a sign
that you need some recursion.  (Follow the shape of the data
definition!)
&lt;/div&gt;
&lt;div class="p"&gt;
If you find yourself writing things like
&lt;code&gt;(alpaca-dob (alpaca-sire a))&lt;/code&gt;,
that indicates the need for a helper function.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Lecture Notes from Thursday</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Sat20Feb20102337050500</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Sat20Feb20102337050500</guid>
    <pubDate>Sat, 20 Feb 2010 23:37:05 -0500</pubDate>
    <description>
&lt;div class="p"&gt;
&lt;a
href="http://www.ccs.neu.edu/course/cs2500/lec/lec20100218.ss"&gt;Here&lt;/a&gt;.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Problem Set 6</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Thu18Feb20101253380500</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Thu18Feb20101253380500</guid>
    <pubDate>Thu, 18 Feb 2010 12:53:38 -0500</pubDate>
    <description>
&lt;div class="p"&gt;
&lt;a
href="http://www.ccs.neu.edu/course/cs2500/assigns/6.html"&gt;Problem
Set 6&lt;/a&gt; is posted&amp;#8212;enjoy!
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Lecture Notes from Today</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Wed17Feb20101745300500</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Wed17Feb20101745300500</guid>
    <pubDate>Wed, 17 Feb 2010 17:45:30 -0500</pubDate>
    <description>
&lt;div class="p"&gt;
By request, today&amp;#8217;s
&lt;a
href="http://www.ccs.neu.edu/course/cs2500/lec/lec20100217.ss"&gt;lecture
notes&lt;/a&gt;.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>How to Know if You Know Enough about Recursion</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Sun14Feb20101548400500</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Sun14Feb20101548400500</guid>
    <pubDate>Sun, 14 Feb 2010 15:48:40 -0500</pubDate>
    <description>
&lt;div class="p"&gt;
Can you:
&lt;ul&gt;
&lt;li&gt;make data definitions for lists of different things?&lt;/li&gt;
&lt;li&gt;write the templates for those data definitions?&lt;/li&gt;
&lt;li&gt;find the length of a list?&lt;/li&gt;
&lt;li&gt;combine all the elements of a list using some operation, for example
sum a list of numbers or append a list of strings?&lt;/li&gt;
&lt;li&gt;change all the elements of a list in the same way, for example add
some number &lt;code&gt;n&lt;/code&gt; to every number in a list or find the length
of every string in a list?&lt;/li&gt;
&lt;li&gt;filter a list for elements with some property, for example keep only
the numbers greater than some number &lt;code&gt;n&lt;/code&gt;?&lt;/li&gt;
&lt;li&gt;combine some of the above, for example sum all the numbers greater
than &lt;code&gt;n&lt;/code&gt;?
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="p"&gt;
These are the essential ideas behind &lt;em&gt;everything&lt;/em&gt; we&amp;#8217;ve seen done
with lists thus far.  If you can do these and you can recognize
variations on these themes, you should be in good shape.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Office Hours Monday by Appointment Only</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Fri12Feb20101537330500</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Fri12Feb20101537330500</guid>
    <pubDate>Fri, 12 Feb 2010 15:37:33 -0500</pubDate>
    <description>
&lt;div class="p"&gt;
Due to the Monday holiday, regular office hours (Christopher&amp;#8217;s, Nikko&amp;#8217;s,
and mine) are cancelled.  However, I will be available
&lt;strong&gt;by appointment&lt;/strong&gt; on both Monday and Tuesday.  I&amp;#8217;ll be
glad to meet with any of you given 24 hours&amp;#8217; notice.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Exam Location, Review Session, and Study Materials</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Fri12Feb20101342350500</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Fri12Feb20101342350500</guid>
    <pubDate>Fri, 12 Feb 2010 13:42:35 -0500</pubDate>
    <description>
&lt;div class="p"&gt;
&lt;ul&gt;
&lt;li&gt;
The midterm exam will be on Wednesday, February 17, from 6:30 to 9:30
PM, in 335 Shillman Hall.  Shillman is
building 30 in the lower-right corner of &lt;a
href="http://www.northeastern.edu/campusmap/map/qad4.html"&gt;this map&lt;/a&gt;,
just north of Centennial Common.
&lt;/li&gt;
&lt;li&gt;
The review session will be on Monday, February 15, from 8 to 10 PM, in
366 West Village H.  Take the elevator to the third floor, go right out
of the elevator, turn right again when you hit the windows, and 366 will
be on your right.
&lt;/li&gt;
&lt;li&gt;
In case you missed them before, here are the
practice exams from
&lt;a href="http://www.ccs.neu.edu/course/cs2500/exam1-f07.pdf"&gt;Fall
2007&lt;/a&gt; and
&lt;a href="http://www.ccs.neu.edu/course/cs2500/exam1-f08.pdf"&gt;Fall
2008&lt;/a&gt;.
&lt;/li&gt;
&lt;li&gt;
We have 
&lt;a
href="http://www.ccs.neu.edu/course/cs2500/lec/lec20100211.ss"&gt;lecture code&lt;/a&gt;
from yesterday.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>New Partners!</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Wed10Feb20101846000500</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Wed10Feb20101846000500</guid>
    <pubDate>Wed, 10 Feb 2010 18:46:00 -0500</pubDate>
    <description>
&lt;div class="p"&gt;
I just sent emails informing you of your new partners for Problem Set 5.
Please let me know if you didn&amp;#8217;t get yours.
&lt;/div&gt;
&lt;div class="p"&gt;
Some people find pair programming effective and others less so.  We
require you to do it in this course because we&amp;#8217;ve found that it&amp;#8217;s an
effective way to learn, and we require you to switch partners because we
want you to experience working with different people and working with
people you don&amp;#8217;t know.
In case you&amp;#8217;re interested, here&amp;#8217;s an
&lt;a
href="http://www.ccs.neu.edu/course/cs2500/how-pair-programming-really-works.pdf"&gt;article about what makes pair programming effective&lt;/a&gt;.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Early Bird Lab and Partner Clarification</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Wed10Feb20101546460500</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Wed10Feb20101546460500</guid>
    <pubDate>Wed, 10 Feb 2010 15:46:46 -0500</pubDate>
    <description>
&lt;div class="p"&gt;
Some of you have been asking me who you should do Problem Set 5 with.
The answer is: You don&amp;#8217;t know yet, but you will very soon.  I&amp;#8217;ll be
emailing you this afternoon, as soon as I work out who partners will be.
&lt;/div&gt;
&lt;div class="p"&gt;
I&amp;#8217;ve posted &lt;a
href="http://www.ccs.neu.edu/course/cs2500/labs/5.html"&gt;Lab 5&lt;/a&gt; early
for those of you that might want to get started today.  If you find
you&amp;#8217;re having a hard time finishing the labs, starting early might help.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>No Class</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Wed10Feb20101133480500</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Wed10Feb20101133480500</guid>
    <pubDate>Wed, 10 Feb 2010 11:33:48 -0500</pubDate>
    <description>
&lt;div class="p"&gt;
On the miniscule chance that you are reading this course blog but
haven&amp;#8217;t yet heard from another source, Northeastern has cancelled
classes meeting after noon today.  That includes ours.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Problem Set 5 and Practice Exams</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Tue09Feb20102334060500</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Tue09Feb20102334060500</guid>
    <pubDate>Tue, 09 Feb 2010 23:34:06 -0500</pubDate>
    <description>
&lt;div class="p"&gt;
Hello all!  I&amp;#8217;ve posted
&lt;a href="http://www.ccs.neu.edu/course/cs2500/assigns/5.html"&gt;Problem
Set 5&lt;/a&gt; and practice exams from
&lt;a href="http://www.ccs.neu.edu/course/cs2500/exam1-f07.pdf"&gt;Fall
2007&lt;/a&gt; and
&lt;a href="http://www.ccs.neu.edu/course/cs2500/exam1-f08.pdf"&gt;Fall
2008&lt;/a&gt;.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Today&#8217;s Code</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Mon08Feb20102152370500</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Mon08Feb20102152370500</guid>
    <pubDate>Mon, 08 Feb 2010 21:52:37 -0500</pubDate>
    <description>
&lt;div class="p"&gt;
Here&amp;#8217;s the
&lt;a
href="http://www.ccs.neu.edu/course/cs2500/lec/lec20100208.ss"&gt;lecture code&lt;/a&gt;
from today.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Typo in PS4</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Mon08Feb20100021110500</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Mon08Feb20100021110500</guid>
    <pubDate>Mon, 08 Feb 2010 00:21:11 -0500</pubDate>
    <description>
&lt;div class="p"&gt;
I just corrected a mistake in Problem Set 4.
The last word of Problem 1 said &amp;ldquo;code&amp;rdquo; where
it should say &amp;ldquo;cond.&amp;rdquo.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Partner Requests</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Sun07Feb20101154060500</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Sun07Feb20101154060500</guid>
    <pubDate>Sun, 07 Feb 2010 11:54:06 -0500</pubDate>
    <description>
&lt;div class="p"&gt;
If you haven&amp;#8217;t sent your partner request in yet (via the hand-in server,
using the process described below), this is your last chance.  I&amp;#8217;ll be
assigning partners this evening, so if you have a preference,
make sure you do it by 6 PM today (Sunday).
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>New Partners, Grade Retrieval, and Lecture Code</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Fri05Feb20100042540500</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Fri05Feb20100042540500</guid>
    <pubDate>Fri, 05 Feb 2010 00:42:54 -0500</pubDate>
    <description>
&lt;div class="p"&gt;
I hope you&amp;#8217;ve started working on Problem Set 4 with your current
partner.  For Problem Set 5, we&amp;#8217;re going to assign new partners.
If you would like to request a partner and they would like to request
you, please submit small Scheme program (doesn&amp;#8217;t matter what you put in
it, so long as the hand-in server accepts it) to the assignment
&amp;#8220;partners2&amp;#8221; along with your requested partner.  For example, if Stevie
and Vincent wanted to be partners, then they would write something
short, like &lt;code&gt;5&lt;/code&gt;
in a DrScheme buffer, and they would submit it as
&lt;tt&gt;st-amour.v+strickland.t&lt;/tt&gt; to the dummy assignment &amp;#8220;partners2.&amp;#8221;
Please do this by noon on Sunday if you have a preference.
We will consider your request, but we won&amp;#8217;t necessarily honor it.
&lt;/div&gt;
&lt;div class="p"&gt;
From now on, we will not be returning your homework to you, because
we&amp;#8217;ve set up &lt;a
href="https://winooski.ccs.neu.edu:9772/servlets/status.ss"&gt;a system to
allow you to access homework grades and comments&lt;/a&gt;.
If you want to see the graders&amp;#8217; comments on your work, you&amp;#8217;ll have to
look there.
Login using the
same user name and password that you use for the hand-in server. If you
have trouble, contact Stevie&amp;#8212;he knows how to fix it.
&lt;/div&gt;
&lt;div class="p"&gt;
Finally, here&amp;#8217;s the lecture code from
&lt;a
href="http://www.ccs.neu.edu/course/cs2500/lec/lec20100203.ss"&gt;Wednesday&lt;/a&gt;
and
&lt;a
href="http://www.ccs.neu.edu/course/cs2500/lec/lec20100204.ss"&gt;Thursday&lt;/a&gt;.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>PS2 Graded, PS4 Available, and Homework Code</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Tue02Feb20100257010500</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Tue02Feb20100257010500</guid>
    <pubDate>Tue, 02 Feb 2010 02:57:01 -0500</pubDate>
    <description>
&lt;div class="p"&gt;
I sent out grades for Problem Set 2 to your husky.neu.edu addresses.
If you didn&amp;#8217;t get it, please let me know, and we can figure out what
went wrong.
&lt;/div&gt;
&lt;div class="p"&gt;
&lt;a
href="http://www.ccs.neu.edu/course/cs2500/assigns/4.html"&gt;
Problem Set 4&lt;/a&gt;
and
&lt;a
href="http://www.ccs.neu.edu/course/cs2500/lec/lec20100201.ss"&gt;Monday&amp;#8217;s
lecture code&lt;/a&gt; are posted.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Problem Set 3 Exercise Correction</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Mon01Feb20101610160500</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Mon01Feb20101610160500</guid>
    <pubDate>Mon, 01 Feb 2010 16:10:16 -0500</pubDate>
    <description>
&lt;div class="p"&gt;
I&amp;#8217;ve corrected the exercise numbers for Problem 4, which were off by
one.  It used to say 66, 67, and 68, and now it says 65, 66, and 67.
Most of you have done or are doing 65, anyway, because it&amp;#8217;s a
prerequisite for 67.  If you&amp;#8217;ve already done 68, we&amp;#8217;ll grade it for extra
credit.
&lt;/div&gt;
&lt;div class="p"&gt;
I&amp;#8217;m sorry for the inconvenience.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Lecture Code</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Thu28Jan20102020360500</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Thu28Jan20102020360500</guid>
    <pubDate>Thu, 28 Jan 2010 20:20:36 -0500</pubDate>
    <description>
&lt;div class="p"&gt;
Yesterday&amp;#8217;s &lt;a
href="http://www.ccs.neu.edu/course/cs2500/lec/lec20100127-actual.ss"&gt;actual
lecture code&lt;/a&gt;, the &lt;a
href="http://www.ccs.neu.edu/course/cs2500/lec/lec20100127-ideal.ss"&gt;full
version&lt;/a&gt; of the painting program, and today&amp;#8217;s &lt;a
href="http://www.ccs.neu.edu/course/cs2500/lec/lec20100128.ss"&gt;lecture
code&lt;/a&gt; are available.
&lt;/div&gt;
&lt;div class="p"&gt;
Please remember that if you failed today&amp;#8217;s quiz, you need to appear at
Vincent&amp;#8217;s office hours tomorrow (Friday), Jesse&amp;#8217;s on Monday, or Stevie&amp;#8217;s
on Tuesday in order to get credit for Problem Set 2.  You need to be
there at least half an hour before the end of office hours to make sure
we&amp;#8217;ll have time to work with you; likewise, Monday and Tuesday are
likely to be very busy, so if you can, we&amp;#8217;d recommend going to Vincent&amp;#8217;s
tomorrow.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Lecture Code, Homework Submission, and Submission Nagging</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Mon25Jan20102221540500</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Mon25Jan20102221540500</guid>
    <pubDate>Mon, 25 Jan 2010 22:21:54 -0500</pubDate>
    <description>
&lt;div class="p"&gt;
Today&amp;#8217;s &lt;a
href="http://www.ccs.neu.edu/course/cs2500/lec/lec20100125.ss"&gt;lecture code&lt;/a&gt;
is available.
&lt;/div&gt;
&lt;div class="p"&gt;
Please put all your homework problems are in one file.  Some
people have been creating a separate file for each problem, but if you
submit multiple problems in sequence in different files, only the last
one will be retained for grading.
You may find that it&amp;#8217;s annoying to have multiple calls to
&lt;code&gt;big-bang&lt;/code&gt; in one file.  It&amp;#8217;s okay to comment out your
&lt;code&gt;big-bang&lt;/code&gt;s, provided that each one works when uncommented.
&lt;/div&gt;
&lt;div class="p"&gt;
There was some confusion today about what it means to &amp;#8220;[c]reate a 
DrScheme buffer.&amp;#8221;  The DrScheme buffer is the same thing as what in
lecture I&amp;#8217;ve called the &amp;#8220;definitions window&amp;#8221;&amp;#8212;it&amp;#8217;s the place where
you write programs.  Even though the book says to create a buffer, just
add the problems to the same buffer as your other files.
&lt;/div&gt;
&lt;div class="p"&gt;
Finally, I understand that only &lt;em&gt;one pair&lt;/em&gt; has attempted to submit
their homework so far.  Please&amp;#8212;I urge you&amp;#8212;try submitting your
homework tonight or tomorrow morning.  I don&amp;#8217;t expect it to be done by
now, but you need to make sure it works before the last minute, and
you&amp;#8217;ll be able to resubmit it later again any time before the deadline.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Lecture Code, Partners, and Quizzes</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Fri22Jan20101509560500</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Fri22Jan20101509560500</guid>
    <pubDate>Fri, 22 Jan 2010 15:09:56 -0500</pubDate>
    <description>
&lt;div class="p"&gt;
Several important notes:
&lt;/div&gt;
&lt;div class="p"&gt;
&lt;ul&gt;
&lt;li&gt;Yesterday&amp;#8217;s &lt;a
href="http://www.ccs.neu.edu/course/cs2500/lec/lec20100121.ss"&gt;lecture code&lt;/a&gt;
is available.&lt;/li&gt;
&lt;li&gt;
If your partner has dropped and you need a new one, please let me know
ASAP.
&lt;/li&gt;
&lt;li&gt;
Just a reminder: If you failed your lab quiz today, in order to
receive credit for Problem Set 1, you need to come
to Vincent&amp;#8217;s office hours on Friday, Jesse&amp;#8217;s on Monday, or Stevie&amp;#8217;s on
Tuesday.  Be prepared to convince us that you&amp;#8217;ve learned how to solve
problems similar to the quiz problem.
&lt;/li&gt;
&lt;li&gt;
If you didn&amp;#8217;t take a lab quiz today and you want to receive credit for
Problem Set 1, you should come to office hours.
In the future, it will not be possible to make up missed quizzes unless
you email the instructor before the beginning of the lab that you are
going to miss.
If for some reason you need to leave lab early, please let us know at
the beginning of lab so that we can give you a quiz before you leave.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Electronic Homework Submission</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Thu21Jan20102148410500</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Thu21Jan20102148410500</guid>
    <pubDate>Thu, 21 Jan 2010 21:48:41 -0500</pubDate>
    <description>
&lt;div class="p"&gt;
The homework submission server will &lt;em&gt;stop accepting submissions&lt;/em&gt;
at or very soon after 11:59 PM on Tuesday.  We will not look kindly on
homeworks emailed to us because you couldn&amp;#8217;t get submission to
work&amp;#8212;especially if they arrive after the deadline&amp;#8212;so
there are some things we&amp;#8217;d recommend you do now to make sure you can
submit without a hitch on Tuesday.
&lt;/div&gt;
&lt;div class="p"&gt;
First, we&amp;#8217;ve noticed that only a minority of you actually
performed test submissions to the &lt;tt&gt;lab1&lt;/tt&gt; assigment during our lab
today.  We &lt;strong&gt;strongly&lt;/strong&gt; recommend that you do a test
submission to the &lt;tt&gt;lab1&lt;/tt&gt; assignment using the &lt;a
href="http://www.ccs.neu.edu/course/cs2500/#electronic"&gt;electronic
submission instructions&lt;/a&gt; before the weekend.  If it doesn&amp;#8217;t
work, you can contact us or come get help at office hours in time to get
it fixed by Tuesday.
&lt;/div&gt;
&lt;div class="p"&gt;
Also, please make sure that you
know your partner&amp;#8217;s homework server ID, because you don&amp;#8217;t want to find
yourself stuck without it on Tuesday evening.  (You don&amp;#8217;t need to and
shouldn&amp;#8217;t know your partner&amp;#8217;s password.)
&lt;/div&gt;
&lt;div class="p"&gt;
Keep in mind that your last submission as of the time the submission
window closes is the one that we will grade.  This fact has three
important implications: 
&lt;ol&gt;
&lt;li&gt;It&amp;#8217;s safe and possibly a good idea to submit an incomplete
assignment early, because you can submit over it later when you complete
more of it.&lt;/li&gt;
&lt;li&gt;If you submit a good version of your code, and then mess something
up and resubmit, we most likely
won&amp;#8217;t be able to retrieve the older, good version
for you.&lt;/li&gt;
&lt;li&gt;In particular, take a look at the Wikipedia article on &lt;a
href="http://en.wikipedia.org/wiki/Race_condition"&gt;race conditions&lt;/a&gt;,
and consider what you can expect if you and your partner accidentally submit
different versions of the homework &amp;#8220;simultaneously.&amp;#8221;
&lt;/li&gt;&lt;/ol&gt;
&lt;/div&gt;
&lt;div class="p"&gt;
Finally,
if you changed your homework submission server password before this evening,
we may have accidentally reset your password to your last four NUID
digits.  If you have trouble logging in with your changed password,
you should try the original four digit password.  (Sorry.)
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Lecture Notes from Wednesday</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Thu21Jan20100021150500</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Thu21Jan20100021150500</guid>
    <pubDate>Thu, 21 Jan 2010 00:21:15 -0500</pubDate>
    <description>
&lt;div class="p"&gt;
As promised, here&amp;#8217;s the &lt;a
href="http://www.ccs.neu.edu/course/cs2500/lec/lec20100120.ss"&gt;source code&lt;/a&gt;
from today&amp;#8217;s lecture.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Problem Set 2</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Wed20Jan20100338350500</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Wed20Jan20100338350500</guid>
    <pubDate>Wed, 20 Jan 2010 03:38:35 -0500</pubDate>
    <description>
&lt;div class="p"&gt;
&lt;a href="assigns/2.html"&gt;Problem Set 2&lt;/a&gt; is posted.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Major Reading List Change!</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Fri15Jan20100127140500</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Fri15Jan20100127140500</guid>
    <pubDate>Fri, 15 Jan 2010 01:27:14 -0500</pubDate>
    <description>
&lt;div class="p"&gt;
Hello all.  I&amp;#8217;ve made a significant change to the reading list for the
next couple of weeks, starting this morning (Friday).
Rather than read from the
main textbook, I&amp;#8217;ve assigned reading from a new edition,
&lt;a href="http://www.ccs.neu.edu/home/matthias/HtDP2e/index.html"&gt;How to
Design Programs, Second Edition&lt;/a&gt;.  HtDP/2e is a work in progress, but
many of the changes are based on experience teaching this course over
the past few years, and I think you would benefit from reading from
this new version.
&lt;/div&gt;
&lt;div class="p"&gt;
&lt;strong&gt;Please note:&lt;/strong&gt; The sections in HtDP/2e do not align with
sections in your printed textbook and the online version at htdp.org, so
please be sure to read from the second edition as linked from the
&lt;a
href="http://www.ccs.neu.edu/course/cs2500/#syllabus"&gt;syllabus&lt;/a&gt;.
&lt;/div&gt;
&lt;div class="p"&gt;
(If you&amp;#8217;re behind in the reading or if you are struggling,
I suggest that you catch up by reading the &lt;a
href="http://www.ccs.neu.edu/home/matthias/HtDP2e/prologue.html"&gt;Prologue
to HtDP/2e&lt;/a&gt;.)
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Partners Are Not for Problem Set 1</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Fri15Jan20100126220500</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Fri15Jan20100126220500</guid>
    <pubDate>Fri, 15 Jan 2010 01:26:22 -0500</pubDate>
    <description>
&lt;div class="p"&gt;
Although we chose partners today in lab, these partners are for Problem
Set 2, not Problem Set 1.  Please do Problem Set 1 on your own, not with
your partner.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>For Those of You without Hard-Copy Textbooks</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Thu14Jan20100149280500</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Thu14Jan20100149280500</guid>
    <pubDate>Thu, 14 Jan 2010 01:49:28 -0500</pubDate>
    <description>
&lt;div class="p"&gt;
(Note: Updated 
Fri, 15 Jan 2010 01:37:23 -0500
to mention HtDP/2e.)
&lt;/div&gt;
&lt;div class="p"&gt;
It has come to my attention that the bookstore has run out of our
textbook, HtDP.  Fortunately, for the next few weeks, the reading is from &lt;a
href="http://www.ccs.neu.edu/home/matthias/HtDP2e/index.html"&gt;HtDP/2e&lt;/a&gt;,
which is only available on the web.  (Please see the &lt;a
href="http://www.ccs.neu.edu/course/cs2500/#syllabus"&gt;syllabus&lt;/a&gt;
for the daily reading schedule.)
&lt;/div&gt;
&lt;div class="p"&gt;
In two weeks, however, we&amp;#8217;ll continue reading from HtDP, first edition.
I &lt;em&gt;strongly&lt;/em&gt; recommend getting the book in printed form by then.
It&amp;#8217;s available from &lt;a
href="http://www.powells.com/biblio/62-9780262062183-2"&gt;Powell&amp;#8217;s&lt;/a&gt;
and &lt;a
href="http://www.amazon.com/How-Design-Programs-Introduction-Programming/dp/0262062186/"&gt;Amazon&lt;/a&gt;.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Why Doesn&#8217;t &#8220;rectangle&#8221; Work?</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Wed13Jan20101820030500</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Wed13Jan20101820030500</guid>
    <pubDate>Wed, 13 Jan 2010 18:20:03 -0500</pubDate>
    <description>
&lt;div class="p"&gt;
Some of you have had a problem creating images in DrScheme.
Perhaps you typed something like
&lt;pre&gt;    (rectangle 10 10 "solid" "green")&lt;/pre&gt;
and DrScheme complained: &amp;#8220;&lt;em&gt;reference to an identifier before its
definition: rectangle&lt;/em&gt;.&amp;#8221;  There&amp;#8217;s nothing wrong with that Scheme
expression, but you need to tell DrScheme ahead of time that you want to
work with images (and eventually, animations),
by loading the &lt;tt&gt;universe.ss&lt;/tt&gt; &amp;#8220;teachpack.&amp;#8221;  You
can do this by going to the &lt;em&gt;Language&lt;/em&gt;&amp;gt;&lt;em&gt;Add
Teachpack...&lt;/em&gt; menu and selecting &lt;tt&gt;universe.ss&lt;/tt&gt; at the bottom of
the list.
&lt;/div&gt;
&lt;div class="p"&gt;
Whenever you run a program in DrScheme (by clicking the &amp;#8220;Run&amp;#8221; button,
or pressing cmd-t or ctrl-t), it tells you which teachpacks you have
loaded.  Mine, for example, says:
&lt;/div&gt;
&lt;div class="p"&gt;
&lt;span style="font-family: sans-serif"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Welcome to &lt;span style="color: blue;
text-decoration: underline"&gt;DrScheme&lt;/span&gt;, version 4.2.3 [3m].&lt;br class="real" /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Language: &lt;span style="color:
green"&gt;Beginning Student custom&lt;/span&gt;.&lt;br class="real" /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Teachpack: &lt;span style="color:
green"&gt;universe.ss&lt;/span&gt;.
&lt;/span&gt;
&lt;/div&gt;
&lt;div class="p"&gt;
Yours should say something similar.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Problem Set 1</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Tue12Jan20102235210500</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Tue12Jan20102235210500</guid>
    <pubDate>Tue, 12 Jan 2010 22:35:21 -0500</pubDate>
    <description>
&lt;div class="p"&gt;
&lt;a href="assigns/1.html"&gt;Problem Set 1&lt;/a&gt; is posted.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>CCIS Accounts</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Mon11Jan20101807000500</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Mon11Jan20101807000500</guid>
    <pubDate>Mon, 11 Jan 2010 18:07:00 -0500</pubDate>
    <description>
&lt;div class="p"&gt;
I promised in class to provide this
&lt;a href="http://www.ccs.neu.edu/help/account-form.txt"&gt;link
to the CCIS account request form&lt;/a&gt;.
Fill this out, follow the
instructions, and drop it off in the slot outside 310 WVH.
I &lt;em&gt;strongly&lt;/em&gt;
recommend that you do this as soon as possible&amp;#8212;if you turn
it in by tomorrow (Tuesday), you may have an account in time for
lab on Thursday.
&lt;/div&gt;
&lt;div class="p"&gt;
Note that this is not the
same as your myneu/husky.neu account, so even if you already have
one of those accounts, you&amp;#8217;ll need to get one of these as well.
&lt;/div&gt;
    </description>
  </item>
  <item>
    <title>Welcome!</title>
    <link>http://www.ccs.neu.edu/~tov/course/cs2500/#Mon11Jan20100031180500</link>
    <guid>http://www.ccs.neu.edu/~tov/course/cs2500/#Mon11Jan20100031180500</guid>
    <pubDate>Mon, 11 Jan 2010 00:31:18 -0500</pubDate>
    <description>
&lt;div class="p"&gt;
Welcome to CS2500!  Please check back here often for
updates, or subscribe to the
&lt;a rel="alternate" type="application/rss+xml" href="rss.xml"&gt;RSS
feed&lt;/a&gt;.
&lt;/div&gt;
    </description>
  </item>
  </channel>
</rss>
