CSCI-104 – Spring 2017


This page contains additional material for the USC’s CSCI 104 – Data Structures and Object-Oriented Design (Spring 2017) course. A complete list of materials, assignments, and course information is available in the course website (http://bits.usc.edu/cs104/).


Lecture Slides

L01 – Overview and Memory Allocation (Jan 10)
L02 – Streams and Recursion(Jan 12)
L03 – Recursion, Linked List, and ADTs (Jan 17)
L04 – Doubly-Linked List, ADTs, and Classes (Jan 19)
L05 – Classes and Runtime Analysis (Jan 24)
L06 – ArrayList and Amortized Runtime Analysis (Jan 26)
L07 – Stack, Queue, and Operator Overloading (Jan 31)
L08 – Operator Overloading and Copy Operator Overloading (Feb 2)
L09 – C++ STL, Iterators, Maps, and Sets (Feb 7)
L10 – Inheritance (Feb 9)
L11 – Polymorphism (Feb 14)
L12 – Exceptions, Templates, and Functors (Feb 16)
L13 – Searching Algorithms (Feb 21)
L14 – Sorting Algorithms (Feb 23)
L15 – Review – Midterm (Feb 28)
L16 – Graphs (Mar 2)
L17 – Qt (Mar 7)
L18 – Priority Queues and Heaps (Mar 9)
L19 – Heapsort, BFS, and DFS (Mar 21)
L20 – Graph Algorithms (Mar 23)
L21 – Backtracking Search and Introduction to Balanced Search Trees (AVL) (Mar 28)
L22 – AVL Trees (Mar 30)
L23 – Smart Pointers and Iterators (Apr 4)
L24 – 2-3, 2-3-4, and Red Black Trees (Apr 6)
L25 – Hash Tables and Hash Functions (Apr 11)
L26 – Bloom Filter and Tries (Apr 13)
L27 – Log Structured Merge Trees and Splay Trees (Apr 18)
L28 – Skip Lists (Apr 20)
L29 – Design Patterns (Apr 25)
L30 – Final Review (Apr 27)Updated May 2, 9:35am

Example Programs

Operator overloading and copy semantics

complex.zip
str.zip
copycon.zip

C++ STL, iterators, and maps

stl.zip
map_zip.zip
iterator.zip

Inheritance

inh.zip

Polymorphism

polymorphism.zip

Exceptions, Templates, and Functors

exception.zip
template.zip
functor.zip

Searching Algorithms

search.zip

Priority Queues and Heaps

heap.zip

Graph Algorithms (A*)

a-star-tiles-puzzle.zip

Trees (AVL)

avl.zip