CS115 lecture notes, Spring 1999 Week 13, Friday Evaluations? Donuts! EXAM REVIEW: Emphasis on 9-13, although everything is fair game. Only the alternate versions of 12 and 13, not the original. Some state diagramming: including all kinds: object (box and arrow) iteration tables, stack diagrams, arrays and objects Some algorithm design: use abstract building blocks and pseudocode to describe algorithms at the high level without getting bogged down in details Some programming: bring lots of code samples so you can copy code fragments and avoid syntax errors. Some vocabulary: review class notes as well as glossaries Some debugging: Sharpen those red pencil eyes. What have we learned? --------------------- How to program in Java? Not really. There are three styles of programming: 1) functional -- all methods are pure functions, no multiple assignment to single variable primary tool for repetition is recursion 2) procedural -- problems divided into methods, primary tool for repetition is iteration 3) object-oriented We've been learning something that is mostly (2) with a hint of (1). Most Java programs are mostly (3) with a healthy dose of (2). Read the original Chapters 11-13 for an introduction to object-oriented programming. Or take cs231. At the beginning of the semester we will make the transition from procedural to object-oriented. So what _have_ we learned? -------------------------- 1) abstraction: extending the existing language by defining new methods and then using those new methods as abstract tools for solving bigger problems (toolkit building) 2) problem recognition: toolkit using 3) debugging: the skills we practiced for tracking down errors are applicable in a wide range of situations 4) algorithm design and analysis: algorithms, as general problem-solving patterns, are useful in many areas outside programming, like telling other people what to do.