Overview

Overview
CS113, Fall 2000
Gene Itkis
The Promise
Heavy
Fast-paced
Challenging
Rewarding
Areas covered
“Software”
Data Structures
Algorithms
analysis
Software
Objects, classes
Flow of control, iteration
Function, recursion
Templates
Inheritance
Polymorphism
•Encapsulation
•Re-use
Borderline: Software - Data Structures
Arrays, Vectors
Containers
Pointers
Memory management
Data Structures
Link-lists
Singly & Doubly linked
Stacks
Queues
Trees
Graphs
Algorithms
Binary Search
Sorting
Graph exploration (spanning trees)
DFS
BFS
Other graph algorithms (sketched only)
Shortest Path
Minimum Spanning Tree
Algorithms with Data Structures
Heap & Heap-sort
Searching
Search trees
Hash tables
Analysis
Performance
big-O notation
Homeworks
Root, Power (1,2)
Application: babyRSA (3)
BigNum
Arithmetics (4,5), Sorting (5), Queues (6)
NetworkNode (5)
Communication with babyRSA
Network
2-node (6); many nodes, 1round (7),
many nodes, many rounds (8)
Problem Sets 1, 2
Roots, Powers, babyRSA
Binary search
Classes, functions, iteration
Simple I/O
Problem set 3
mPower
Repetitive squaring method
• Efficiency issues
babyRSA
Constructing building blocks and then
building with the building blocks
• Levels of abstraction
Problem Set 4
BigNum
Objects, methods, constructors
Using vectors
Scope/function concepts: friend functions
babyRSA
More objects, methods
Baby version of some real world applications
Problem Set 5
More bignums
Sorting
Arithmetics – how math concepts …
• are used in real world applications
• how they may affect programs
NetworkNode
Using babyRSA
String processing
File IO
Problem Set 6
Bignum Queue
Link-lists
Queues
Destructors
2-Node network
Creating more complexity from our building
blocks
Problem Set 7
Search Data Structure
Search trees
Templates
Destructors
Network
Graph
Using search ds many times
• Neighbors
• Dictionary
Problem Set 8
Network
Hashing
Inheritance
“True” complex SW system
Time simulation