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