CIS300 lecture notes

CIS300: Data structures and algorithms


Week 1

Fundamentals of program design
Software development in Java: classes, objects, and packages

Week 2

Introduction to Computer Architecture
Introduction to Operating Systems

Week 3

Execution semantics
Software development in Java: interfaces and graphics

Week 4

What is a data structure?
A Case Study: Databases
Adding interfaces to the database
Sorting and Searching

Week 5

Time complexity measures
The stack data structure

Week 6

Activation-record stacks
Linked-list implementation of stacks
Queues

Week 7

Exam 1 (review)

Week 8

Doubly linked lists
Recursive processing of linked lists

Week 9

Execution traces of linked-list processing
Inductive (recursive) data structures
How to implement Conslists and other recursively defined data types in Java

Week 10

Introduction to binary trees

Week 12

Ordered trees
Spelling trees
Mutable trees, parent links, and node deletions

Week 13

Hash tables

Week 14

Exam 2 (review)

Week 15

Grammars and Trees
How to use lists and trees to build a compiler
AVL-Trees

Week 16

The Java Collections Framework
Review for Exam 3

Week 17

Priority queues and heap structures
Graphs


Assignments | Course home page


Creative Commons License This work is licensed under a Creative Commons License.