cps 108
Download
Skip this Video
Download Presentation
CPS 108

Loading in 2 Seconds...

play fullscreen
1 / 8

CPS 108 - PowerPoint PPT Presentation


  • 78 Views
  • Uploaded on

CPS 108. Object oriented design and programming of medium-sized projects in groups using modern tools and practices in meaningful ways High level OO concepts XP: Extreme Programming: simplicity, refactor, grow code Tell, don\'t ask: designing classes

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' CPS 108' - kiona-lindsay


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
cps 108
CPS 108
  • Object oriented design and programming of medium-sized projects in groups using modern tools and practices in meaningful ways
  • High level OO concepts
    • XP: Extreme Programming: simplicity, refactor, grow code
    • Tell, don\'t ask: designing classes
    • Open/Closed: open to extension, closed to modification
  • Learn to manage time, improve coding methods, e.g., can you really code effectively at 3:00 am?
essential design patterns by name
Essential Design Patterns (by name)
  • MVC, aka Observer/Observable
    • Separate concerns, especially important for GUIs
  • Composite
    • Container is/contains JComponent: File/Directory
  • Factory
    • Separate creation from class, install new creators
  • Proxy/Adapter
    • Stand-in with same interface, adapt interface as needed
  • Decorator
    • Is-a and Has-a, e.g., Filters and java I/O
  • Command
    • Function/request object, undoable action
patterns continued
Patterns continued
  • Singleton
    • Enforce single point of creation, conserve resources
  • Template method
    • Hooks filled in by sublcasses
  • Iterator
    • Common from previous courses, essential in Java
  • Strategy
    • Human player, AI, change algorithm
  • Forces in a problem lead to solution via appropriate pattern
    • Should know what GOF is: gang of four
something old something new
Something old, something new
  • CPS 108 has used Java since 1996 always with C++
    • Before ’96 used Tcl/Tk or Python
    • Starting with Java is problematic, what to read?
    • What if 6/100 move to Java?
  • Is Unix an issue? More time with Windows programming environments? Linux or Mac?
    • Eclipse as cross-platform environment
  • What about groups?
    • 110 model, keep same group always
    • 108 model, chaotic? Re-randomize? Always choice?
slide5
OOGA
  • Architectural issues important, leverage a good system-level architecture into easier-to-develop games/programs
    • Ambitious groups can get away without an architecture, but a good architecture really helped ease development
    • MVC really worked, better than in the past?
  • Networking comes too late? Not next time?
  • Should require an AI for some games, talk about this or provide code?
  • Card games would also be architecturally interesting
    • Solitaire? Other games? Build on freecell?
post mortem evaluation
Need smaller programs ? Mastery projects?

C++ inheritance, templates, low-level C, sockets

Java GUI, threads, web, network

Success: OOGA, Freecell (kind of)

Failure: Hyperwag

Success: Set your own standards, don’t meet my requirements

Failure: Reading about software, aesthetics, ethics, …

Failure: feedback

Success: coding examples, MVC

Failure: feedback

Success/Failure: understanding group dynamics

Failure: coding standards

Failure: using books

Success: pattern examples

Failure: pattern re-use

Success: tell don\'t ask

Overall grade: _______

Post-mortem evaluation
why is programming fun
Why is programming fun?

What delights may its practitioner expect as a reward?

First is the sheer joy of making things

Second is the pleasure of making things that are useful

Third is the fascination of fashioning complex puzzle-like objects of interlocking moving parts

Fourth is the joy of always learning

Finally, there is the delight of working in such a tractable medium. The programmer, like the poet, works only slightly removed from pure thought-stuff.

Fred Brooks

fred brooks
Fred Brooks
  • … on computing pioneer Howard Aiken "the problem was not to keep people from stealing your ideas, but to make them steal them."
  • Duke valedictorian 1953, started UNC Computer Science Dept in 1964, won Turing Award in 1999
  • Mythical-Man Month, "Adding man-power to a late project makes it later", … "There is no silver-bullet for Software Engineering… [because of essential complexity]"
  • Chaired Executive Committee of the Central-Carolina Billy Graham Crusade in 1973
ad