Congratulations to CS150 Spring 2007 Graduates!
- CS150 Condensed
- 10 May: Final Exam Comments
- 30 April: Course Improvement Survey [PDF] [Word Template]
- 30 April: Final Exam [PDF] [Word Template] [staticcharme.zip]
- 30 April: Instead of my usual office hours, I will have office hours on Thursday morning (May 3) from 11am-12:30pm. I will not answer specific questions about exam questions, but will be happy to discuss anything else you want.
- 30 April: Project Presentations:
- Magic Bus (http://files.johndevor.com/bus/index.html) — Eric Montgomery, John Devor, Jung Hong
- Social RPG (http://www.jellywars.com/something) — Ben Morrison
- Hoo's Junk (http://people.virginia.edu/~rar8j/html/) — Alex Rawls
- Metro Router (http://people.virginia.edu/~mwl3k/metrorouting/) — Kristen Henderson, Michael Lew
- The Awesome Tank Game (http://people.virginia.edu/~msk2c/cs150/tank/main.html) — Jessica Geist, Mark Berry, Meghan Knoll
- The Apartment Complex (http://www.people.virginia.edu/~mvs6f/cs150final) — Sara Alspaugh, Ellen Clarke, Becky Elstad, Mike Szlamowicz
- vBay (http://www.people.virginia.edu/~jkb4s/auction/) — Andrew Baker, Jonathan Faulkner, Jordan Buller
- Eninjas — Amelia Swafford, Sunny Patel, Wayne Warner
- Village Builder! — Ang Li, Andrea Yoon, Andrew Jesien, Jill Pritzker
- Notility — David Willet, Kevin Hosford, Victor Malaret
- Hangman — Rachel Lathbury, Lindsay Brown, Liz Peterson
- Hoo Needs Books? — Ian Redd, Jamie Jeon, Anna Lee
- Monster Attack — Nadine Natour, Zachary Pruckowski
- Hoo's Where — Paul DiOrio, Anthony Rangel
- 30 April: Class 42: Notes, Slides [PDF]
- 27 April: Class 41: Notes, Slides [PDF]
- 25 April: I will have extra office hours after class Friday (1-3pm), in addition to the normal office hours after class Wednesday and Thursday afternoon.
- 25 April: Class 40: Slides [PDF]
- 23 April: Class 39: Notes, Slides [PDF]
- 20 April: Class 38: Kinga [PPT], Richard [PPT], Adrienne [PDF]
- 18 April: Class 37: Notes, Slides [PDF]
- 18 April: ps8 comments
- 16 April: Class 36: Slides [PDF] (not used in class); Exam 2: [Word template] [PDF]
- 15 April: Instead of the usual lab hours tonight, Richard will be available in Small Hall for review questions at 8pm tonight. Now that you are working on your ps9 projects, there will not be any regularly scheduled lab hours for the rest of the semester. Your teams will be assigned a "consultant" once you submit your project descriptions. (See the ps9 handout for details.)
- 13 April: Class 35: Notes, Slides [PDF]
- 11 April: There will be a review session for Exam 2 on Thursday, 12 April from 7-8:30pm in Olsson 228E. The normally scheduled lab hours will not be held during the review session (since the ACs will be doing the review session instead), but there will be short lab hours before (6-7pm) and after (8:30-9pm) the review session.
- 11 April: PS9 Teams
- 9 April: Due to Gary McGraw's visit, I won't have my regular office hours after class Wednesday. I will have alternate office hours Wednesday morning 9:30am-10:30am (as well as my normal office hours Thursday afternoon 3:30-4:30pm).
- 9 April: Class 33: Notes, Slides [PDF]
- 7 April: There were some problems with the original ps8.zip file that prevent it from work with the ITC web server configuration. These are fixed now, so if you downloaded ps8.zip earlier, please download it again now: ps8.zip. When you unzip it, you should have a site like this one: http://people.virginia.edu/~dee2b/hooshungry/index.html (as with this one, you will get an error when you load it since the Google maps key is not right for your site).
- 7 April: Alex Rawls found this article: Working for the Man, cJeremy Allison.
- 7 April: Remember that there will be lab hours Monday, 8-9:30pm (instead of the previously scheduled Sunday 8-9:30pm time)
- 6 April: Problem Set 8
- 6 April: Class 32: Notes, Slides [PDF]
- 4 April: Class 31: Notes, Slides [PDF]
- 2 April: April 11's class will be a guest lecture by Gary McGraw. Read the article about him in Arts & Sciences Magazine: Computer fix: Gary McGraw's work helps protect the software that makes the world go 'around, April 2007.
- 2 April: Class 30: Notes, Slides [PDF]; Chapter 12
- 2 April: ps6 comments
- 1 April: There will be lab hours today (Sunday) at the normal times, 4-5:30pm and 8-9:30pm (both by Richard). After this week, the lab hours previously scheduled for Sundays 8-9:30pm will move to Mondays 8-9:30pm instead.
- 1 April: If you want to be able to load files in your Charme interpreter, here is a new version of evalLoop: ps/ps7/evalLoop.html. This should make it easier for you to test your Charme interpreter by re-evaluating expressions.
- 30 March: Class 29: Notes (only)
- 28 March: There is a subtle bug in the implementation of evalConditional in the original charme.py code (and the book chapter). The if statement near the end of the procedure which has the predicate if result: should be if not result == False:. Finding a Charme expression that evaluates incorrectly with the original definition of evalCond but evaluates correctly with the new definition is worth a bonus star on PS7. (This is fixed in the current ps7.zip file.)
- 28 March: I won't be able to hold my normal office hours Thursday this week. Please email me to schedule a meeting at a different time.
- 28 March: Class 28: Slides [PDF]
- 27 March: Some corrections and clarifications on Problem Set 7:
- The third parse example has a stray quote. It should be parse("(define square (lambda (x) (* x x)))")
- One of the examples for question 3 was incorrect on the problem set handout. The third example should be (cdr (cons 1 2)) evaluates to 2.
- For question 4, note that names in Python cannot include question marks, so you will have to use a different name for the Python procedure you use to implement null?.
- To run Python in the ITC labs:
- From the Start menu, select "SEAS -> Python 2.4 -> IDLE (Python GUI)"
- Be patient (it takes about 10 seconds to start up)
- Inside the Python shell, select "File -> Open" and select the charme.py file.
- Be careful not to reload the module while the evalLoop() is still running in the shell. If you try and load the charme.py file while the evalLoop() is running in the shell, it will send the shell into an infinite loop, where it will no longer respond to charme or python statements (and you will need to restart the shell which takes a while). The only way to get out of this is to restart the shell. To avoid this, remember to type "quit" in the evalLoop before trying to reload the charme.py file.
- 26 March: Class 27: Slides [PDF]; Problem Set 7 [PDF]; Chapter 12
- 23 March: Class 26: Slides [PDF]
- 21 March: Class 25: Slides [PDF]
- 20 March: PS5 Comments [PDF]
- 19 March: Class 24: Slides [PDF]; Chapter 11
- 16 March: Class 23: Notes, Slides [PDF]
- 14 March: The procedure in ps6.scm for problem 3 should also be named make-sim-object instead of make-object. Please make the change in your version.
- 14 March: Some of the names used in the original ps6 handout are inconsistent with the provided code. The make-object name used in the handout should be make-sim-object. In question 2, all the uses of make-object should be make-sim-object. (The on-line version is corrected.)
- 14 March: Class 22: Notes, Slides [PDF]; Chapter 10; Problem Set 6
- 13 March: cs150 Forum — please use the forum to find teammates and discuss ideas for your ps9 projects
- 12 March: There were some missing "'s in the original auction.scm file. A new one that fixes the problems is in the updated ps5.zip file (or you can download it separately from auction.scm)
- 12 March: Class 21: Notes, Slides (not used in class) [PDF]
- 7 March: There were some mistakes in the examples (the last one for question 5 should produce an empty table, since Katie Couric has no bids below 10000000) in the original ps5 handout, and the examples did not match the provided auction.scm (setup-tables included a higher bid for SEAS from Mick Jagger which affects the result of the first example for question 8). The on-line version is fixed now, but if you are using the original one that is fine too, just don't be surprised in these examples produce different outputs.
- 2 March (30 February): Class 20: Notes, Slides [PDF]
- 28 February: Class 19: Notes, Slides [PDF]; Exam 1 Comments [PDF]
- 28 February: The Thursday staffed lab hours will be 5-7pm instead of the normally scheduled time.
- 27 February: Staffed lab hours for today are cancelled. If you have questions, please send them by email. There will be normally scheduled lab hours on Wednesday and Thursday this week. During Spring Break, there will be no scheduled lab hours until Sunday, 11 March. Dave will be travelling next week and will not hold his regular office hours on March 7 or March 8. If you want to meet with me, send email to arrange a time.
- 26 February: Class 18: Notes, Slides [PDF]
- 26 February: Problem Set 5; Chapter 9
- 24 February: Eric Montgomery and Jessica Geist noticed this comic: Lisp (The comic is slightly confused on the structure of the universe, however. It is all made of lambda expressions, not cars, but we won't cover this until after spring break.)
- 23 February: Exam 1: [PDF] [Word answer template]
- 23 February: Class 17: Notes, Slides [PDF]
- 21 February: If you are worried the shortage of blue/green/gold star stickers available for PS4 might be detrimental to your exam grade, you can allay your fears now: Bush Earmarks 1.5 Billion Gold Stars For Education (The Onion)
- 21 February: Class 16: Notes, Slides [PDF]
- 21 February: Frances Allen has won the 2007 Turing Award! News articles from: Journal News, LA Times, USA Today, BusinessWeek
- 19 February: Class 15: Notes, Slides [PDF]; Chapter 8; ps4 comments
- 19 February: Kinga will have extra help hours in Small Hall Friday (Feb 23) morning 10-11:30am. There will be no regularly scheduled lab hours while Exam 1 is out.
- 18 February: The examples and phrasing for question 1 are more
confusing than they should be, since the question uses f and
g to mean the reverse of what they meant in the examples in the
course book and in class. For question 1, we are asking if f is in
O(g), where the examples in class asked if g
is in O(f). Of course, we can name the functions
anything we want, but be careful when you use the
definitions to make sure you have the correct interpretations of f and
g. Also, for the examples, the c value is used on the
left side of the inequality, instead of the right side as in the course
book and class examples. For example, the definition of O(f):
g is in O(f) iff g(n) ≤ cf(n) for all n > n0
But, since c is any positive constant, this is equivalent to
g is in O(f) iff c'g(n) ≤ f(n) for all n ≥ n0
In the second version, we can make c' = 1/c (for whatever c would be in the first case). For your answers, you can put c on whichever side you want, but you need to make it clear in your answers which side c is on. If you don't specify, we will assume the first definition, where c is on the right side as in the course book. (I have changed the on-line problem set to be consistent with what we did in class, but if you have already answered question 1, this does not affect your answers at all.)
- 16 February: Class 14: Notes, Slides [PDF]
- 14 February: Class 13: Notes, Slides [PDF]
- 14 February: ps3 comments; Chapter 7
- 12 February: Class 12: Slides [PDF]; Problem Set 4, Chapter 6
- 11 February: Sara Alspaugh noticed this self-referential picture on reddit.com (it reminds me of this sign I saw in Shanghai)
- 11 February: Gallery of L-System Fractals (Submitted PS3 images)
- 10 February: The original ps3 handout used save-fractal as the name of the command to save your image. The correct command name is save-image. The command to save your image in a file is (save-image filename) (Thanks to John Devor for noticing this.)
- 10 February: The hint for Question 11 of ps3 mentions the n-times
procedure from lecture, but we didn't actually cover that in lecture.
The n-times procedure takes two operands: a procedures
p and a number n and produces the composition of the
procedure with itself n times. Here is one way to define
(define (n-times proc n) (if (= n 1) proc (compose proc (n-times proc (- n 1)))))
- 9 February: There will be make-up lab hours today 4:30-6.
- 9 February: Class 11: Notes, Slides [PDF]
- 7 February: There is a problem with the original
rotate-ccw procedure in graphics.scm. A correct definition is:
(define (rotate-ccw curve) (lambda (t) (let ((ct (curve t))) (make-colored-point (y-of-point ct) (x-of-point ct) (color-of-point ct)))))(graphics.scm and ps3.zip are now updated to include this definition). This shouldn't effect other parts of ps3.
- 7 February: Class 10: Notes, Slides [PDF]
- 5 February: Class 9: Notes, Slides [PDF]
- 5 February: Kinga's lab hours this Thursday (February 8) will be 4-5:30 instead of the usual time (6-7:30).
- 3 February:
Rich First-Grader Buys Whole Sheet Of Gold Stars, from The Onion:
BREMERTON, WA — Lakeside Elementary first-grader Max Carr, son of Boeing CEO Robert Carr, used a small portion of his $100 weekly allowance Monday to buy himself a sheet of the gold stars used to reward academic achievement. "I don't get why all the kids work so hard to get good grades just for a sticker," Carr said. "I only got a C-minus on my phonics homework, but Mommy took me to the mall, and now I have 10 gold stars — more than anybody in the whole class." Carr said his "dumb classmates have no idea" that students can simply purchase a sheet of "Great Job!" Mickey Mouse stickers at a store.
- 2 February (Groundhog Day!): Class 8: Notes, Slides [PDF]
- 31 January: I will not hold my normally scheduled office hours Thursday, as I will be going to Steve Huffman's talk (see above). You are encourage to also go to Steve's talk, Thursday at 3:30 in MEC 205.
- 31 January: Class 7: Notes
- 29 January: The show-analysis procedure defined in the provided poker.scm code only work for turn analysis. To show the analysis resulting from an application of analyze-flop-situation, use show-flop-analysis.
- 29 January: Class 6: Notes, Slides [PDF]
- 28 January: Here's another minor update to poker.scm (the club suit prints out as blank in the previous version, and the upper and lowercase letters for suits were inconsistent)
- 28 January: Question 8 of PS2 mistakenly referred to the "time procedure". If your answer to Question 8 includes a clear explanation of why time (as its behavior is described) could not be a procedure, that is worth a half-star bonus on PS2.
- 28 January: For PS2, Question 7, the question is ambiguous on what to do if there are multiple equally good best possible hands. Your procedure may output any one of those hands. The question in the on-line version has been reworded to reflect this clarification.
- 28 January: For PS2, Question 6, the append in the ps2.scm code fragment, is a hint that you may want to use append somewhere in your definition. It is a bit of a misleading hint, though, the best definition of possible-hands will not use append in the outermost application experession, as shown in the provided code.
- 27 January: Class 5: Notes
- 26 January: Scientists create world's densest memory circuit, CNN, 25 January 2007: 100 Billion bits in a square centimeter = 28 Trillion bits in a cubic foot (size of Apollo Guidance computer)!
- 25 January: There is a new version of poker.scm available that fixes some problems in the original version. Please update your installation with the new version.
- 24 January: Class 4: Notes, Slides [PDF]
- 23 January: We have an addition assistant coach, Dan Marcus. He will have lab hours Tuesdays, 6:30-8:00pm and Wednesdays, 4-5:30.
- 22 January: The survey responses (including my answers to your questions) are now posted
- 22 January: Everyone in the class should now be on the course mailing list, and have received a message with the Problem Set 2 partner assignments. If you are in the class, but didn't receive this, let me know.
- 22 January: Class 3: Notes, Slides [PDF]; Chapter 4, Chapter 5, Problem Set 2
- 22 January: Revised versions of Chapter 2 and Chapter 3 of the course book are now available. Thanks to everyone who sent in corrections and suggestions!
- 22 January: My office hours are scheduled for Wednesdays at 1pm (right after class) and Thursdays at 3:30-4:30. If you cannot make the scheduled office hours, please email me to arrange another time to meet.
- 22 January: The description of the = primitive procedure in the course book is wrong (thanks to Eric Montgomery for pointing this out). The = primitive procedure only works on numbers. The equal? primitive procedure can be used to compare any two values.
- 20 January: If you are installing DrScheme on your own computer, please use Version 352 (the same version that is installed in lab). (The Lab guide mistakenly previously said to use Version 205 which is incompatible with Version 352 and will not work correctly for PS1). Here is the link to download DrScheme: http://download.plt-scheme.org/drscheme/v352.html. Note: you can work on your own computer if you want, but we strongly recommend doing the assignments in the Small Hall lab so you can take advantage of help from the assistant coaches and your classmates.
- 19 January: Class 2: Notes, Slides [PDF]
- 18 January: If you downloaded the ps1.zip file before 8:15pm Thursday, there was a problem with the mosaic.ss file because of a new DrScheme version in lab. Please download the new mosaic.ss file here: mosiac.ss and replace the original version of the file with this one. (If you downloaded the zip file later, it contains the fixed mosaic.ss file.)
- 17 January: Class 1: Notes, Slides [PDF]
- 17 January: Class 1 handouts: Syllabus, Course Pledge, Problem Set 1, Course Book: Chapter 2, Chapter 3; Lab Guide (on-line only)
- There will be additional staffed lab hours Friday immediately after class. These are in addition to the normally scheduled lab hours Thursday (6-9pm), Sunday (4-5:30pm and 8-9:30pm), and Tuesday (5-6:30pm).
- For an idea of what the course will be like, here are the course websites and evaluations from previous semesters:
- The required text for CS150 is: Gödel, Escher, Bach: An Eternal Golden Braid, by Douglas R. Hofstadter (referred to as GEB) [Amazon, $14.96] [UVa Bookstore, $22]
- Wednesday, 17 January: Classes Begin
- Thursday, 18 January (11:59pm): Registration Survey
- Friday, 19 January: Read Course Book Chapters 2 and 3; GEB, p. 3-41.
- Monday, 22 January: Problem Set 1, Course Pledge
- Week of 22 January: Read Chapter 4 and Chapter 5 of the course book.
- Thursday, 1 February (3:30): There will be an interesting talk Thursday at 3:30 in MEC 205. Steve Huffman, a recent UVa graduate, will talk about his experiences starting and growing reddit.com, a company he cofounded to build a community filtering web site, which was purchased by Conde Nast. This talk should be interesting to all cs150 students.
- Friday, 2 February (beginning of class): Problem Set 2 (Note: Problem Set 2 will be accepted without penalty or any permission required until the beginning of class on Monday, 5 February, as long as you promise to still finish reading GEB Chapter 5 before Monday's class.)
- (extended from 29 January) Before Monday, 5 February: Read Little Harmonic Labyrinth and Chapter 5 from GEB.
- Monday, 12 February (beginning of class): Problem Set 3 [Submit PS3 Image]
- week of 12 February: Read Chapter 6 and Chapter 7
- Monday, 19 February (beginning of class): Problem Set 4
- Wednesday, 21 February, 6:30pm in Olsson 228E: Exam Review Session
- Friday, 23 February (end of class): Exam 1 out
- 26 February: Exam 1: [PDF] [Word answer template]
- Tuesday, 27 February: If you want to be assigned a partner for PS5, email me before midnight Tuesday.
- week of 26 February: Read Chapters 8 and 9
- Before Friday, 2 March (postponed from 21 February, and corrected from "30 February"): Read Neil DeGrasse Tyson's Science's Endless Golden Age (watching Tyson's explanation of the history of the universe on The Daily Show is not required)
- Tuesday, 13 March (7:30pm): Chaos Games and Fractal Images talk by Robert Devaney (Boston University) in Physics 203
- Wednesday, 14 March: Problem Set 5
- Read before 17 March: Chapter 10
- Before Monday, 19 March: Read rest of GEB part I (Chapters 2-4 and 6-9, in addition to Chapters 1 and 5 you have already read). (There will be a short quiz in class on Monday, 19 March.)
- week of 19 March: read Chapter 11
- Friday, 23 March: Problem Set 6 (Problem Set 6 will be accepted without penalty until Monday, 26 March)
- Monday, 26 March (last day to arrange super ambitious ps9 project instead of ps7 and ps8)
- week of 2 April: read Chapter 13
- Friday, 6 April: Problem Set 7
- Monday, 9 April (extended from Wednesday, 4 April): Last day to arrange extra ambitious ps9 project instead of ps8.
- Monday, 9 April: Project teams and ideas for PS9
- Friday, 13 April: Problem Set 8
- Monday, 16 April: Project Descriptions (will be accepted by email until midnight Wednesday night, 18 April)
- Friday, 20 April: Exam 2 [Word] [PDF] (out Monday, 16 April)
- Friday, 27 April (11:59pm): Presentation Qualification
- Monday, 30 April: Project Presentations (Problem Set 9)
- Wednesday, 2 May (5pm): Project Reports (if your team did not do a presentation)
- Monday, 7 May: Course Improvement Survey [PDF] [Word Template]
- Monday, 7 May: Last day to turn in Final Exam (out Monday, 30 April)