CSC151 2007S, Class 55: Wrapup Admin: * Exam stuff! * EC for attending the G-tones concert that may be Monday in the study break at the library. Overview: * The subject matter of the course. * Course evaluation. * Final thoughts. What one might learn in 151 The Scheme Programming Language * How to name things define, let * How to define procedures * How to apply procedures * Conditionals * How to write recursive procedures * Interpreting errors * Check your parens * Ways to organize data: Trees, Lists, Vectors, Files * And procedures to deal with each * The random procedure * throw * Booleans * Function composition and other higher-order techniques (left-section, map, etc.) Programming Images * The GIMP * Creating images with region.compute-pixels! * Manipulating existing iamges with image.map * You often need Math to solve graphical problems * How images are stored * RGB colors and techniques for transofrmig them * Color theory * A bit of design * Scaling Computer Science * The basic idea: CS is the study of algorithms and data * Algorithm: Instructions for doing something (usually on the computer) * Key techniques in computer science * Recursion * Divide-and-conquer solutions * Great ideas in CS * Sorting * Searching * An algorithm is more than code: Documentation is equally important * Need to think formally about problems * Preconditions * Precondition checking * Postconditions * Interpreting errors * You often need Math to solve interesting problems * The benefits of randomness * How some things are represented internally (ASCII, lists, trees, etc.) * Ways to understand algorithms and procedures other people have written * Also looking at efficiency * And correctness Computer Science is the Study of Problem Solving * Break large problems down into smaller parts * Sometimes you hit a brick wall (or it hits you) * Get help * Work with others * Interpreting errors More General Skills * Group work skills * Bullshit on your feet * It's okay to say "I don't know" (but not always)a * It's okay to try, even if you might fail * Have fun! * Support each other * Interpreting errors * Spelling is optionaql * "Um" is the default answer * Computers are sentient and malicious