CSC 301 — Data Structures (3 Units)
Course Duration: 13 Weeks
Contact Hours: Lecture – 30 hrs; Practical – 45 hrs
In-class
Learning Objectives
Week Topic (Lecture) activity / Lab / Assignment
(short)
demo
Introduction & Lab: implement singly
Lecture +
Review: Define ADTs; review linked list
whiteboard
1 Abstract Data arrays, singly/doubly linked (insert/delete/traverse).
examples (list
Types (ADTs), lists; complexity basics Short quiz on ADT
ops)
arrays, lists terms.
Demo:
Understand stack/queue expression Lab: implement stack
Stacks and semantics and use cases; evaluation and queue; evaluate
2
Queues implement with arrays & (stack) & infix→postfix and
linked lists BFS queue compute postfix.
usage
Walkthrough
recursive
Relationship between
algorithms Lab: implement dynamic
Recursion & recursion and DS; dynamic
3 (factorial, array / vector; exercise
Dynamic Arrays arrays (resizing) and
DFS) and on recursion tracing.
amortized cost
vector
resizing
Searching Complexity
Lab: code binary search;
(Linear & Linear vs binary search; examples;
assignment: analyze and
4 Binary) and Big-O, average/worst case, trace binary
report time/space of
Complexity space complexity search on
searches.
Analysis sorted arrays
Sorting
fundamentals: Live sort Lab: implement insertion
Implement basic sorts;
Selection, visualiser / & selection sorts;
5 compare complexity and
Insertion, step-through compare runtime on
stability
Bubble, example sample inputs.
Analysis
6 Efficient Sorts: Understand divide-and- Demo: Lab: implement
Merge & Quick conquer; implement mergesort mergesort and quicksort;
In-class
Learning Objectives
Week Topic (Lecture) activity / Lab / Assignment
(short)
demo
assignment: benchmark
mergesort/ quicksort; pivot tree, quicksort
Sort and discuss behavior on
choice and worst case partitioning
sorted/reverse inputs.
Build hash
Lab: implement hash
Hash functions, collision table
Hashing & table with chaining;
7 resolution (chaining, open examples;
Hash Tables exercise on designing
addressing), load factor collision
simple hash functions.
demos
Walk
Tree terminology; Lab: implement binary
Trees — Basics traversal
preorder/inorder/postorder tree and traversal
8 (Binary Trees, algorithms;
traversals; recursion on methods; assignment:
Tree traversal) iterative vs
trees tree height, node count.
recursive
Demo: BST
Binary Search BST properties; Lab: implement BST
operations;
Trees (BSTs) & insertion/deletion; effect on insert/delete/search;
9 show
Balanced Trees complexity; need for exercise: create worst-
degeneration
intro balancing case sequences.
to list
Show
Balanced Lab: implement AVL
Motivation for balancing; rotations step-
Search Trees insert (or use library to
rotations (AVL) and by-step;
10 (AVL / Red- explore); assignment:
rebalancing ideas; compare AVL
Black) — demonstrate rotations on
performance guarantees vs RB
concepts sequences.
conceptually
Build heap by Lab: implement binary
Heap properties; heapify; insertion and heap (array
Heaps &
11 priority queue ADT; heap heapify; use representation) and heap-
Priority Queues
sort for PQ sort; PQ application
operations exercise (Dijkstra prep).
Lab: implement graph
Graphs — Demo: graph
Graph representations (adj adjacency list and
Representation traversal,
12 list/adj matrix); BFS/DFS; BFS/DFS; assignment:
& Traversal topological
complexity shortest path
(BFS, DFS) sort idea
(unweighted).
13 Applications, Map problems → data Case studies: Lab: capstone mini-
Algorithm structures; algorithmic choosing DS project (implement small
In-class
Learning Objectives
Week Topic (Lecture) activity / Lab / Assignment
(short)
demo
app using multiple DS
Analysis,
tradeoffs; review Big-O for a problem; e.g., symbol table +
Choosing DS &
across covered topics exam revision graph operations). Final
Revision
quiz / project submission.
Weekly Breakdown Notes & Teaching Tips
Lecture vs Lab balance: Use Weeks 1–6 for core linear DS and sorting; Weeks 7–12
for hash, trees, heaps, graphs.
Assessment: Midterm (theory + short coding): Week 7; Continuous assessment:
weekly labs (20%); Midterm 20%; Final exam/project 60% (or adjust to department
policy).
Learning outcomes alignment: each week maps to CCMAS outcomes —
implementation practice meets "implement various DS", lecture analysis covers Big-
O, and OOP design covered when implementing DS as classes/objects.
Recommended Texts & Online Resources
Core textbook: Data Structures and Algorithms in C/C++/Java (choose one language
edition depending on your teaching language).
Supplementary: Goodrich & Tamassia — Data Structures & Algorithms in Java;
Weiss — Data Structures & Algorithm Analysis.
Online references & visualizers: GeeksforGeeks (data structures), Visualgo for
animations.