0% found this document useful (0 votes)
26 views3 pages

CSC 301 Data Structures Course Outline

CSC 301 is a 13-week course on Data Structures covering topics such as Abstract Data Types, Stacks, Queues, Recursion, Searching, Sorting, Hashing, Trees, and Graphs. The course includes lectures, practical labs, and assignments to reinforce learning, with assessments including weekly labs, a midterm, and a final project. Recommended resources include textbooks and online references for further study.

Uploaded by

victoria
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
26 views3 pages

CSC 301 Data Structures Course Outline

CSC 301 is a 13-week course on Data Structures covering topics such as Abstract Data Types, Stacks, Queues, Recursion, Searching, Sorting, Hashing, Trees, and Graphs. The course includes lectures, practical labs, and assignments to reinforce learning, with assessments including weekly labs, a midterm, and a final project. Recommended resources include textbooks and online references for further study.

Uploaded by

victoria
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 3

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.

You might also like