] > lecture notes

[exit lecture notes]

1 Getting Started
 1.1 Introduction
  1.1.1 The Name of the Language
  1.1.2 Programming
  1.1.3 Course Objectives
 1.2 Our Computing Environment
  1.2.1 Platform: Unix Solaris
  1.2.2 Login Information
  1.2.3 Unix Commands
  1.2.4 Text Editor: emacs
  1.2.5 Working with emacs
  1.2.6 A Text-Based Browser: lynx
  1.2.7 Making C++ Work
  1.2.8 The Making of Basic C++ Programs
 1.3 Comments
 Assignment 1: Getting Started (Due: Th, April 3)
Computation Oriented Programming
2 Data Types and Expressions
 2.1 Numeric Types
  2.1.1 Constants
  2.1.2 Operators
 2.2 Character and String Types
  2.2.1 Direct Data
  2.2.2 Indirect Data
 2.3 Variables and Assignment of Values
  2.3.1 Definitions and Assignment Operation
  2.3.2 Scope of Definitions
 2.4 A Few Libraries
  2.4.1 string: String Type
  2.4.2 iostream: Standard Input/Output
  2.4.3 fstream: File Input/Output Stream
  2.4.4 cmath: C Numerics Library
 2.5 The Working of Operators
 2.6 Type Conversions
 2.7 Reference Types
 2.8 Pointer Types
 2.9 Enumerated Types
 2.10 Classification of Primitive Types
3 Flow of Control
 3.1 Boolean Arithmetics
 3.2 Selectors
 3.3 Iterators
 3.4 Break and Continue Statements
 3.5 Goto Statements
 Assignment 2: Flow of Control (Due: Tu, April 15)
4 Abstraction Mechanisms
 4.1 Parameter-less Methods
  4.1.1 Without Returned Value (Procedure)
  4.1.2 With Returned Value (Function)
 4.2 Two Views of Methods
 4.3 Call-by-Value Parameters
 4.4 Call-by-Reference Parameters
 4.5 Call-by-Pointer Parameters
 4.6 Overloaded Methods
 4.7 Declarations
 Assignment 3: ASCII Art (Due: Th, April 24)
Object Oriented Programming
5 Designs for Programs
 5.1 Object-Oriented Designs
  5.1.1 Background
  5.1.2 Objects
  5.1.3 Classes and Instances
 5.2 Application Programming Interfaces (APIs)
  5.2.1 A Peek at Programmed Classes
  5.2.2 A Peek at Programming without Object-Oriented Support
  5.2.3 From Object-Oriented Designs to API’s
  5.2.4 Classes as Data Types
6 Coding and Using Classes
 6.1 Constructors of Objects
  6.1.1 Declaration and Usage of Constructors
  6.1.2 Definition of Constrctors
  6.1.3 Short Cuts
 6.2 Fields and Methods
  6.2.1 Instance and Class Members
  6.2.2 Scope of Declarations
 6.3 Examples
  6.3.1 Using Classes
  6.3.2 Programming classes
 Assignment 4: Classes (Due: Th, May 15)
 6.4 Location of Definitions for Class Members
 6.5 Destructors
7 Inheritance
 7.1 Base and Derived Classes
 7.2 Members Overriding
 7.3 Multiple Inheritance
 7.4 Constructors
 7.5 Initialization Lists
 7.6 Modes of Inheritance
 Assignment 5: Inheritance (Due: Th, May 22)
8 Binding Members to Pointers
 8.1 The Variable ‘this’
 8.2 Notations
 8.3 Static Binding
 8.4 Virtual Functions and Dynamic Binding
 8.5 Pure Virtual Members
 8.6 Polymorphism
9 Templates
 9.1 Class Templates
 9.2 Offline Definitions
 9.3 Template Specialization
 9.4 Non-Type Arguments
 9.5 Default Arguments
 9.6 The C++ Standard Template Library (STL)
Getting Deeper
10 Arrays
 10.1 Linear Arrays
 10.2 Initialized Linear arrays
 10.3 Multi-Dimensional Arrays
 10.4 Initialization of Multi-Dimensional Arrays
 10.5 Pointers to Arrays
 10.6 Parameter Passing
 10.7 Strings
 Assignment 6: Arrays (Due: Th, May 29)
11 Dynamic Memory Allocation
 11.1 Scalar Objects
 11.2 Arrays of Objects
 11.3 Primitive Data Types
 11.4 Linked Objects
12 Loose Ends
 12.1 Header Files
 12.2 Namespaces
 12.3 Default Initializers for Arguments
 12.4 Command Line Parameters
 12.5 Exception Handling
 12.6 Overloading Operators