Data Abstractions
CSCI 2320 -  Spring 2006 - Tentative Schedule
 

 Class 

Topic's)

 Reading Assignments 
& Handouts

 Laboratory 
Assignments 

1/12

1-R

 Introduction To Class
Fill Out Questionnaire (Lab I-5 points)
Distribute & Discuss Course Outline

Basic Data Types
Range Of Acceptable Values
sizeof, limits.h
declarations,
initializations,
assignments
printf - control string
scanf - control string
puts, gets
constants vs variables
Documentation
Modules/Function Design
program components
Pass By Reference/Value
Modules with Pointers
Modules with Reference Variables

Stream Input - Output
cout << "\nEnter No";
cin >> No;
cin >> FirstName;
cin.getline(FullName);

String Functions
strlen, strcmp, strcpy

Course Outline

Resizing The Console Window 

Lecture Slides OOP 1

 

---- Optional  ----

Installation Of Visual Studio .NET

  Intro To Windows Op Sys

Install Visual Studio Net
On Your Computer Or
One You Plan To Use
This Semester

  Review Slides, Notes, Text For Quiz

All Labs Due Next Class Period Unless Specified Otherwise!

Questionnaire HW

OOP1 HW

Write Some Sample
C++ Programs

1/17

2-T

Aggregates : arrays, structs, classes
Student Struct - Set Function
Student Class - Set Method
Classes,
Member Functions = Methods
Class Data Members
Class Function Prototypes
Encapsulation
Constructors,
Destructors
public vs. private
scope operator
Function Overload
Function Signature
Default Arguments
Memory Leaks
Mutator Method
Accessor Method
ADT - Abstract Data Type
Operator Overloads
>, >=, <, <=, ==, !=, =

interface
class to hpp & cpp
#ifndef, #endif
4 Reasons To Create
.hpp & .cpp Class Interface

Indigenous Data
Exogenous Data
Standard Template Library

Lecture Slides OOP 2 Start Working On - Due Thursday
Review Slides, Notes, Text For Quiz
Most Of Quiz From Lab and OOP1

 

1/19

3-R

Develop An Employee Class
Emphasize stdio.h & string.h
Review Function Overloading
Review Unique Signatures
 


OOP 2 HW

Athlete1  Class Lab

Athlete2 HPP-CPP Lab

1/24

4-T

Memory Management

Dynamic Memory
Shallow Copy
Deep Copy
LIFO & FIFO
Array Implementation Of A Stack
Dynamic Stack
Templates
Template Stack
Primitive Operations
Push, Pop, Empty
Full, Resize, Overload =

Text Files (if Time)

Memory Management

1.
Lecture Slides  Stack

 

 

1/26

5-R

1.Stack Applications
Evaluate Mathematical Expressions
Infix Expression à Operators, Operands, Scope Openers, Scope Closers
Mathematical Order Of Operations
Generate Postfix From Infix
Generate Prefix From Infix
Evaluate Infix Expression With Respect To Parentheses, Brackets, & Braces
Create Prefix Expression From Infix Expression
Evaluate Postfix Expression

Template Stack
Primitive Operations
Push, Pop, Empty
Full, Resize, Overload =
 
 
Stack HW

Stack Lab

Review Slides, Notes, Text For Quiz

1/31

6-T

Dynamic Memory
Shallow Copy
Deep Copy
LIFO & FIFO
Array Implementation Of A Stack
Dynamic Stack
Templates
Template Stack
Primitive Operations
Push, Pop, Empty
Full, Resize, Overload =

Template Queue
Primitive Operations
Insert, Remove, Empty
Full, Resize, Overload =

Queues

Homework
Mailed To You

2/2

7-R

Text Files (if Time)

Direct Access Files

Why Direct Access Files?
Why Direct Access Files, As Opposed To Text Files?
Download Application
Visual Studio Projects Re-visited
Execute Binary Outside Visual Studio Net Environment
Redirecting Output To A Text File
Other Files In The Debug Folder
fopen & fclose- Open To Create New File Close File (wb+)
fseek – moving the Read-Write Pointer
fwrite – Writing Direct Access Records
fopen & fclose- Open To Create New File Close File (rb+)
fread – Reading Direct Access Records
Generic Template ReadRecord, WriteRecord, & FileLength

FILE  *FilePtr;
FilePtr = fopen (NewFileName,"rb+");
FilePtr = fopen (NewFileName,"wb+");
fseek(FilePtr, 4 * sizeof(Student), SEEK_SET);
fwrite(&Students,sizeof(Student),(long)1,FilePtr);
fread(&Students,sizeof(Student),(long)1,FilePtr);
fclose(FilePtr);

Direct Access Files

Why Direct Access Files?
Why Direct Access Files, As Opposed To Text Files?
Download Application
Visual Studio Projects Re-visited
Execute Binary Outside Visual Studio Net Environment
Redirecting Output To A Text File
Other Files In The Debug Folder
fopen & fclose- Open To Create New File Close File (wb+)
fseek – moving the Read-Write Pointer
fwrite – Writing Direct Access Records
fopen & fclose- Open To Create New File Close File (rb+)
fread – Reading Direct Access Records
Generic Template ReadRecord, WriteRecord, & FileLength

FILE  *FilePtr;
FilePtr = fopen (NewFileName,"rb+");
FilePtr = fopen (NewFileName,"wb+");
fseek(FilePtr, 4 * sizeof(Student), SEEK_SET);
fwrite(&Students,sizeof(Student),(long)1,FilePtr);
fread(&Students,sizeof(Student),(long)1,FilePtr);
fclose(FilePtr);
Lecture Slides Direct Access  Files

Optional
Chap08
TextFiles

Optional
Chap11
Direct Access Files
 

 

Direct Access
Sort Lab

DAF HW

 

2/7

8-T

Computer Generated Test Data

How To Calculate Average Read Time
Buffered Reads
Defragment-Optimize A Drive
Create

Algorithms Direct Access File
Sequential Search
Delete
Append

Use Record 0 To Hold Top/Last Record No

Creating A Direct Access Stack

Infix, Prefix, Postfix

Optional
Chap08
TextFiles

Optional
Chap11
Direct Access Files
 

Infix-Prefix-Postfix-HW

2/9

9-R


Revisit Direct Access Stack

Queue
LIFO - Last In First Out

Encapsulation

LIFO & FIFO
Dynamic Queue
Template Queue
Primitive Operations
Insert, Remove, Empty
Full, Resize, Overload =

Revisit Files

   

AdvancedSorting Lab
Due 2/16

 

 

2/14

10-T

 Memory Management
Available List In Disk Operating System

 

   

2/16

11-R

Memory Management
Available List In Disk Operating System
Printable Queue Queue HW

2/21

12-T

Go Over Exam

DLList
Constructor,
Destructor,
GetNode
Node Management

  Infix-Prefix-Postfix-HW

DynMemDLL-HW-1.html
Due 3/2

2/23

13-R

DLList
Review Memory Management
GetNode,
FreeNode,
Push
Pop
  DynMemDLL-HW-1.html
Due 3/2

2/28

14-T

DLList
Review Memory Management
Insert
Remove
InsertAfter
Inplace
File Implemntation Of DLList

Review Lists
DLList - Delete Entire List

  DynMemDLL-HW-2.html
Due 3/7

3/2

15-R

Exam I  

DLList-DirAcc1

3/7

16-T

DLL Direct Access File Implementation
Constructors To Re-Use Data Files
GetNode With Files
FreeNode With Files
  DirAcc 1 Lab
Due 3/9

 

3/9

17-R

Binary Trees
Internal Memory Binary Trees
GetNode, FreeNode
Constructor, Destructor

BinTreeDirAcc
GetNode, FreeNode
Constructor, Destructor

Internal Memory Binary Trees
SetLeft
SetRight
Inplace

Direct Access Binary Tree Applications
SetLeft
SetRight
Inplace
 

 
  DirAcc 2 Lab
Due 3/21

3/14

T

Spring    

3/16

R

Break    

3/21

18-T

Binary Trees
Internal Memory Binary Trees
GetNode, FreeNode
Constructor, Destructor

BinTreeDirAcc
GetNode, FreeNode
Constructor, Destructor

Internal Memory Binary Trees
SetLeft
SetRight
Inplace

Direct Access Binary Tree Applications
SetLeft
SetRight
Inplace
 

  DirAcc 3 Lab
Due 3/23

3/23

19-R

Internal Memory Binary Trees
InOrder Traversal
PreOrder Traversal
PostOrder Traversal

Direct Access Binary Tree Applications
InOrder Traversal
PreOrder Traversal
PostOrder Traversal
 

Non-Recursive Tree Traversals

Left InThreaded Binary Tree
General Tree

Two Russians named Adelson-Velskii and Landis.

  1. An empty tree is height balanced.
  2. For a tree T, T-L shall denote the left subtree and T-R shall denote the right subtree.
  3. For a tree T, h-L shall denote the height of the left subtree (T-L) and h-R shall denote the height of the right subtree (T-R).
  4. A non empty binary tree is HEIGHT BALANCED if and only if
    T-R and T-L are height balanced
    -1 <= (h-L) - (h-R)| <= +1
  5. The BALANCE FACTOR of a node T in a binary tree bf(T) = h-L - h-R.
  6.  For any node T in an AVL tree, bf(T) = -1, 0, or +1

Introduction To AVL Trees
Rotate Left

BinTreeTraversals

AVLTrees

RotateLeft

RotateRight

DoubleRotateRight

 

DirAcc 4 Lab
Due 3/23

3/28

20-T

DLList & BinTree File Robustness

Two Russians named Adelson-Velskii and Landis.

  1. An empty tree is height balanced.
  2. For a tree T, T-L shall denote the left subtree and T-R shall denote the right subtree.
  3. For a tree T, h-L shall denote the height of the left subtree (T-L) and h-R shall denote the height of the right subtree (T-R).
  4. A non empty binary tree is HEIGHT BALANCED if and only if
    T-R and T-L are height balanced
    -1 <= (h-L) - (h-R)| <= +1
  5. The BALANCE FACTOR of a node T in a binary tree bf(T) = h-L - h-R.
  6.  For any node T in an AVL tree, bf(T) = -1, 0, or +1

Introduction To AVL Trees
Rotate Left
Rotate Right

AVLTrees

RotateLeft

RotateRight

DoubleRotateRight

DA-BinTree1 Lab
Due 4/4

3/30

21-R


Finish AVL Trees

Introduction To AVL Trees
Double Rotate Left
Double Rotate Right  

  DA-AVLTree1 Lab
Due 4/11
 

4/4

22-T

NCUR
Work On AVL Lab
   

4/6

23-R

Introduction To
B+ Trees

Introduction To
B Trees

B+Tree B+Tree\B+Tree - HW

4/11

24-T

Introduction To Hashing Techniques
Address Calculation
Hash Function
Collision Resolution
Linear Probing
Loading Factor
Access Quotient
Minimal Acceptable Standards

Hashing Continued
Loading Factors [>= 80%]
Average Search Time {<= 1.2]

Be Able To Sketch & Fill WIth Data
Be Able To Delete Data
Be Able To Calculate Average Search Time & Loading Factor
Linear Probing 
Quadratic Probing
Linked List Overflow
AVL Tree Overflow

  Finish
 AVL Trees

4/13

25-R

Shortest Path - Graph
Shortest Path - Weighted Digraph
Connected Graph
Chromatic Number
Complete Graph
Degree = Indegree + Outdegree
Adjacency Matrix
Matrix Multiplication 
Matrix Add & Matrix Sub

Matrix Multiplication 
Matrix Add & Matrix Sub
In-Class Adjacency Lab

GraphTheory1 Finish AVL Trees

4/18

26-T

Shortest Path - Graph
Shortest Path - Weighted Digraph
Connected Graph
Chromatic Number
Complete Graph
Degree = Indegree + Outdegree
Adjacency Matrix
Matrix Multiplication 
Matrix Add & Matrix Sub

Matrix Multiplication 
Matrix Add & Matrix Sub
In-Class Adjacency Lab

GraphTheory1 Finish AVL Trees

4/20

27-T

Planar Graphs,
E-Mail Routing Problem
Airline Shortest Path
Airline Fastest Flight
Airline Cheapest Flight
Sparse Graph
Dense Graph
Adjacency Matrix Order N*N
Adjacency List 
Adjacency List Implementation
Adjacency List 
Order N Ptrs + Order E Nodes
Data Dictionary
Implement Data Dictionary
Build Data Dictionary From Inputs
Dykstra's Shortest Path 
Algorithm

Matrix Multiplication 
Matrix Add & Matrix Sub

GraphTheory2 Finish AVL Trees
 

Optional Help Session
Mon 7:30-11:30
3rd Floor Majors Lab

4/25

28-R

Exam III   Finish AVL Trees

4/27

29-T

Introduction To Hashing Techniques
Address Calculation
Hash Function
Collision Resolution
Linear Probing
Loading Factor
Access Quotient
Minimal Acceptable Standards

Hashing Continued
Loading Factors [>= 80%]
Average Search Time {<= 1.2]

Be Able To Sketch & Fill WIth Data
Be Able To Delete Data
Be Able To Calculate Average Search Time & Loading Factor
Linear Probing 
Quadratic Probing
Linked List Overflow
AVL Tree Overflow

  Finish AVL Trees

5/1 5/2

Reading Days Reading Days Reading Days

All Labs & Homework Due Next Class Period Unless Specified Otherwise!
No assignments will be accepted after 5/1/2006 Noon