Cps 108
This presentation is the property of its rightful owner.
Sponsored Links
1 / 8

CPS 108 PowerPoint PPT Presentation


  • 32 Views
  • Uploaded on
  • Presentation posted in: General

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

Download Presentation

CPS 108

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?


Cps 108

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


  • Login