CSC151 2010S, Class 56: Wrapup Overview: * About the final. * The subject matter of the course. * Course evaluation. * Final comments. Admin: * EC for Patent Presentation at 4:15 * EC for Collegium at noon in Bucksbaum Rotunda * EC for Fundamentals of Acting at the Wall at 7:30 * There is no reading for next week. * Please let me know by Monday whether or not you plan to take the final. * Tenative grades distributed last night. * Detailed project comments coming early next week. * Congratulations to our quiz winners. About the final * Optional * Cannot hurt your grade! * 9 a.m. Wednesday, May 19 * PLEASE LET ME KNOW IF YOU'RE GOING TO TAKE IT! * In class. * Written. * One 8.5x11 page of hand-written notes. * Comprehensive. * Four problems. * Standard SamR four-problem grading format. CSC 151 has *multiple* subject matters * Scheme programming * Programming in general * Digital art(?) * Computer science * Broader lessons * World view * Anything else that doesn't fit Scheme Programming * define to associate a name with a value * Conditionals (if TEST CONSEQUENT ALTERNATE) (cond ((TEST CONSEQUENT) (TEST CONSEQUENT)) (else ALTERNATE)) (when TEST CONSEQUENT) * We define functions with (lambda (params) body) General Programming * Testing * The value of naming * Conditionals * Different data structures are possible, and it's worthwhile to think about which one to use (e.g., lists vs. vectors have different benefits) * Functions encapsulate something * Functions provide a useful way to build larger programs * Anonymous procedures - They can be useful * Refactoring: If you do the same thing twice in a program, you should factor out the commonalities so that the next time it's easier to do * Documentation is useful because it helps others Digital Art * Color and computer representations thereof * Negative space can be a positive * Patterns and their use and abuse * Turtles are better artists than most Grinnell students Computer Science * The beauty of RECURSION * For defining algorithms * For defining data structures (lists, numbers, trees) * We can talk about "beautiful" programs (or at least an asthetics of programs), e.g. concise programs are more aestheitcally pleasing * Three broad ways of thinking about writing algorithms * Imperatively, with state * By sending messages to objects (turtles) * Purely in a functional style * Computer science is more than programming * Classics: (Trees, Lists) (Binary Search) Broader Lessons * How to think on your feet * Maybe it would be a good idea to do the reading BEFORE class. * Working with other people can be fun, productive, and helpful * Reinforced benefits of a liberal arts education: Exercise more parts of your brain * Copyright is evil World View * Have fun! * Computers are sentient and malicious! * There are great people here at Grinnell. Support each other. * There's more to life than computer science (or than any academic discipline) * Drink moderately * Get enough sleep! * It can be funny when things go wrong! And Beyond * Sam can't type * Some artists are appropriately biased against cat landscapes * Um x 5 * Sam is too nice * Why my not-so-little brother told me to take CS * Sometimes the prof will answer for you * How to make yourself a sandwich