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

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

Week 16

The Java Collections Framework
Review for Exam 3

Week 17

Priority queues and heap structures

Assignments | Course home page

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