DOC PREVIEW
Duke CPS 108 - Notes

This preview shows page 1-2-3 out of 10 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 10 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 10 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 10 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 10 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Software Design15.1Compsci 108z Object oriented design and programming of medium-sized projects in groups using modern tools and practices in meaningful ways (written Spring, 2004)z High level OO concepts¾ XP: Extreme Programming: simplicity, refactor, grow code¾ Tell, don't ask: designing classes¾ Open/Closed: open to extension, closed to modificationz Learn to manage time, improve coding methods, e.g., can you really code effectively at 3:00 am?Software Design15.2Essential Design Patterns (by name)z MVC, aka Observer/Observable¾ Separate concerns, especially important for GUIsz Composite¾ Container is/contains JComponent: File/Directoryz Factory¾ Separate creation from class, install new creatorsz Proxy/Adapter¾ Stand-in with same interface, adapt interface as neededz Decorator¾ Is-a and Has-a, e.g., Filters and java I/Oz Command¾ Function/request object, undoable actionSoftware Design15.3Patterns continuedz Singleton¾ Enforce single point of creation, conserve resourcesz Template method¾ Hooks filled in by sublcassesz Iterator¾ Common from previous courses, essential in Javaz Strategy¾ Human player, AI, change algorithmz Forces in a problem lead to solution via appropriate pattern¾ Should know what GOF is: gang of fourSoftware Design15.4Something old, something newz Compsci 108 has used Java since 1996 always with C++¾ Before ’96 used Tcl/Tk once and Python once¾ In Fall '04 CPS 6/100 moved to Java, consequences?¾ What is the purpose of Compsci 108?z Is Unix an issue? Command-line? What about all Eclipse?¾ Do we need to use/understand the command line?¾ C++, Makefiles, …?z What about groups?¾ 110 model, keep same group always¾ 108 model, chaotic? Re-randomize? Always choice?Software Design15.5Alan Kay, winner of 2004 Turing Awardz Alto, Smalltalk, Squeak, Object-Oriented Programming"Don't worry about what anybody else is going to do… The best way to predict the future is to invent it. Really smart people with reasonable funding can do just about anything that doesn't violate too many of Newton's Laws!"Software Design15.6Alan Kay on Education and OOz "By the time I got to school, I had already read a couple hundred books. I knew in the first grade that they were lying to me because I had already been exposed to other points of view. School is basically about one point of view -- the one the teacher has or the textbooks have. They don't like the idea of having different points of view, so it was a battle. Of course Iwould pipe up with my five-year-old voice."z Java and C++ make you think that the new ideas are like the old ones. Java is the most distressing thing to hit computing since MS-DOS. z I invented the term "Object-Oriented", and I can tell you I did not have C++ in mind.Software Design15.7Compsci 108z Learn how to readz Learn how to invent your own standardsz Learn to work in a groupz Learn about issues in developing programs and codez Learn about design methodologies like XPz Should Compsci 108 be a writing course?¾ Don't you write code?¾ Don't you revise code?¾ Is this what the writing requirement is about?¾ What about writing "in the discipline?Software Design15.8Evaluationz Nanogoogle¾ Started very well, revisions ok¾ Didn't review work, analyze as much as could have been possiblez ExplorerTools¾ Browser good, but where was the rest of the explorer stuff?¾ Again, post-project analysis weakz Freecell¾ Text-based version to GUI version seemed to work from my perspective, GUI-sharing???z C++¾ Disappointing, should have had bigger project?Software Design15.9Evaluation continuedz Markov exam/project¾ I'll tell you more when I'm done with it, seemed to go well form a 30,000 foot viewz Readings¾ Started well, sputtered¾ HFDP? z Code examples¾ Need to have groups do code walkthroughs to class¾ Going over code in class?¾ Refactoring projects for all code discussed?Software Design15.10Future of Compsci 108z Start with Java, end with C++? No C++? All C++?¾ Where does C and C++ programming goz Use Java, concentrate on web programming?¾ PHP? Other alternatives?z Where does it fit in Compsci/Engineering/Bioinformatics?¾ Should we be concerned about these?z Followup courses?¾ 109?


View Full Document

Duke CPS 108 - Notes

Download Notes
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Notes and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Notes 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?