CS110 Wrapup Tuesday, May 11, 2004 • Announcements – final exam Thursday, May 20, 8:00 AM McCormack, Floor 01, Room 0608 (easier than last exam?!) – wise1 due next tonight – wise due Thursday • Wrapup – Course goals – How we met them – Final exam – Where you can go next • at UMass • in the profession wrapup 1 WISE • wise1 due tonight must compile and run • minimal functionality acceptable if (whatever) ( if (somethingElse) { // many lines of code that run // off the edge of the pap er } } wrapup 2 Learning to program • • • • Lots of fun Practical Hard, time consuming Unusual mixture: slide from lecture 1 – sophisticated intellectual content – picky details that must be right • Exercise in reading, writing, thinking • CS110 is for CS majors, future professionals wrapup 3 Teaching/learning style • To learn a language well, live in a land where it’s spoken – anxiety producing, but efficient! • Learn to write by to reading and writing and writing about what you learn • 60% of a lot is more than 100% of a little • Ask questions (to slow me down) slide from lecture 1 wrapup 4 CS110 goals • Learn to think like a programmer by reading and writing programs • Learn Java • Prepare for life as a CS major • Work hard / work productively • Have fun • Amaze yourself by how much you’ve learned wrapup 5 Teaching philosophy • Programming is much more than the details – think about the important ideas – but the details matter: learn syntax too • Read more code than you write, write about the code you read and write • Work on significant applications: Bank, shapes, Juno, WISE • Learn from lots of sources – class, books, net, API, friends • Pay as little attention to grades as possible wrapup 6 OOP • Think of the (software) world as a bunch of objects communicating with one another • Choose a language that supports that view • Java – – – – – object oriented portable fashionable well designed right for CS110 and for practical programming wrapup 7 Development Environment: xemacs • Arguments for – – – – basis for future work in major and career easy to set up on a PC java and javac are visible commands command line interface (no GUI) • Arguments against (for a modern graphical environment instead) – command line interface (no GUI, unintuitive) – old fashioned – no sparkle wrapup 8 Official Java • Keywords – http://java.sun.com/docs/books/tutorial/java/nut sandbolts/_keywords.html abstract, boolean, break, byte, case, catch, char, class, const, continue, default, do, double, else, extends, final, finally, float, for, goto, if, implements, import, instanceof, int, interface, long, native, new, package, private, protected, public, return, short, strictfp, static, super, switch, synchronized, this, throw, throws, transient, try, void, volatile, while • Other syntactic elements = + - * / \ “” ‘’ ( ) { } [ ] || && . , ; < > >= <= == % // /* */ /** ? : ! != ; += ++ wrapup 9 Vocabulary • Java API classes String, TreeMap, Iterator, ArrayList, Integer, Object, Character, File, System, *Reader, *Writer, Math, StringTokenizer, StringBuffer, Date, Exception, ... • From our applications Bank, *Account, Shape, Screen, Box, *Line, LinearEquation, Juno, Shell, ShellCommand, JFile, Directory, TextFile, User, *Exception, Terminal, WISE*, … wrapup 10 Vocabulary • For talking about programs comment, api, message, method, object, class, convention, polymorphism, token, identifier, parse, javadoc, cast, unit test, implementation, inheritance, JVM, getter, overrides, documentation, declaration, scope, parameter, argument, signature, field, variable, error, instance, block, call stack, syntax, semantics, delegate, design, model, compile time, run time, ... • Study from JOI glossary wrapup 11 Final Exam • Structure like the hour exams • Mix of easy and hard questions • Exam is three hours long but I will try to write one that takes just two • Chapters 1-9 of JOI, examples • Based on Bank 9, Juno 7 • Closed book/notes wrapup 12 Final Exam • Some questions will refer to WISE system solution (to be posted) – bring code to class • Some perfectly predictable questions – what are the tokens, classes, objects, messages, …? – in which class will you find …? – what does this program/line/method do …? • Improve WISE by adding … wrapup 13 Final Exam • Write HelloWorld.java or some similarly simple program, from scratch • Boxes and arrows • Call stack • Questions with the answer “It depends … ” • Questions that require you to write sensibly about programs and programming wrapup 14 What next? • CS210: Data Structures and Algorithms – – – – – – – interfaces (more abstract than abstract classes) lists, trees, stacks, queues dynamic data, references, equality, cloning searching, sorting, parsing, evaluating expressions efficiency considerations GUI programming more Java • CS240: Programming in C – procedural programming (not OOP) – memory layout: bits and bytes, pointers, the stack and the heap, debugging – introduction to Unix, particularly tools wrapup 15 What next? • CS major – CS210 & CS240, calculus & linear algebra, CS310, CS320, upper level work ... • Real world – Software development – QA (Quality Assurance = software testing) – IT (Information Technology = business computing infrastructure) – System administration – Technical writing – Web development/maintenance – Customer support – Your own internet startup company wrapup 16 Heaven and Earth • There are more things in heaven and earth than are dreamt of in your philosophy. (Shakespeare’s Hamlet) • There are more things dreamt of in your philosophy than are in heaven and earth. (Programmers can invent worlds that never were, nor ever could be.) wrapup 17 Thank you • I enjoyed this semester • I learned a lot • I hope you can say the same • Good luck on the exam wrapup 18