| count |
| 4. Design and The Count |
| Design Road Map |
| 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 |
| countui1 |
| 5. Building a UI for Count |
| Count now just announces changes |
| Count UI Version 1 |
| Count UI Version 2 |
| CountView Drawing of the Text Display |
| CountView Drawing |
| CountView2's Drawing |
| CountView2's Event Processing |
| First Pass: Direct calls |
| How buttons get processed |
| How could we get better? |
| How could we get better? |
| How Count tells CountView to Update |
| How does the View find out that it must update? |
| Important Observations |
| Individual Buttons |
| Let's build a UI (HIC) for Count |
| MyButton's Drawing |
| MyButton's Event Processing |
| Picture of MVC Update Process |
| Report Card on Version 1 |
| Report Card on Version 2 |
| Report Card on Version 3 |
| Running Version 1 |
| Running Version 2 |
| Running Version 3 |
| Second Pass: Generalized buttons |
| TextArea |
| Third Pass: Generalized text area |
| countui2 |
| 6. Count's UI in Window-based MVC |
| 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 |
| Creating UI in an O-O Way |
| Defining a User-Interface for Count |
| Example of changed/update mechanism |
| Example of Controller Functionality |
| 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 |
| Reactor class demo method |
| Transcript after demo |
| Using the UI |
| datastruct |
| 11. Data Structures in Smalltalk |
| 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 |
| 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 |
| introcc |
| 11. Introduction to C++ |
| 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 |
| 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 |
| introsims |
| moresims |
| vend |
| 7. Building a Vending Machine |
| 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! |
| vendui |
| 8. Designing the VendingMachine UI |
| 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 |