Welcome to CS2390, Summer 1997!


banner picture

Welcome to CS 2390, Summer 1997

News and Announcements will be posted on the News Page. (Last updated 8/28/97; 9:47:29 AM).

NEW! Direct access to lectures via Volunteer Index.

General Information

Site Outline

2390 FAQ
assignments
  Design Assignment
  Design A Corporate Information System
  Programming Assignment #1
  Programming Assignment #2
  Plan a subway route and move people along it.
  Programming Assignment 3
  Design AND IMPLEMENT A Corporate Information System
Criteria for good OOA/OOD
  A list of suggestions gathered over several quarters of the course
Design Documentation
  What's required to be handed in with an assignment
downloads
  ContactManager.st
  Count.st
  CViews.st
  Count Views (needs UI package!)
  Museum Simulation
  Example simulation - you need the simpkg to run it
  SimPkg.st
  Simulation package
  simulation-demos.st
  UI.st
  User interface package
  Vending.st
  Vending machine PDC
  VViews.st
  Vending machine view classes (Needs UI package!)
facilities
  Introduction to MMC-CaMILE
  What we use instead of a newsgroup
  Introduction to STABLE
  A case library of past successful Smalltalk and C++ projects.
  Introduction to the Turn-In System
  Provides a receipt and forwards to the grading TA
Grading Policy
  What you'll be required to do and what it will be worth
Joke
labs
  Lab #2 Errata
  Lab #2: Introducing the Debugger
  Lab 3 - Star Trek
  Lab 4: Blocks and OrderedCollections
  Lab 6: Debugging in C++
  Lab 7 - The Visualizer
  Lab 8
  Lab1
  Extending the Muppets Lab
  Lab5 - Extending the Museum
  Policy on Labs
  Grading and Turn-ins
Learning Objectives
  What you should get out of this class
lectures
  count
  Finishing up IntegerCount
  Introducing the Problem
  Now, Creating the IntegerCount
  OOA: Flexibility and Reusability
  OOA: Flexibility
  OOA: Object-Oriented Analysis
  OOA: What do we need?
  OOD: Object-Oriented Design
  OOP: Accessing
  OOP: Counting Methods
  OOP: Initialization
  OOP: Object-Oriented Programming
  OOP: Profit
  Profit testing
  Testing Flexibility: Creating a DateCount
  Testing Reuse: Profit Calculation
  Testing
  The Count Slides
  The Count
  countui
  Changes to Count
  Changes to IntegerCount
  Coding the User Interface: Collect the Subcomponents
  Coding the User Interface: Display Area
  Coding the User Interface: Make the Decrement button
  Coding the User Interface: Other Buttons
  Coding the User Interface: The Window
  Count UI Slides
  Creating UI in an O-O Way
  Defining a User-Interface for Count
  How does the View find out that it must update?
  Important Observations:
  Model-View-Controller Approach
  MVC using the Coad and Nicola User-Interface Library
  Picture of MVC Update Process
  Using the UI
  datastruct
  Bags vs. Sets
  Collections Hierarchy
  Demonstrating do:
  Differences between select:, reject:, and detect:
  Examples:
  Games with symbols
  inject: is actually select: or reject: or...
  Interval
  LinkedList
  master
  Operations on Collections
  OrderedCollection new methods
  Other ways to use inject: (functional programming)
  Pre-Defined Data Structures in Smalltalk
  SequenceableCollection New Abilities
  Side note: Tokenizing
  SortedCollection
  Strings and Texts
  Symbols
  What collect: and inject: do
  Event-Driven Programming
  Index to Lectures
  introcplusplus
  Accessing Member Data
  Brief History
  C++ is not Smalltalk
  C++ is...
  Class templates: Parameterizing types!
  Constructors and Destructors
  Creating objects at run-time and overriding
  Data hiding in C++
  Declaring Classes in C++
  Declaring variables
  Deriving from a Base Class other than Public
  Filling in the functions: Constructors
  Filling in the functions: Output
  Fixing the Class Declarations
  Handling input, too
  Hiding Inherited Classes
  If you never expect to use the base function...
  Introduction to C++
  Main
  master
  Multiple Inheritance in C++: Declaring two base classes
  Multiple Inheritance in C++: Using both classes in a derived class
  Overloading Functions in C++
  Overloading operators in C++
  Parameterized Version
  Pointers in C/C++
  References in C++
  Roles for Multiple Inheritance
  Running the wrong version
  Slightly More Advanced Topics in C++
  Smalltalk Data Hiding in C++ Terms
  Terminology in C++
  Using the new classes
  Why didn't each car use its own display_short_name?
  Your First C++ Program
  Introduction to Simulations
  Starting to use the SimPkg
  Introduction to Smalltalk
  First pieces of Smalltalk.
  Java
  modeling
  A Different Perspective on How We Program:
  Course Issues
  Introduction to CS2390
  Introduction to Modeling
  Issues in Object Modeling
  Modeling slides
  Object-Oriented Modeling
  Parts of the Product
  Stages of the Process
  Starting the Tour of Smalltalk
  The Language of O-O
  Using Objects to Make Programming Easier or Faster: Inheritance
  Ways to Model Objects
  More on Simulations
  Examples from Goldberg & Robson
  rdd
  Component, Responsibility, Collaborator (CRC) Cards
  Coupling and Cohesion
  Goals in Specifying Components and Behavior
  Interaction Diagrams
  Parnas' Principles: Interface and Implementation
  RDD Master
  Responsibility-Driven Design
  Tasks in RDD
  That's what O-O is all about
  Why CRC Cards?
  vend
  A Scenario Script for DispensingHolder and Item
  An Improved Scenario Script
  Another way to patch printString
  Building the CashDevice
  CashDevice Accessing
  Coad and Nicola's OOA for the Vending Machine
  Connecting and Vending in Item
  Connection and Cash Collecting
  Critique
  Defining Item
  Designing a Vending Machine
  Dispensing
  DispensingHolder Connections
  Doing OOA/OOD/OOP in two pieces
  DON'T GO ANY FURTHER!
  Example #1
  Example #2
  Example with CashDevice
  Final Forms of Testing and Vending in Item
  Item's Accessors
  Modifications Needed to Item for CashDevice
  Programming the class DispensingHolder
  Second Part: Adding in the CashDevice
  Simulating
  Testing and Simulating
  The BIG EXAMPLE!
  Vending Machine Slides
  vendUI
  CashDeviceView
  Choices: Item and CashDevice
  Designing UI for the Vending Machine
  Finishing up CashDeviceView
  Finishing up ItemViewContainer
  ItemViewContainer Pieces
  ItemViewContainer
  Maing Necessary Changes in DispensingHolder
  More CashDeviceView
  Recall MVC
  Vend UI Slides
  vwui
  ...And from the Caller.
  Adding the Add Button
  Adding the Company label
  Adding the Company Textfield
  And the update side...
  And what's a LookPreference?
  Benefits of MVC
  ContactManager accessing
  ContactManager add
  ContactManager Class
  ContactManager currentName
  ContactManager delete
  ContactManager open
  ContactManager openOn:
  Creating User Interfaces in VisualWorks
  Dependency Implementation
  Dependency Mechanisms in VisualWorks
  Doing the open
  Here's the Transcript:
  Making the SelectionList
  Now that we have it all entered, let's start changing it!
  Our Example Application: ContactManager
  Process of Creating an MVC Application
  Reaching the Dependents
  Suggested activities at this point:
  UI without MVC: Dialogs
  UI without MVC: Menus
  VisualWorks UI Slides
Links
  Useful Web Sites
News
notes
  Design Assignment #1 Grading Criteria
  Lab2 Grading Criteria
  PA1 Criteria
  PA2 Grading Criteria
  Re: Visual works...
  VisualWorks in CoC
reviews
  Final Exam Review
  Problems from past final exams. Strongly recommended that you try these!
  Midterm Review
  Problems from past midterms. Strongly recommended that you try these!
Roll
  Here's who I have in the class, as your MMC user names
Schedule for Class
  Here's where you find when the subjects are going to be covered
survey
  Survey on Debugging
Volunteer Index


News Page | CS2390 Sum'97 Home Page | MMC-CaMILE | STABLE
Questions/comments/concerns to guzdial@cc.gatech.edu
Page last updated 8/28/97; 10:24:21 AM