CSCI2100A Data Structure
-
Department of Computer Science and Engineering
The Chinese University of Hong Kong
2026-2027 Term 2
Description
This course introduces the concept of abstract data types and the advantages of data abstraction. Various commonly used abstract data types including vector, list, stack, queue, tree, and set and their implementations using different data structures (array, pointer based structures, linked list, 2-3 tree, B-tree, etc.) will be discussed. Sample applications such as searching, sorting, etc., will also be used to illustrate the use of data abstraction in computer programming. Analysis of the performance of searching and sorting algorithms. Application of data structure principles.
Reference Materials
Course Staff
Instructor
Dr. Shengchao Liu
- Office: SHB 1016
- Office Hour: By Appointment
- Contact: scliu@cuhk.edu.hk
Syllabus
- Lectures
- Mon 4:30PM - 6:15PM, Lady Shaw Bldg LT6
- Wed 2:30PM - 3:15PM, Basic Med Sci Bldg G18
-
Tutorials (Tuesdays, Mong Man Wai Bldg LT2)
- CSCI 2100-AT01 (7364): 3:30 PM – 4:15 PM
- CSCI 2100-AT02 (9002): 5:30 PM – 6:15 PM
| Monday | Tuesday | Wednesday | |||
|---|---|---|---|---|---|
| 11 Jan | 0. Logistics (slide 0) 1. Introduction & Basics (slide 1) |
12 Jan | Tutorials on Linux CMD and GitHub (slide) | 13 Jan | 2. Complexity & Analysis (slide 2) |
| 18 Jan | 3. ADT, List, Stack, Queue (slide 3) | 19 Jan | Tutorials on Stakc and Queue | 20 Jan | 4. Review I (slide 4) |
| 25 Jan | 5. Hash (slide 5) |
26 Jan | Tutorials on Hash | 27 Jan | 5. Hash Highlight (slide 5) 6. Sorting I (slide 6) |
| 1 Feb | 7. Sorting II (slide 7) | 2 Feb | Tutorials on Sorting: Merge & Quick Sort | 3 Feb | 8. Divide-and-Conquer (slide 8) |
| 5–11 Feb: Lunar New Year Vacation | |||||
| 15 Feb | 9. Greedy (slide 9) 10. Dynamic Programming I (slide 10) |
16 Feb | Tutorials on D&C/Recurrence | 17 Feb | 11. Review II (slide 11) |
| 22 Feb | 12. Tree I (slide 12) | 23 Feb | Tutorials on Basic Greedy and DP | 24 Feb | 13. Graph I (slide 13) |
| 1 Mar | 14. Searching I: Linear Search, Structure Pruning Search (Binary Search, BST) (slide 14) |
2 Mar | Tutorials on Searching: BST | 3 Mar | 15. Searching II: Exhaustive Branching Search (BFS, DFS) (slide 15) |
| 8–13 Mar: Reading Week | |||||
| 15 Mar | Midterm (tentative) | 16 Mar | Tutorials on Searching: DFS, Eight Queens |
17 Mar | 16. Dynamic Programming II: Linear DP, Table DP, Set DP, Combinatorial DP, Graph DP, Game Theory DP (slide 16) |
| 22 Mar | 16. Dynamic Programming II: Linear DP, Table DP, Set DP, Combinatorial DP, Graph DP, Game Theory DP (slide 16) |
23 Mar | Tutorials on DP: LIS, n log(n) |
24 Mar | 17. Tree II AVL Tree, B Tree, B+ Tree, Heap, Segment Tree, Trie Tree, AC Automaton, KD Tree, Union-Find (slide 17) |
| 29 Mar | Easter Monday | 30 Mar | Tutorials on Tree: Priority Queue & Disjoint Tree |
31 Mar | 17. Tree II AVL Tree, B Tree, B+ Tree, Heap, Segment Tree, Trie Tree, AC Automaton, KD Tree, Union-Find (slide 17) |
| 5 Apr | Ching Ming Festival | 6 Apr | Tutorials on Graph: MST, Krusal & Prim |
7 Apr | 17. Tree II AVL Tree, B Tree, B+ Tree, Heap, Segment Tree, Trie Tree, AC Automaton, KD Tree, Union-Find (slide 17) |
| 12 Apr | 18. Graph II: Kruskal, Prim, Dijkstra, Bellman-Ford, Floyd-Warshall (slide 18) |
13 Apr | Tutorials on Graph: Shortest Path, Dijkstra & Bellman-Ford |
14 Apr | 18. Graph II: Kruskal, Prim, Dijkstra, Bellman-Ford, Floyd-Warshall (slide 18) |
| 19 Apr | 19. Review III | 20 Apr | Tutorials on Graph: Shortest Path, Dijkstra & Bellman-Ford |
21 Apr | 20. Summary |