Undergraduate Program Syllabus: (Under Decision No.378/QĐ-ĐHFPT Dated 2/4/2021)
Undergraduate Program Syllabus: (Under Decision No.378/QĐ-ĐHFPT Dated 2/4/2021)
SYLLABUS
5 Time Allocation
6 Pre-requisite
Course Objectives
7
(CO)
Learning
8 Outcomes
(LO)
9 Student's task
529645867.xlsx
Teaching &
10 Learning
Materials
Assessment
11
scheme
12 Scoring scale
13 Schedule
14 Exam structure
15 Approval Date
16 Approval Level
529645867.xlsx
FPT UNIVERSITY
UNDERGRADUATE PROGRAM
SYLLABUS
LO1. Describe the list data structure and its’ different way of implementations. Write programs to implement the si
LO2. Define stack and queue. Describe basic operations and the use of these structures. Write programs to implem
push, pop, enqueue, dequeue,...
LO3. Describe about recursive definitions, algorithms, functions and their implementation and use.
LO4. Explain about general tree, Binary Tree and Binary Search Tree (BST). Write programs to implement BST w
LO5. Discuss about graphs and their application. Write programs to implement a graph with some basic operation
LO6 Explain the operation and performance of some basic and advanced sorting alggorithms
LO7 Explain about hashing and application.
LO8 Describe the Text Processing problem and its’ application. Explain the Huffman, LZW and Run-length encod
- Students must attend more than 80% of contact sessions in order to be accepted to the final examinatio
- Student is responsible to do all exercises given by instructor in class or at home and submit on time
- Promptly access to the FU CMS at http://cms.fpt.edu.vn for up-to-date course information
529645867.xlsx
Main books/resources:
1) Michaelt T. Goodrich, Roberto Tamassia, Michael H. Goldwasser: Data Structures and Algorithms in Ja
2) Link to the book: http://coltech.vnu.edu.vn/~sonpb/DSA/Data%20Structures%20and%20Algorithms%2
3) FU slides (ppt)
4) FU exercises (pdf)
5) Code files for students (java files)
6) FU CMS at http://cms.fpt.edu.vn.
Other references/resources:
1) Robert Lafore, Data Structures & Algorithms in Java
Second Edition, 2003 by Sams Publishing
(http://rineshpk.weebly.com/uploads/1/8/2/0/1820991/data_structures_and_algorithms_in_javatqw_darks
2) http://www.dmoz.org/Computers/Algorithms/index.htm
Tools:
- Internet
- NetBeans IDE tool for Java programming
1) On-going Assessment
- 2 Assignments: 20%
- At least 2 progress tests: 20%
- 1 Practical Exam (PE) 30%
2) 1 Final Exam: 30%
3) Final Result 100%
Completion Criteria:
1) Every on-going assessment component > 0
2) Practical Exam > 0
3) Final Exam Score >= 4 & Final Result >= 5
10
See Appendix 1
See Appendix 2
529645867.xlsx
0
529645867.xlsx
529645867.xlsx
LO1. Describe the list data
structure and its’ different way
1 of implementations.
Implement the singly linked
list.
LO1.1 Demonstrate the list data structure with basic operations: insert, remove, edit, search, sort,...
LO1.2 Explain two ways of implementing a list: using arrays and using linked lists.
LO1.3 Write programs to implement the singly linked list with basic operations: add (last, first, before, after, at positi
LO1.4 Understand the doubly linked-list data structure with basic operations.
LO1.5 Write code snippets which manipulate operations on doubly linked list, and use diagrams to illustrate the effe
LO1.6 Describe the circularly linked-list data structure with some basic operations like add, remove.
LO1.7 Expain why the Java code library provides the ArrayList and LinkedList classes
LO3.1 Describe the basic ideas of recursion and how to set up recursive systems that represent certain real-world p
LO3.2 Know how to develop recursive algorithms and programs
LO3.3 Write programs in Java using recursion to solve some problems, like creating the Fibonacci sequence.
LO3.4 Analyse a recursive function to find out its’ ouput without running.
LO3.5 Explain type of recursive functions, give examples and comparing them.
LO3.6 Compare recursion with iteration, analyzes their pros and cons
LO4.1 Define general tree, Binary Tree and Binary Search Tree (BST).
LO4.2 Given a BST and a sequence of insert and delete operations on it, draw the resulted tree.
LO4.3 Find the smallest and largest elements, number of nodes in a tree and its’ height.
LO4.4 Write code to implement features of a binary search tree, such as insertion, deletion, searching, traversals, n
LO4.5 Derive the time complexities for the above operations on a binary search tree.
LO4.6 Compare a binary search tree over other data structures that we have discussed in class.
LO4.7 Identify applications where a binary search tree will be useful.
LO4.8 Define balanced BST and explane simple balancing algorithm.
LO4.9 Define AVL Tree and explain by examples the insertion and deletion operations in it.
LO5.10 Define heap and explain its’ application.
LO5.1 Demonstrate graphs and their applications. Define an undirected graph and directed graph.
LO5.2 Explain basic notions about a graph: vertex, edge, adjacent vertices, incident edge,...
LO5.3 Know how to represent a graph using matrix and list
LO5.4 Able to apply BFS and DFS to traverse a graph
LO5.5 Write prorams to implement Graph with BFS and DFS traversals using Java
LO5.6 Explain the shortest path problem and Dijkstra’ algorithm.
LO5.7 Write program in Java to implement Dijkstra’s shortest path algorithm.
LO5.8 Define the minimum spanning tree and using the Kruskal’s algorithm to find it.
LO5.9 Define Euler cycle/path and the necessary and sufficient conditions for their existance.
LO5.10 Explain the algorithm to find Euler path / circuit using Stack and implement it in Java lannguage.
LO5.11 Define Halmilton cycle/path and able to determine them using backtracking algorithm.
LO5.12 Demonstrate the graph coloring and can apply Sequential coloring algorithm to color a graph.
LO6.1 Explain the operation and performance of selection sort applying to arrays.
LO6.2 Explain the operation and performance of insertion sort applying to arrays.
LO6.3 Explain the operation and performance of bubble sort applying to arrays.
LO6.4 Explain the operation and performance of quick sort applying to arrays.
LO6.5 Explain the operation and performance of merge sort applying to arrays.
LO6.6 Explain the operation and performance of heap sort applying to arrays.
LO6.7 Demonstrate the operation and performance of radix sort.
LO7.1 Explain the concept of "hash". Define concepts hash function and hash table and their application.
LO7.2 Demonstrate the types of hash functions: Division, Folding,...
LO7.2 Explain the collision and collision-handling.
LO7.3 Explain the open addressing method for collision-resolution: lear and quadratic probing.
LO7.4 Explain the chaining method for collision-resolution: separate chaining and Coalesced chaining.
LO7.5 Define perfect hash function and extendible hashing.
Learning
Sess. Unit Chapter Content Content in text book
Outcomes
7 2.2 Queues
4 2.3 Double-Ended Queues (Deque)
8 2.4 The Priority Queue LO2.1 - LO2.7
6.2 Queues - 238
Progress test and/or 6.3 Double-Ended Queues (Deque) - 248
9
Review Exercises 9.1 The Priority Queue Abstract Data Type - 360
5
10 Guiding Exercises/Assignment
Assignment 1 introduction
5.1.3 Binary Search - 196
Summit Assignment 1
6 3.3 Further Examples of Recursion
3- Recursion
Progress test 1
5.3.3 Multiple Recursion - 212
Progress test and/or 5.4 Designing Recursive Algorithms - 214
13 5.6 Eliminating Tail Recursion -. 219
Review Exercises
7
529645867.xlsx
5.3.2 Binary Recursion - . 211
Assignme
Progress test 1
Summit
5.3.3 Multiple Recursion - 212
5.4 Designing Recursive Algorithms - 214
5.6 Eliminating Tail Recursion -. 219
7
14 Guiding Exercises/Assignment
27
14 Progress test 1 and review
28
29 5.1 Graphs
5.2 Data Structures for Graphs 14 Graph Algorithms 611
5.2.1 Edge List Structure 14.1 Graphs - 612
5.2.2 Adjacency List Structure 14.1.1 The Graph ADT - 618
15
5.2.3 Adjacency Matrix Structure 14.2 Data Structures for Graphs - 619
5.3 Graph Traversals 14.2.1 Edge List Structure - 620
5.3.1 Depth-First Search 14.2.2 Adjacency List Structure - 622
5.3.3 Breadth-First Search 14.2.4 Adjacency Matrix Structure - 625
14.3 Graph Traversals - 630
14.3.1529645867.xlsx
Depth-First Search - 631
14.3.3 Breadth-First Search - 640
5.1 Graphs
5.2 Data Structures for Graphs 14 Graph Algorithms 611
5.2.1 Edge List Structure 14.1 Graphs - 612
5.2.2 Adjacency List Structure 14.1.1 The Graph ADT - 618
15
5.2.3 Adjacency Matrix Structure 14.2 Data Structures for Graphs - 619
30 5.3 Graph Traversals 14.2.1 Edge List Structure - 620
5.3.1 Depth-First Search 14.2.2 Adjacency List Structure - 622
5.3.3 Breadth-First Search 14.2.4 Adjacency Matrix Structure - 625
14.3 Graph Traversals - 630
Progress test and/or 14.3.1 Depth-First Search - 631
31 14.3.3 Breadth-First Search - 640
Review Exercises
16
32 Guiding Exercises/Assignment
41 6.1 Selection-Sort
Assignment 2 introduction
6.2 Insertion-Sort
Summit Assignment 2
21
6.3 Bubble-sort 12 Sorting and Selection 531
42 6.4 Quick-Sort 9.4.1 Selection-Sort and Insertion-Sort - 386
Progress test and/or
bubble-sort (see Exercise C-7.51)
43 12.2 Quick-Sort - 544
Review Exercises
22
44 Guiding Exercises/Assignment
6 - Sorting
LO6.1 - LO6.7
rogress test 2
45 6.5 Merge-Sort
6.6 Heap-Sort
23 6.7 Linear-Time Sorting: Bucket-Sort and 12.1 Merge-Sort - 532
529645867.xlsx
Radix-Sort 9.4.2 Heap-Sort - 388
As
6 - Sortin
LO6.1 - LO6.7
Progress test 2
6.5 Merge-Sort
6.6 Heap-Sort
23 6.7 Linear-Time Sorting: Bucket-Sort and 12.1 Merge-Sort - 532
46 Radix-Sort 9.4.2 Heap-Sort - 388
6.8 Comparing Sorting Algorithms 12.3.2 Linear-Time Sorting: Bucket-Sort and
Radix-Sort - 558
Progress test and/or 12.4 Comparing Sorting Algorithms - 561
47
Review Exercises
24
48 Guiding Exercises/Assignment
57
29
58
529645867.xlsx
59
30 Progress test 2 and review
60
FINAL EXAM
529645867.xlsx
APPENDIX 1: COURSE SCHEDULE
ITU levels
(I= Introduce, T Student's task
= Teach, Teacher's Material Student's task after class
before class
U = Utilize)
IT
T
Text book, slides, exercises Study just learned materials, do writing
Read text book and sample practical exercises and redo practical examples and
examples do assignment 1
IT
IT
Text book, slides, exercises Study just learned materials, do writing
Read text book and sample practical exercises and redo practical examples and
examples do assignment 1
529645867.xlsx
U
T
Text book, slides, exercises Study just learned materials, do writing
Read text book and sample practical exercises and redo practical examples and
examples do assignment 1
IT
529645867.xlsx
IT
IT
T
529645867.xlsx
Text book, slides, exercises Study just learned materials, do writing
Read text book and sample practical exercises and redo practical examples and
examples do assignment 2
IT
Text book, slides, exercises Study just learned materials, do writing
and sample practical exercises and redo practical examples and
examples do assignment 2
IT
Text book, slides, exercises Study just learned materials, do writing
and sample practical exercises and redo practical examples and
examples do assignment 2
529645867.xlsx
529645867.xlsx
Back to Syllabus ASSESSMENT STRUCTURES
Option 1:
essay or
PT 1
multiple Option 1: 15-30
LO1 - LO4
choice if multiple choice
PT 2 on paper or
1 Progress test (PT) 20'-40' Option 2: Option 2: Follow
LO5 - LO8 using computer
Questions or lecturer's
Number of questions:
Activities proposal
3-8 for each LOx
proposed by
lecturer
Option 1: a
problem
similar to
Option 1: 1 Individual or team
real one
Option 2: Follow AS1: LO1 - LO3 work, guided by
3 Assignment (AS) at home Option 2:
lecturer's AS2: LO4-LO6 instructor, submission
Questions
proposal by a given deadline
or Activities
proposed
by lecturer
Preferable
problem(s) to solve by supervised by
to be 1-2 small
5 Practical Exam 85' programming (LO1, LO2, LO4, proctor(s) sent by
marked by problems
LO6) exam board
scripts
529645867.xlsx
questions distribution:
LO1.x: 5 - 8
LO2.x: 5 - 8
LO3.x: 3 - 7
LO4.x: 5 - 10
LO5.x: 5 - 8 supervised by
multiple
6 Final exam 60' 50 LO6.x: 3 - 5 proctor(s) sent by
choice
LO7.x: 3 - 5 exam board
LO8.x: 3 - 5
529645867.xlsx
Note
529645867.xlsx
529645867.xlsx