The wiki has a whole bunch of updated stuff. Some of it is the files that you've asked me for -- particularly CodeSeptember7 -- and a draft of the problem set -- expect a few additional questions by the end of the day tomorrow (Friday). I've also put up a rough syllabus/calendar and will start incrementally populating that with readings and/or indications of what you should know/do before coming to class on that day. We are actually pretty close to on track for the first one of these, which is on the FirstWeek page.
I am slowly working my way through my to do list. If you know of something that should be on it but isn't done yet, please (feel free to) let me know.
I don't know at this point who's in the 6u version and who is in the 4; eventually, I'll get two mailing lists set up, but not until things settle out a bit more. The remainder of this message is probably only relevant for the 6u folks (or the maybe-6u folks):
The purpose of the "project" component of the class is to reinforce/underscore the topics that we're covering in the "main" part of the course. The project is not intended to teach separate material and, in particular, it's not really my plan to make it into an advanced programming class. (That is, you'll do programming, but I don't plan to teach programming there.)
Should you take it? I think that this is really a matter of your particular learning style. If you're someone who learns best by putting fingers to keyboard, if you find programming makes it all real and solid for you, then by all means take it. If you enjoy programming and would appreciate having additional context and exposure, then take it. If you prefer to think about program design or math, if your preferred tools are a whiteboard and marker (or pencil and paper), if the coding and debugging is your least favorite part of software development, by all means take only 4u.
On a slightly more mundane note: (This info also at ProjectAssignment1) I had forgotten that the html returned by html->shtml is a parse tree. That is, it's a structure that is a little bit more complicated than your average list. If this structure is too complicated for you to manipulate directly right now, you can use the following function to turn it into a list:
(define (flatten tree) (cond ((null? tree) tree) ((not (pair? tree)) (list tree)) (else (append (flatten (car tree)) (flatten (cdr tree))))))
The tokens will still be just as clean, but now you can just cdr down the list. Of course, if you poke around in the shtml you may find that the structure is actually more useful...
Finally, things (not) to do:
- DO make sure that you bound the number of urls you look at.
- If possible, DO respect robots.txt. This means that you should look at the root of the web site and see if there's a robots.txt file. If so, don't worry about what it says; just ignore that site. (Info on robots.txt is easily google-able, and not all robots.txt sites say don't look at all, but this is a safe/easy approach.)