UP ONE LEVEL:
ENEL 315 Home Page
ENEL 315 L02 Lecture Information
Winter Session 1996
Note carefully!
I will not be putting my lecture notes
on line.
I expect students to attend lectures.
If you miss a lecture, the best way to get the lecture
notes is to borrow them from a fellow student.
Lectures are listed in reverse order because
readers are most likely to be looking for information
about recent lectures.
The organization of material in lectures does not
exactly match the organization of material in the textbooks,
so when I list ``related reading'', I can't be completely precise.
In some cases using the index or table of contents will help
you find additional information.
Last modified: Fri Apr 12 14:17:23 MDT 1996
Week 13
-
Lecture #37 (Fri., April 12)
-
Introduction to C++ features not covered in C++,
including the STL (Standard Template Library).
(This material will NOT be on the exam.)
-
Lecture #36 (Wed., April 10)
-
The spiral model of S/W development.
General remarks about iterative development processes.
Related reading:
-
Lecture #35 (Mon., April 8)
-
Introduction to C++ language rules related to inheritance:
memory organization for objects of derived class objects,
rules for ctors and dtors.
Related reading:
Week 12
-
Lecture #34 (Wed., April 3)
-
Virtual functions, dynamic binding, pure virtual functions,
abstract base classes.
The Visitor class - a practical example of an ABC.
Related reading:
-
Lecture #33 (Mon., April 1)
-
Public inheritance: the is-a relationship.
Introduction to virtual functions and polymorphism.
Related reading:
Week 11
-
Lecture #32 (Fri., March 29)
-
Removing a node from a binary search tree.
Efficiency of binary search tree operations.
Related reading:
-
Lecture #31 (Wed., March 27)
-
Traversals of binary trees.
Removing a node from a binary search tree.
(The next lecture will say more about this topic.)
Related reading:
-
Lecture #30 (Mon., March 25)
-
Implementation of a binary search tree in C++.
Details of the insert operation.
Related reading:
Week 10
-
Lecture #29 (Fri., March 22)
-
Introduction to binary search trees.
Related reading:
-
Lecture #28 (Wed., March 20)
-
Introduction to Big O notation.
Running times for some familiar algorithms.
Discussion of running time for quicksort.
Related reading:
-
Lecture #27 (Mon., March 18)
-
How the quicksort algorithm works.
A relatively simple partitioning algorithm.
Related reading:
Week 9
-
Lecture #26 (Fri., March 15)
-
Template instantiation issues.
Global function templates.
Related reading:
-
Lecture #25 (Wed., March 13)
-
Introduction to class templates.
Compiling and linking problems related to templates.
Related reading:
-
Lecture #24 (Mon., March 11)
-
Introduction to operator overloading.
Discussion of SimCplx (simple complex number) class.
Related reading:
Week 8
-
Lecture #23 (Fri., March 8)
-
Example use of pointers to functions.
Syntax issues related to pointers to functions.
Related reading:
-
Lecture #22 (Wed., March 6)
-
A bit more about queueing simulation.
Introduction to pointers to functions.
Related reading:
-
Lecture #21 (Mon., March 4)
-
Singly-linked list queue inmplementation.
Queue implementation using composition with
the TwoWayList class.
A queuing simulation problem.
Related reading:
Week 7
-
Lecture #20 (Fri., Feb. 23)
-
Unit testing and other methods for finding defects
in S/W components.
Introduction to the Queue ADT; implementation with
a circular array.
Related reading:
-
Lecture #19 (Wed., Feb. 21)
-
Phases in the software development cycle.
The waterfall model;
reasons why nobody really believes in the waterfall model.
Related reading:
Week 6
-
Lecture #18 (Fri., Feb. 16)
-
A stack-based solution to the airline route search problem.
Review: how to avoid leaking memory in assignment operators.
Related reading:
-
Lecture #17 (Wed., Feb. 14)
-
Array and linked-list implementations of Stacks.
Introduction to airline route search problem.
Related reading:
-
Lecture #16 (Mon., Feb. 12)
-
The interface for a Stack class.
Use of a Stack to check for balanced
parentheses and square brackets.
Related reading:
Week 5
-
Lecture #15 (Fri., Feb. 9)
-
Programming details related to describing sub-arrays.
Introduction to the stack ADT, including analogies to
stacks of dinner plates.
Related reading:
-
Lecture #14 (Wed., Feb. 7)
-
Using recursion to find a path through a maze.
Related reading:
-
Lecture #13 (Mon., Feb. 5)
-
Binary search algorithm.
General remarks about recursion.
enum types in C++.
Related reading:
Week 4
-
Lecture #12 (Fri., Feb. 2)
-
insert_first function for doubly-linked list with
dummy head node.
(But I made a mistake - I forgot to put len++ in
the function definition.)
Iterators: concept, use, implementation.
Related reading:
-
Lecture #11 (Wed., Jan. 31)
-
The Big Three (destructor, copy constructor, assignment operator).
Overview of singly-linked lists.
Introduction to a doubly-linked list with a dummy head node.
Related reading:
-
Lecture #10 (Mon., Jan. 29)
-
Copy constructors and assignment operators
- examples for Lab[3] Exercise C.
Definition of the term data structure.
Related reading:
Week 3
-
Lecture #9 (Fri., Jan. 26)
-
The null pointer in C++.
Why you no longer have to check for failure of new.
A first try at a dynamic array class.
Destructors.
Why a shallow copy isn't always the right way to copy an object.
Related reading:
-
Lecture #8 (Wed., Jan. 24)
-
Introduction to function overloading.
Introduction to use of new
and delete for free store memory management.
Related reading:
-
Lecture #7 (Mon., Jan. 22)
-
PROMISES documentation for ADT operations.
Comparison of classes with modules:
information hiding is a common design principle.
More about references in C++:
refs to const things, functions returning refs.
Related reading:
Week 2
-
Lecture #6 (Fri., Jan. 19)
-
More on ADTs.
The BoundedList ADT example.
Policies about what should happen when an operation
doesn't make sense.
REQUIRES documentation for ADT operations.
Related reading:
-
Lecture #5 (Wed., Jan. 17)
-
Activation records and the this pointer.
Definitions of the terms object,
abstraction and abstract data type.
Related reading: Memory Diagrams for C++, Part I (handout).
-
Lecture #4 (Mon., Jan. 15)
-
Organization of class type declarations
and member function definitions.
The default constructor.
Related reading: Carrano, Chapter 3.
Week 1
-
Lecture #3 (Fri., Jan. 12)
-
More on reference arguments.
Built-in types in C++, including bool.
Introduction to struct and class types.
Related reading: Carrano, pages 14-20, 102-112, 120-128.
-
Lecture #2 (Wed., Jan. 10)
-
Introductory remarks about C++.
A simple example use of iostreams.
Reference arguments to functions.
Related reading: Carrano, pages A1-A18.
-
Lecture #1 (Mon., Jan. 8)
-
Welcome to ENEL 315.
Explanation of policies on the course outline.
Related reading: none.
Author's home page