cs2340: Objects and Design - PowerPoint PPT Presentation

1 / 24
About This Presentation
Title:

cs2340: Objects and Design

Description:

Extend the Sudoku Puzzle. Sudoku. Put digits 1-9 in every row, column, and region. You are given the code for a rudimentary Sudoku puzzle and asked to extend it ... – PowerPoint PPT presentation

Number of Views:66
Avg rating:3.0/5.0
Slides: 25
Provided by: joche1
Category:

less

Transcript and Presenter's Notes

Title: cs2340: Objects and Design


1
cs2340 Objects and Design
  • Fall 2006

2
Reading
  • Required Text
  • Object Design Roles, Responsibilities, and
    Collaborations, Rebecca Wirfs-Brock, 2003
  • Recommended Text
  • The CRC Card Book
  • Supplemental Reading
  • Available on the CoWeb/Web Page
  • http//web.engr.oregonstate.edu/budd/Books/oopint
    ro3e/info/ReadMe.html
  • Smalltalk Books at http//www.iam.unibe.ch/ducas
    se/FreeBooks.html

3
Online Resources
  • The CoWeb
  • http//coweb.cc.gatech.edu/cs2340
  • An editable website with over 5000 pages
  • The primary source of information for this class
    Whos who schedule, software, assignments, etc.
  • The Newsgroup
  • git.cc.class.cs2340
  • Used primarily for announcements and questions
  • Readings
  • Off Class website

4
Learning Goals (page 1)
  • Object-Oriented Programming
  • But, didnt we learn that in cs1322?
  • No, you learned how to program with objects.
  • Its not the same thing.
  • In this class, you learn good object-oriented
    programming style, with emphasis on ANALYSIS and
    DESIGN
  • To help you learn OO programming, you will learn
    a new language - Smalltalk

5
Why Smalltalk?
  • Smalltalk is the canonical example of a
    class-based OO language
  • Many of the important concepts in OO programming
    become clear in Smalltalk
  • Everything is an object
  • Instance vs. Class
  • Message Passing
  • As a late-bound language, Smalltalk has
    high-level tools to help you be a better OO
    programmer

6
Where is Squeak?
  • This semester we will use a commercial Smalltalk
    environment, Cincom Visualworks.
  • Visualworks is free for non-commercial use and
    has excellent documentation (albeit not oriented
    towards beginners).
  • Look for manuals in the doc directory of the
    installation.

7
Downloading Visualworks
  • Current version is 7.4nc
  • Available from company website at
  • http//smalltalk.cincom.com/downloads/index.ssp?co
    ntentsmalltalk

8
Learning Goals (page 2)
  • Object-Oriented Process
  • Writing good OO code often requires doing a good
    job with the design beforehand
  • Object-Oriented Analysis (OOA)
  • Class Responsibility Collaboration Cards
  • Use Scenarios and CRC Cards to get your design on
    the right track
  • Object-Oriented Design (OOD)
  • UML
  • Theory and Rules of Design
  • Design Validation

9
Learning Goals (page 3)
  • User Interfaces (2 Orthogonal Topics)
  • Programming GUIs in an OO manner
  • Model View Controller (MVC)
  • Visualworks model - Domain Model / Application
    Model - View - Controller
  • Usability
  • Just because a user interface is well designed
    from a programming standpoint does not mean that
    it is usable by others.
  • Object-Oriented Programming (OOP)
  • Smalltalk language
  • Patterns/Idioms
  • Object-Oriented Testing
  • SUnit, Unit Test Theory (Review)

10
Secondary Topics
  • History of OO Programming
  • Extreme Programming An OO software engineering
    method that has its roots in Smalltalk
  • Virtual Machines and Garbage Collection Most OO
    languages use a virtual machine and garbage
    collection
  • Comparing other OO Languages

11
Grading Policy
  • 2 Exams (45)
  • Midterm - 20
  • Final - 25
  • Individual Assignments - 25
  • Program 1 5 (An addition/ enhancement to
    existing code)
  • Program 2 5 (An additional enhancement to
    existing code)
  • HW 1 2 (Intro to Smalltalk)
  • HW 2 5 (A small indiv design using CRC/UML)
  • HW 3 8 (A larger group design with
    peer-review/critique)
  • 6 Group Project Milestones (30)
  • M1 and M2 - 4 each
  • M3 8
  • M4 6
  • M5 5
  • M6 - 3 each
  • Extra Credit - 1-5
  • Only available to those that do the programming
    assignments

12
Programming Assignments
  • The Goal
  • To get you programming in Smalltalk
  • Get some exposure to separating Model and View
  • The first one is due soon, so get crackin on
    learning Smalltalk
  • Work through the Visualworks on-line tutorial at
    their web site.

13
Programming Assignment 1Extend the Sudoku Puzzle
  • Sudoku
  • Put digits 1-9 in every row, column, and region
  • You are given the code for a rudimentary Sudoku
    puzzle and asked to extend it

14
Programming Assignment 1End State
  • Update the score
  • Mark invalid cells

15
Group Project Milestones
  • Groups of 3-4
  • Not 2 Thats too easy. You need to learn how to
    work in larger groups. Plus, your partner
    dropping would be BAD.
  • Not 5 Thats either too easy (if your group
    functions well) or too hard (if your group
    functions badly).
  • This semesters project Ectropic Port to
    Visualworks

16
Ectropic
  • A collaborative design environment implemented in
    Squeak.
  • We will do a subset of this
  • CRUD CRC Cards
  • CRUD Scenarios
  • CRUD Goals
  • Tie CRC Cards to Scenarios to Goals
  • Make it graphical
  • Create a basic UML Class diagram from the CRC
    Cards

17
Group Work
  • Working in teams is tough dont underestimate it
    (Especially for those of you who did not take
    2335).
  • Be careful about who gets on your team.
  • Friends are a risky proposition
  • Slackers will cost you loads of headache
  • Work as a team
  • Hold people accountable
  • Dont just staple work together
  • Bright idea Do the CRC Cards as a team

18
Group Project Milestone 1
  • M1 Getting Started
  • Individual Code
  • M2 Initial Design
  • Create your team page on the CoWeb with members
    names
  • Do a set of CRC cards and scenarios for Ectropic
  • Mandatory Run it by a TA
  • You must be able to step through the scenarios
    using your CRC cards
  • Preferably, all group members are there
  • The TAs are there to help you understand CRC
    cards

19
Group Project Milestones 2-6
  • M3 Final CRC Analysis and Scenarios, Model
  • Mandatory Run it by a TA to make sure you are on
    the right track
  • M4 View/Controller
  • M5 UI Evaluation
  • M6 The Twist

20
Group Project Milestone 6
  • M6 The Secret Twist
  • If you have done a good job with your design, you
    should be able to adapt it easily to new
    requirements.
  • So, at the end of M5, M6 details will be
    revealed.
  • In the past, this has involved things like
    putting it on the Web or making things compatible
    between groups

21
Doing Well in this Class
  • Come to Lecture
  • We will do live code demonstrations to help you
    get started with programming.
  • If you have a laptop, try out the code being
    shown. Thats a great way to learn.
  • Learn Smalltalk quickly, start now.
  • See your Teaching Assistants
  • In particular, do it early to get the CRC cards
    right
  • They can help you with coding.
  • Show them what you are planning to turn in
    theyll advise you on making it better. SERIOUSLY

22
Doing Well in this Class
  • Learn to Code in Smalltalk
  • Do it early. Itll only hurt you to put it off.
  • Use the resources available (lecture, book,
    CoWeb, TAs)
  • Dont be afraid to come and see me if you need
    help. We are all transitioning from Squeak to
    Visualworks, so it will be a lot of fun for all.

23
Why this Class can be Aggravating
  • It is a project-based time-intensive class.
  • Teamwork is hard
  • You are learning a new language, a new
    environment, and a new paradigm for programming
    Thats tough.
  • Smalltalk is not Java Dont try to use it as
    such. You will only get frustrated.

24
Next on the Menu
  • Programming in Smalltalk
  • Using Visualworks
Write a Comment
User Comments (0)
About PowerShow.com