CSE687 - Object Oriented Design

Lecture #5 - Abstract Data Types (continued)

Revised: 26 January 2008
Home Courses Code Handouts CoreTech Books Articles Math Research Masters Projects SWDev WebDev News OtherLinks SiteDesign Graduates AllPages Office Hours Notices Contents

CSE681-SWMAA CSE686-IP CSE687-OOD CSE775-DO CSE776-DP CSE778-AWP CSE784-SWS

Lecture #01 Lecture #02 Lecture #03 Lecture #04 Lecture #05 Lecture #06 Lecture #07
Lecture #08 Lecture #09 Lecture #10 Lecture #11 Lecture #12 Lecture #13 Lecture #14
Lecture #15 Lecture #16 Lecture #17 Lecture #18 Lecture #19 Lecture #20 Lecture #21
Lecture #22 Lecture #23 Lecture #24 Lecture #25 Lecture #26 Lecture #27 Lecture #28

Contents Syllabus SG - Design SG - Templates SG - Class Relationships

Web Resources:

Stroustrup's Home Page, Assoc. of C/C++ Users, C++ at Microsoft, Code Project, Sells Brothers, Guru of the Week, C/C++ User's Journal, devCentral, Dr. Dobb's Journal, Boost Library, techNetCast

Office Hours: Instructor & TAs

Content:

This lecture finishes Abstract Data Types, then presents templates, a type safe replacement for macros. We will show later in the course how templates are used in the Standard Template Library to provide a powerful set of algorithms and data structures.
  1. Syllabus
    Describes topics to be covered, reading material for you to digest before coming to class, and due dates for the assigned projects.
  2. Project #1
    Building profilers introduces you to C++ scope and communication mechanisms.
  3. Project #2
    This project introduces you to graphs and XML processing.
  4. Build Tools, startup.bat, VS Help
  5. Abstract Data Types Presentation
    What does it take to make objects of your class behave like built in types?
  6. STR class
    This is a good example of an ADT. It is presented as a nice example. You should prefer the std::string class for all your development work.
  7. C++ Operators
  8. vector3D
    An example of an Abstract Data Type that is rich in operators. Shows the accepted style for building ADT classes with mathematical operations.
  9. Namespaces
    Basic information about how namespaces work. We will discuss why you want to use them.
  10. Templates Presentation
    Templates are one of the terrific features of the C++ language. They are the basis of the Standard Template Library (STL) and are useful in day-to-day programming.
  11. Software Design
  12. Design Rules
    Design rules and idioms that transcend Object Oriented Design.