[major=IA | course_id=CSD203 | syllabus_id=13813 | semester=3 | combo=core | title=Data Structures and Algorithm with Python]
Course ID: CSD203
Title EN: Data Structures and Algorithm with Python
Title VI: Cấu trúc dữ liệu và giải thuật với Python
Credits: 3.0
Prerequisites: PFP191
Description: This course introduces the basic concepts of data structures and algorithms in data structures with the use of Python. Topics introduced in the course include the basics of algorithm analysis, basic data structures (including stack, queue, linked list, hashtable, tree), recursion and some important applications of these data structures and algorithms.
Student tasks: - Students must attend at least 80% of contact slots in order to be accepted to the final examination.
- Student is responsible to do all exercises, assignments and labs given by instructor in class or at home and submit on time
- Use laptop in class only for learning purpose
- Promptly access to the https://flm.fpt.edu.vn/ for up-to-date course information
Tools: - Thonny
- PyCharm
- Visual Studio Code
Course type: traditional
Decision: 1402/QĐ-ĐHFPT dated 12/12/2025
Approved date: 2025-12-12
CLO1: LO1. Describe the list data structure and its’ different way of implementations. Implement the singly linked list.
[1] category=Assignment 1; type=on-going; weight=10.0; duration=45; question_type=; grading_guide=- cover content 1,2,3,4; completion_criteria=; clos=>0
[2] category=Assignment 2; type=on-going; weight=10.0; duration=45'; question_type=; grading_guide=- cover content 5,6,7,8; completion_criteria=; clos=>0
[3] category=Practical exam; type=on-going; weight=30.0; duration=85'; question_type=; grading_guide=- cover content 1,2,3,4,5,6,7; completion_criteria=; clos=>0
[4] category=Progress test 1; type=on-going; weight=10.0; duration=10'-30'; question_type=; grading_guide=- cover content 1,2,3,4; completion_criteria=; clos=>0
[5] category=Progress test 2; type=on-going; weight=10.0; duration=10'-30'; question_type=; grading_guide=- cover content 5,6,7,8; completion_criteria=; clos=>0
[6] category=Final exam; type=Final exam; weight=30.0; duration=60'; question_type=; grading_guide=concepts, algorithms;
all studied chapters; completion_criteria=; clos=4
[1] desc=Data Structures and Algorithms in Python; author=Michael T. Goodrich, Roberto Tamassia, Michael H. Goldwasser; publisher=Wiley; edition=1st; isbn=9781118290279; main=True; online=True; note=Sách online (Wiley platform)
[2] desc=- PowerPoint Slides; author=; publisher=; edition=; isbn=; main=; online=; note=
[3] desc=- Assignments; author=; publisher=; edition=; isbn=; main=; online=; note=
[4] desc=- Labs; author=; publisher=; edition=; isbn=; main=; online=; note=
[5] desc=Data Structures and Algorithms using Python; author=Rance D. Necaise; publisher=Wiley; edition=1st; isbn=9788126562169; main=; online=True; note=
[6] desc=Data Structures and Algorithms with Python; author=Kent D. Lee Steve Hubbard; publisher=Springer; edition=1st; isbn=9783319130712; main=; online=True; note=
Session 1: Course Introduction
1.1. Using Arrays
1.2. Singly Linked Lists
Topic: Offline; Teaching type: CLO1; LO: IT
ITU: - Slides: Chapter 1
Text book:- Chapter 5 page 184 - 224

- Chapter 7 page 256-275
Materials: mat1
Download: Read Chapter 1,5,7

Session 2: 1.3. Circularly Linked Lists
1.4. Doubly Linked Lists
Topic: Offline; Teaching type: CLO1; LO: IT
ITU: - Slides: Chapter 1
Text book:- Chapter 5 page 184 - 224

- Chapter 7 page 256-275
Download: Read Chapter 1,5,7

Session 3: Progress test and/or
Review Exercises
Guiding Exercises/Assignment
Topic: Offline; Teaching type: CLO 1; LO: U
ITU: slide chapter 1, 5, 7
Lab 1: Lab1_st (.docx file)
Download: Review Chapter 1, 5, 7
Do Lab 1

Session 4: Progress test and/or
Review Exercises
Guiding Exercises/Assignment (cont.)
Topic: Offline; Teaching type: CLO 1; LO: U
ITU: slide chapter 1, 5, 7
Lab 1: Lab1_st (.docx file)
Download: Review Chapter 1, 5, 7
Do Lab 1
CLO2: LO2. Define stack and queue. Describe basic operations and the use of these structures.
Session 1: 2.1 Stacks
Guiding Exercises/Assignment
Topic: Offline; Teaching type: CLO 2; LO: T
U
ITU: - Slides: Chapter 6
- Text book: Chapter 6 page 228-238
Materials: drive.google.com
Download: Read Chapter 6
Do Lab 2

Session 2: 2.1 Stacks
Guiding Exercises/Assignment (cont.)
Topic: Offline; Teaching type: CLO 2; LO: T
U
ITU: - Slides: Chapter 6
- Text book: Chapter 6 page 228-238
Materials: drive.google.com
Download: Read Chapter 6
Do Lab 2

Session 3: 2.2 Queues
2.3 Double-Ended Queues (Deque)
Topic: Offline; Teaching type: CLO 2; LO: T
ITU: - Slides: Chapter 6
- Text book: Chapter 6 page 239-250
Materials: drive.google.com
Download: Read Chapter 6
Do Lab 2

Session 4: 2.4 The Priority Queue
Topic: Offline; Teaching type: CLO 2; LO: T
ITU: - Slides: Chapter 6
- Text book: Chapter 6 page 239-250
Materials: drive.google.com
Download: Read Chapter 6
Do Lab 2
CLO3: LO3. Describe about recursive definitions, algorithms, functions and their implementation and use.
Session 1: Progress test and/or
Review Exercises
Guiding Exercises/Assignment
Topic: Offline; Teaching type: CLO 2; LO: U
ITU: - Slides: Chapter 6
- Textbook
- Lab 2: Lab2 (.docx file)
Download: Review Chapter 6
Do Lab 2

Session 2: Progress test and/or
Review Exercises
Guiding Exercises/Assignment (cont.)
Topic: Offline; Teaching type: CLO 2; LO: U
ITU: - Slides: Chapter 6
- Textbook
- Lab 2: Lab2 (.docx file)
Download: Review Chapter 6
Do Lab 2

Session 3: 3.1 Illustrative Examples
3.1.1 The Factorial Function
3.1.2 Binary Search
3.1.3 File Systems
3.2 Analyzing Recursive Algorithms
Topic: Offline; Teaching type: CLO 3; LO: T
ITU: - Slides: Chapter 4
- Text book: Chapter 4 page 148 - 180
Materials: drive.google.com
Download: Read Chapter 4

Session 4: 3.3 Further Examples of Recursion
3.3.1 Linear Recursion
3.3.2 Binary Recursion
3.3.3 Multiple Recursion
3.4 Designing Recursive Algorithms
3.5 Eliminating Tail Recursion
Topic: Offline; Teaching type: CLO 3; LO: T
ITU: - Slides: Chapter 4
- Text book: Chapter 4 page 148 - 180
Materials: drive.google.com
Download: Read Chapter 4
CLO4: LO4. Explain about general tree, Binary Tree and Binary Search Tree (BST). Implement BST with basic operations.
Session 1: Progress test and/or
Review Exercises
Guiding Exercises/Assignment
Topic: Offline; Teaching type: CLO 3; LO: U
ITU: Lab 3: Lab3 (.docx file)
Download: Do Lab 3

Session 2: Progress test and/or
Review Exercises
Guiding Exercises/Assignment (cont.)
Topic: Offline; Teaching type: CLO 3; LO: U
ITU: Lab 3: Lab3 (.docx file)
Download: Do Lab 3

Session 3: 4.1 General Trees
4.1.1 Tree Definitions and Properties
4.1.2 The Tree Abstract Data Type
4.2 Binary Trees - . 317
4.2.1 The Binary Tree Abstract Data Type
4.2.2 Properties of Binary Trees
Topic: Offline; Teaching type: CLO 4; LO: T
ITU: - Slides: Chapter 8
- Text book: Chapter 8 page 300 - 310
Materials: drive.google.com
Download: Read Chapter 8

Session 4: 4.3 Implementing Trees
4.4 Tree Traversal Algorithms
Topic: Offline; Teaching type: CLO 4; LO: T
ITU: - Slides: Chapter 8
- Text book: Chapter 8 page 300 - 310
Materials: drive.google.com
Download: Read Chapter 8
CLO5: LO5. Díscuss about graphs and their application. Implement a graph with some basic operations.
Session 1: Progress test and/or
Review Exercises
Guiding Exercises/Assignment
Topic: Offline; Teaching type: CLO 4; LO: U
ITU: Lab 4: Lab4 (.docx file)
- Text book: Chapter 8 page 300 - 310
Download: Review Chapter 8
Do Lab 4

Session 2: Progress test and/or
Review Exercises
Guiding Exercises/Assignment (cont.)
Topic: Offline; Teaching type: CLO 4; LO: U
ITU: Lab 4: Lab4 (.docx file)
- Text book: Chapter 8 page 300 - 310
Download: Review Chapter 8
Do Lab 4

Session 3: 4.5 Binary Search Trees
4.5.1 Searching Within a Binary Search Tree
Topic: Offline; Teaching type: CLO 4; LO: T
ITU: - Slides: Chapter 11
- Text book: Chapter 11 page 460 - 473
Materials: drive.google.com
Download: Read Chapter 11

Session 4: 4.5.2 Insertions and Deletions
Topic: Offline; Teaching type: CLO 4; LO: T
ITU: - Slides: Chapter 11
- Text book: Chapter 11 page 460 - 473
Materials: drive.google.com
Download: Read Chapter 11
CLO6: LO6 Explain the operation and performance of some basic and advanced sorting alggorithms
Session 1: Progress test and/or
Review Exercises
Guiding Exercises/Assignment
Topic: Offline; Teaching type: CLO 4; LO: U
ITU: - slide chapter 11
- Lab 4: Lab4 (.docx file)
- Text book: Chapter 11 page 460 - 473
Download: Review Chapter 11
Do Lab 4

Session 2: Progress test and/or
Review Exercises
Guiding Exercises/Assignment (cont.)
Topic: Offline; Teaching type: CLO 4; LO: U
ITU: - slide chapter 11
- Lab 4: Lab4 (.docx file)
- Text book: Chapter 11 page 460 - 473
Download: Review Chapter 11
Do Lab 4

Session 3: 4.6 Balanced Search Trees
4.7 AVL Trees
Topic: Offline; Teaching type: CLO 4; LO: T
ITU: - Slides: Chapter 11, 9
- Chapter 11 page 475 - 488
- Chapter 9 page 370 - 384
Materials: drive.google.com
Download: Read Chapter 9,11

Session 4: 4.8 Heaps
Topic: Offline; Teaching type: CLO 4; LO: T
ITU: - Slides: Chapter 11, 9
- Chapter 11 page 475 - 488
- Chapter 9 page 370 - 384
Materials: drive.google.com
Download: Read Chapter 9,11
CLO7: LO7 Explain about hashing and application.
Session 1: Progress test and/or
Review Exercises
Guiding Exercises/Assignment
Topic: Offline; Teaching type: CLO 4; LO: U
ITU: - Lab 4: Lab4 (.docx file)
Download: Do Lab 4

Session 2: Progress test and/or
Review Exercises
Guiding Exercises/Assignment (cont.)
Topic: Offline; Teaching type: CLO 4; LO: U
ITU: - Lab 4: Lab4 (.docx file)
Download: Do Lab 4

Session 3: Progress test 1 and review
Topic: Offline; Teaching type: ; LO: U
ITU: - Content 1 - 4
- Text book
- Prgress test 1
Download: Review Content 1 - 4
Do Prgress test 1

Session 4: Progress test 1 and review (cont.)
Topic: Offline; Teaching type: ; LO: U
ITU: - Content 1 - 4
- Text book
- Prgress test 1
Download: Review Content 1 - 4
Do Prgress test 1
CLO8: LO8 Describe the Text Processing problem and its’ application. Explain the Huffman, LZW and Run-length encoding Algorithms.
Session 1: 5.1 Graphs
5.2 Data Structures for Graphs
5.2.1 Edge List Structure
5.2.2 Adjacency List Structure
5.2.3 Adjacency Matrix Structure
Topic: Offline; Teaching type: CLO 5; LO: T
ITU: - Slides: Chapter 14
- Text book: Chapter 14 page 620 - 648
Materials: drive.google.com
Download: Read Chapter 14

Session 2: 5.3 Graph Traversals
5.3.1 Depth-First Search
5.3.3 Breadth-First Search
Topic: Offline; Teaching type: CLO 5; LO: T
ITU: - Slides: Chapter 14
- Text book: Chapter 14 page 620 - 648
Materials: drive.google.com
Download: Read Chapter 14

Session 3: Progress test and/or Assignmen
Review Exercises
Guiding Exercises/Assignmen
Topic: Offline; Teaching type: CLO 5; LO: U
ITU: - slide chapter 14
- Lab 5: Lab5 (.docx file)
- Assignment 1
Download: Review Chapter 14
Do Lab 5
Do - Assignment 1

Session 4: Progress test and/or Assignmen
Review Exercises
Guiding Exercises/Assignmen (cont.)
Topic: Offline; Teaching type: CLO 5; LO: U
ITU: - slide chapter 14
- Lab 5: Lab5 (.docx file)
- Assignment 1
Download: Review Chapter 14
Do Lab 5
Do - Assignment 1
Session 1: 5.4 Shortest Paths
5.4.1 Weighted Graphs
Topic: Offline; Teaching type: CLO 5; LO: T
ITU: - Slides: Chapter 14
- Text book: Chapter 14 page 659 - 669
Materials: drive.google.com
Download: Read Chapter 14

Session 2: 5.4.2 Dijkstra’s Algorithm
Topic: Offline; Teaching type: CLO 5; LO: T
ITU: - Slides: Chapter 14
- Text book: Chapter 14 page 659 - 669
Materials: drive.google.com
Download: Read Chapter 14

Session 3: Progress test and/or
Review Exercises
Guiding Exercises/Assignmen
Topic: Offline; Teaching type: CLO 5; LO: U
ITU: - slide chapter 14
- Lab 5: Lab5 (.docx file)
Download: Review Chapter 14
Do Lab 5

Session 4: Progress test and/or
Review Exercises
Guiding Exercises/Assignmen (cont.)
Topic: Offline; Teaching type: CLO 5; LO: U
ITU: - slide chapter 14
- Lab 5: Lab5 (.docx file)
Download: Review Chapter 14
Do Lab 5
Session 1: 5.5 Minimum Spanning Trees
5.5.1 Prim-Jarn´ık Algorithm
5.5.2 Kruskal’s Algorithm
Topic: Offline; Teaching type: CLO 5; LO: T
ITU: - Slides: Chapter 14
- Text book: Chapter 14 page 670 - 685
Materials: drive.google.com
Download: Read Chapter 14

Session 2: 5.6. Euler's tour and Euler's cycle
Topic: Offline; Teaching type: CLO 5; LO: T
ITU: - Slides: Chapter 14
- Text book: Chapter 14 page 670 - 685
Materials: drive.google.com
Download: Read Chapter 14

Session 3: Progress test and/or
Review Exercises
Guiding Exercises/Assignmen
Topic: Offline; Teaching type: CLO 5; LO: U
ITU: - slide chapter 14
- Lab 5: Lab5 (.docx file)
Download: Review Chapter 14
Do Lab 5

Session 4: Progress test and/or
Review Exercises
Guiding Exercises/Assignmen (cont.)
Topic: Offline; Teaching type: CLO 5; LO: U
ITU: - slide chapter 14
- Lab 5: Lab5 (.docx file)
Download: Review Chapter 14
Do Lab 5
Session 1: 6.1 Selection-Sort
6.2 Insertion-Sort
Topic: Offline; Teaching type: CLO 6; LO: T
ITU: - Slides: Chapter 9, 12
- Text book: Chapter 9 page 385 -386
- Chapter 12 page 550 - 559
Materials: drive.google.com
Download: Read Chapter 9, 12

Session 2: 6.3 Bubble-sort
6.4 Quick-Sort
Topic: Offline; Teaching type: CLO 6; LO: T
ITU: - Slides: Chapter 9, 12
- Text book: Chapter 9 page 385 -386
- Chapter 12 page 550 - 559
Materials: drive.google.com
Download: Read Chapter 9, 12

Session 3: Progress test and/or
Review Exercises
Guiding Exercises/Assignmen
Topic: Offline; Teaching type: CLO 6; LO: U
ITU: - slide chapter 9, 12
- Lab 6: Lab6 (.docx file)
Download: Review Chapter 9, 12
Do Lab 6

Session 4: Progress test and/or
Review Exercises
Guiding Exercises/Assignmen (cont.)
Topic: Offline; Teaching type: CLO 6; LO: U
ITU: - slide chapter 9, 12
- Lab 6: Lab6 (.docx file)
Download: Review Chapter 9, 12
Do Lab 6
Session 1: 6.5 Merge-Sort
6.6 Heap-Sort
Topic: Offline; Teaching type: CLO 6; LO: T
ITU: - Slides: Chapter 9, 12
- Text book: Chapter 9 page 370 -388
- Text book: Chapter 12 page 538 - 547
Materials: drive.google.com
Download: Read Chapter 9, 12

Session 2: 6.7 Linear-Time Sorting: Bucket-Sort and Radix-Sort
6.8 Comparing Sorting Algorithms
Topic: Offline; Teaching type: CLO 6; LO: T
ITU: - Slides: Chapter 9, 12
- Text book: Chapter 9 page 370 -388
- Text book: Chapter 12 page 538 - 547
Materials: drive.google.com
Download: Read Chapter 9, 12

Session 3: Progress test and/or
Review Exercises
Guiding Exercises/Assignmen
Topic: Offline; Teaching type: CLO 6; LO: U
ITU: - slide chapter 9, 12
- Lab 6: Lab6 (.docx file)
Download: Review Chapter 9, 12
Do Lab 6

Session 4: Progress test and/or
Review Exercises
Guiding Exercises/Assignmen (cont.)
Topic: Offline; Teaching type: CLO 6; LO: U
ITU: - slide chapter 9, 12
- Lab 6: Lab6 (.docx file)
Download: Review Chapter 9, 12
Do Lab 6
Session 1: 7.1 Hash Tables
7.2 Hash Functions
7.3 Collision-Handling
Topic: Offline; Teaching type: CLO 7; LO: T
ITU: - Slides: Chapter 10
- Text book: Chapter 10 page 410 - 422
Materials: drive.google.com
Download: Read Chapter 10

Session 2: 7.4 Load Factors, Rehashing, and Efficiency
7.5 Python Hash Table Implementation
Topic: Offline; Teaching type: CLO 7; LO: T
ITU: - Slides: Chapter 10
- Text book: Chapter 10 page 410 - 422
Materials: drive.google.com
Download: Read Chapter 10

Session 3: Progress test and/or
Review Exercises
Guiding Exercises/Assignmen
Topic: Offline; Teaching type: CLO 7; LO: U
ITU: Lab 7: Lab7 (.docx file)
Download: Do Lab 7

Session 4: Progress test and/or
Review Exercises
Guiding Exercises/Assignmen (cont.)
Topic: Offline; Teaching type: CLO 7; LO: U
ITU: Lab 7: Lab7 (.docx file)
Download: Do Lab 7
Session 1: 8.1 Abundance of Digitized Text
8.2 Pattern-Matching Algorithms
8.2.1 Brute Force
8.2.2 The Knuth-Morris-Pratt Algorithm
Topic: Offline; Teaching type: CLO 8; LO: T
ITU: - Slides: Chapter 13
- Text book: Chapter 13 page 581 -612
Materials: drive.google.com
Download: Read Chapter 13

Session 2: 8.3 Text Compression
8.3.1 The Huffman Coding Algorithm
8.3.2 The LZW Algorithm
8.3.3 The Run-length Encoding Algorithm
Topic: Offline; Teaching type: CLO 8; LO: T
ITU: - Slides: Chapter 13
- Text book: Chapter 13 page 581 -612
Materials: drive.google.com
Download: Read Chapter 13

Session 3: Progress test and/or
Review Exercises
Guiding Exercises/Assignmen
Topic: Offline; Teaching type: CLO 8; LO: U
ITU: slide chapter 13
Lab 8: Lab 8 (.docx file)
Download: Review Chapter 13
Do Lab 8

Session 4: Progress test and/or
Review Exercises
Guiding Exercises/Assignmen (cont.)
Topic: Offline; Teaching type: CLO 8; LO: U
ITU: slide chapter 13
Lab 8: Lab 8 (.docx file)
Download: Review Chapter 13
Do Lab 8
Session 1: Course review
Practical Exam
Topic: Offline; Teaching type: ; LO: I
ITU: Review the course
- Assignment 2
Download: Review the course
- Do Assignment 2

Session 2: Course review
Practical Exam (cont.)
Topic: Offline; Teaching type: ; LO: I
ITU: Review the course
- Assignment 2
Download: Review the course
- Do Assignment 2

Session 3: Progress test 2 and review
Topic: Offline; Teaching type: ; LO: U, I
ITU: Content 5 - 8
Text book
Prgress test 2
Download: Review the course
Do Prgress test 2

Session 4: Progress test 2 and review (cont.)
Topic: Offline; Teaching type: ; LO: U, I
ITU: Content 5 - 8
Text book
Prgress test 2
Download: Review the course
Do Prgress test 2