cs2340: Objects and Design - PowerPoint PPT Presentation

1 / 19
About This Presentation
Title:

cs2340: Objects and Design

Description:

Introduction to the Class. 2. Reading. Required Text ... M9 (The twist) 5% Introduction to the Class. 12. Programming Assignments (M1 and M2) ... – PowerPoint PPT presentation

Number of Views:49
Avg rating:3.0/5.0
Slides: 20
Provided by: joche1
Category:
Tags: cs2340 | design | objects | text | twist

less

Transcript and Presenter's Notes

Title: cs2340: Objects and Design


1
cs2340 Objects and Design
  • Spring 2007

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
  • Visualworks documentation

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.4.1nc
  • 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 -gt Domain Model / Application
    Model -gt View -gt 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
  • Agile Development A set of OO software
    engineering methods that had their 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 (46)
  • Midterm - 20
  • Final - 26
  • Individual Assignments (10)
  • HW 1 2 (Intro to Smalltalk)
  • M1 (initial implementation) 4
  • M2 (initial gui development) 4
  • 6 Group Project Milestones (44)
  • M3 (Practice group design) 8
  • M4 (Domain design) -- 8
  • M5 (Application/Gui design) -- 8
  • M6 (Domain implementation) -- 5
  • M7 (Gui implementation) 5
  • M8 (UI Evaluation) 5
  • M9 (The twist) 5

12
Programming Assignments (M1 and M2)
  • 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
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 Smallgraph Graph Editor
    and Algorithms (See JGraph project)

14
SmallGraph
  • A Framework for representing graphs
  • A set of common algorithms
  • A graphical editing environment
  • A twist

15
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

16
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

17
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.

18
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.

19
Next on the Menu
  • History of OO/ Object Theory
  • Programming in Smalltalk
  • Using Visualworks
Write a Comment
User Comments (0)
About PowerShow.com