Principles Of Algorithm Design II  - CSCI  1321 Tentative Schedule - Fall 2000
 Class 
Topic(s)
 Reading Assignments 
& Handouts
 Laboratory 
Assignments 
8/24
Introduction To Class
Distribute & Discuss Course Outline
Introduction To Visual C++
 Course Outline

Fill Out Questionnaire (Lab I-5 points)

Create/Execute A Console 
Application - Empty Project

Resizing The Console Window 

---- Optional  ----
  Intro To NT/Win95/Win98

 Questionnaire 

Hello World Lab

 

8/29
 Review Classes

Class Part
Class Methods
Constructor - Class
Destructor - ~Class
void Set (char NewName[], int NewNo)
void Display(void)
Prototype
void TestPart();

Function Overload
Display(char Message[] = "")

String Methods
strcpy
strlen

Partitioning HPP & CPP
HPP Contains
Includes, Defines, Class 
Definitions, Template Methods, 
Function Prototypes
CPP Contains
Include HPP
Non-Template Methods
Functions

 Chapter 1
  DellComputer Lab

Mail Message

8/31
 Collect Notebooks
Function Overload Revisited
Part(char NewName[] = "", int NewNo=0)
Part(int NewNo, Char NewName[]="")
 Read PP. 77-95
Chapter 2
 
9/5
Read Infix Expression 
From Keyboard
Valid Infix Expressions
Scope Openers { [ (
Scope Closers } ] )

Stack Data Structure
char Info
private:
Max, Top, Info
primitive operations
Push
Pop
Empty

Evaluate Infix Expression 
For Validity Using Stack

Stack Data Structure C++
 Stack(unsigned long int NewMax=10);
 ~Stack(void);
 void DisplayStack(char Message[] = "");

 Read 2.1-2.2
 Start Coding
Stack.hpp
Stack.cpp

check your mail!

9/7
 Dynamic Memory Allocation
Stack -> new
~Stack -> delete
bool Push (char NewInfo)
bool Pop (char NewInfo)
bool Empty(void)

TestStack
Software Testing 
Module Test Each 
Function/Method

 Read 2.3
  Infix Lab
9/12
 Infix
Prefix 
Postfix

Evaluate Postfix
Using A Double Stack

Templates
Swap Template

Templates With 
With Stack Class

 
 
9/14
 Collect Notebooks
Quiz

Introduction To Queue
FIFO

Template Queue Class

template<class InfoType>
 Queue <InfoType> :: Queue (unsigned long int NewMax=10);

template<class InfoType>
 Queue <InfoType> :: ~Queue (void);

template<class InfoType>
 bool Queue <InfoType> :: Empty (void);

 Scan Chapter 4.1
Implement Somewhat Differently
Templates - No Waste
  Template Queue Lab
9/19
 template<class InfoType>
bool Queue <InfoType> :: Insert (InfoType NewInfo);

template<class InfoType>
bool Queue <InfoType> :: Remove (InfoType & FrontInfo);

template<class InfoType>
bool Queue <InfoType> :: Insert (InfoType NewInfo);

 
 
9/21
 Collect Notebooks
Introduction To Recursion
Call Itself
General Case -> Simpler Case
Trivial Case

Factorial
Step By Step Processing Of
Recursive Procedrures

Stack
Arguments Passed
Local Variables
Location Of Call

 
 
9/26
 Fibonacci
Step By Step Processing Of
Recursive Procedrures

Stack
Arguments Passed
Local Variables
Location Of Call

Array Class
Recursive Display, Sort, Search

 Complete the Array Support Class
Start Coding the Array Class
 Student - Array 1 Lab
9/28
 Form PostFix From Infix
Using A Stack
InCommingPriority ICP
InStackPriority ISP
ICP > ISP
       Pop
Else
          Push
+/ */ $ (
ICP 4 6 7 9
ISP 3 5 8 0
 
 
10/3
 Operator Overloads

   bool operator == (const char Key[]);
   bool operator >  (const char Key[]);
   bool operator >= (const char Key[]);
   bool operator <  (const char Key[]);
   bool operator <= (const char Key[]);
   bool operator != (const char Key[]);
   void operator =  (const char Key[]);

   bool operator == (const long int Key);
   bool operator >  (const long int Key);
   bool operator >= (const long int Key);
   bool operator <  (const long int Key);
   bool operator <= (const long int Key);
   bool operator != (const long int Key);
   void operator =  (const long int Key);

   bool operator == (const Part & P);
   bool operator >  (const Part & P);
   bool operator >= (const Part & P);
   bool operator <  (const Part & P);
   bool operator <= (const Part & P);
   bool operator != (const Part & P);
   void operator =  (const Part & P);

Copy Constructor For Dynamic 
Template Queue Class
Queue Q1, Q2;

Q1 = Q2;
Manage the dynamic memory

Introduction To Double Linked List
Node Class
Header Class
DLList Class

 
 Part Operator Overload Lab
10/5
 Collect Notebooks
DLHeaderS.hpp
DLHeaderS.cpp
Constructor
Destructor
Display

DLNodeS.hpp
DLNodeS.cpp
Constructor
Destructor
Display

Double Linked List Implementation
Trace Records From
Nodes & Headers Arrays

 
 DLList 1 Lab
10/10
 Big O Notation
Order N
Order N log N
Sorting & Searching
Dr.  Eggen
 
 
10/12
 Review For Exam
 
 
10/17
 Exam I
 
 
10/19
 Double  Linked List

Constructor/Destructor
GetNode, FreeNode, Push, Empty

 
 
10/24
Circular Linked List
Double Circular Linked List

Single Linked List
Constructor/Destructor
GetNode, FreeNode, Push, Empty, Pop

Reuse Most of Constructor, 
Destructor, GetNode, FreeNode

Memory Dump
Graphical Representation

Solve For General Case

 
 DLList 2 Lab
Due 10/27
10/26
Double Linked List
Circular Linked List
Double Circular Linked List
Single Circular Linked List

Used As A Queue
bool Insert (HeaderNo, NewInfo)
bool Remove (HeaderNo, OldInfo)

 
 DLList 3 Lab
Due 11/3 
10/31
 Double Linked List
Circular Linked List
Double Circular Linked List
Single Circular Linked List

Used As A Linked List
bool Insert After (HeaderNo, NewInfo, LeftBrother)
bool Inplace (HeaderNo, OldInfo)

 
 
11/2
 Dynamic Memory Revisited
include <stdlib.h>
new & delete
Declaring Pointers
if (Ptr == NULL)
Printing Pointer Addresses
Printing Values Stored In Pointers
sizeof (Ptrs)

Introduction To Binary Tree
Nodes - 2 Ptrs [Left & Right]
Skew Tree
Complete Tree
Balanced Tree
Random Tree
Average Search Time

 
 DLList 4 Lab
Due 11/14 
11/7
Dynamic Memory Revisited
include <stdlib.h>
new & delete
Declaring Pointers
Memory Representation Of Pointers
if (Ptr == NULL)
Printing Pointer Addresses
Printing Values Stored In Pointers
sizeof (Ptrs)
 
   DLList 5 Lab
Due 11/14 

Pick Up Graded Notebooks 
Outside My Office On
Monday

11/9
 Collect Notebooks
 
 
11/14
 About Binary Trees
About AVL Trees
About B+ Trees
 
 Binary Tree Lab
Due 12/5
Complete Most Before Exam II
11/16
Why Files
Sequential vs Direct Access Files

 Introduction To Direct Access Files
fread()
fwrite
fopen
fclose

FileLength

 
 
11/21
 Template Read Record
Template Write Record
InClass Lab
 
 Direct Access Lab 
Due 12/5 
11/23
 Thanksgiving Recess
 
 
11/28
 Review for Exam
 
 
11/30
 Collect Notebooks
Exam II
 
 
12/5
 InClass Lab  ??  Brunch Together
 
 
12/7 & 12/8
Reading Days
 
 
There Will Be A Final Project!  There Will Not Be A Comprehensive Final Exam During Exam Week!


No Labs Will Be Accepted After 4:30 on  12/7/00