0% found this document useful (0 votes)
82 views17 pages

Syllabus CSD201

Uploaded by

Tuấn Dũng
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as XLS, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
82 views17 pages

Syllabus CSD201

Uploaded by

Tuấn Dũng
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as XLS, PDF, TXT or read online on Scribd
You are on page 1/ 17

UNDERGRADUATE PROGRAM

SYLLABUS

(Under Decision No.318/QĐ-ĐHFPT dated 25/4/2015)


1 Course Name
2 Course Code
3 No of credits
4 Degree Level

5 Time Allocation

6 Pre-requisite

7 Main objectives

8 Description

581561081.xls
9 Student's task

Teaching &
10 Learning
Materials

Assessment
11
scheme

12 Scoring scale
13 Schedule
14 Exam structure

15 Approval Date

16 Approval Level

581561081.xls
FPT UNIVERSITY

UNDERGRADUATE PROGRAM
SYLLABUS

(Under Decision No.318/QĐ-ĐHFPT dated 25/4/2015)


DATA STRUCTURES AND ALGORITHMS (In Java)
CSD201
3
Bachelor

Contact time: 30 sessions


Lectures: 14
Lab/Tutorials: 16
Home study: 30 sessions
1 session = 90'

Must pass PRO192 (Object-Oriented Programming)

Upon finishing the course, students can:


1) Knowledge: Understand (ABET e)
- the connection between data structures and their algorithms, including an
analysis of algorithms' complexity;
- data structurre in the context of object-oriented program design;
- how data structure are implemented in an OO programming language such
as Java
2) Able to (ABET e)
- organize and manipulate basic structures: array, linked list, tree, heap,
hash
- use algorithms for traversing, sorting, searching on studying structures
- select a suitable algorithm to solve a practical problem
3) Able to (ABET k)
- use JAVA programming language for solving some problems
- use Eclipse tool for developing programs in JAVA
- Implement some programs in JAVA to solve practical problems based on
the studying algorithms
4) Others: (ABET i)
- Improve study skills (academic reading, information searching, ...)

This course introduce the fundamental concepts of data structures and the
algorithms that proceed from them. Topics include the basics of algorithmic
analysis, fundamental data structures (including stacks, queues, linked lists,
hash tables, trees), recursion, and some important applications of these data
stuctures and algorithms.
Such data structures and algorithms as being implemented in Java are also
given in this course.

581561081.xls
- Students must attend more than 80% of contact sessions in order to be
accepted to the final examination.
- 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

Main books/resources:
1) Michaelt T. Goodrich, Roberto Tamassia, Michael H. Goldwasser: Data
Structures and Algorithms in Java, 6th Edition, 2014 (ebook)
2) Link to the book: http://coltech.vnu.edu.vn/~sonpb/DSA/Data
%20Structures%20and%20Algorithms%20in%20Java,%206th%20Edition,
%202014.pdf
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_darksiderg.pdf)
2) http://www.dmoz.org/Computers/Algorithms/index.htm

Tools:
- Internet
- Eclipse tool for Java programming

1) On-going Assessment
- 02 Assignments/Labs/HW: 20% (ABET k, i)
- At least 2 progress tests: 20% (ABET e, i)
- 01 Practical Exam (PE) 30% (ABET k)
2) 01 Final Exam: 30% (ABET e)
3) Final Result 100%
Completion Criteria:
1) Every on-going assessment component >0
2) Practical Exam >=4
3) Final Exam Score >=4 & Final Result >=5

10
See Appendix 1
See Appendix 2

581561081.xls
581561081.xls
Back to Syllabus APPENDIX 1: COURS
Student's task
Sess. Unit Chapter Content Content in text book Category
before class
1 Course Introduction Course Introduction
1 - List Data Structures
1 1.1. Using Arrays 3 Fundamental Data Lecturer Text Book
1.2. Singly Linked Lists Structures 103
2
1.3. Circularly Linked Lists 3.1 Using Arrays - . 104
1.4. Doubly Linked Lists 3.2 Singly Linked Lists -
122
Progress test and/or 3.3 Circularly Linked Lists -
3
Review Exercises 128
2 3.4 Doubly Linked Lists - Tutorial
4 Guiding Exercises/Assignment 132

5 2.1 Stacks 6 Stacks, Queues, and Lecturer Text Book


3 Deques 225
2-Stacks and Queues

6 Guiding Exercises/Assignment 6.1 Stacks - 226 Tutorial

7 2.2 Queues
4 2.3 Double-Ended Queues (Deque) Lecturer Text Book
8 6.2 Queues - 238
2.4 The Priority Queue
6.3 Double-Ended Queues
Progress test and/or (Deque) - 248
9
Review Exercises 9.1 The Priority Queue
5 Abstract Data Type - 360 Tutorial
10 Guiding Exercises/Assignment 5 Recursion 189
5.1 Illustrative Examples -
3.1 Illustrative Examples 191
3.1.1 The Factorial Function 5.1.1 The Factorial Function
11 3.1.2 Binary Search -191
3.1.3 File Systems 5.1.3 Binary Search - 196
3.2 Analyzing Recursive Algorithms 5.1.4 File Systems - 198

Assignment 1 introduction
6 3.3 Further Examples of Recursion 5.2 Analyzing Recursive Lecturer Text Book

Summit Assignment 1
3- Recursion

3.3.1 Linear Recursion Algorithms - 202


3.3.2 Binary Recursion 5.3 Further Examples of
12 3.3.3 Multiple Recursion Recursion - 206
3.4 Designing Recursive Algorithms 5.3.1 Linear Recursion - 206
3.5 Eliminating Tail Recursion 5.3.2 Binary Recursion - .

Progress test 1
211
Progress test and/or 5.3.3 Multiple Recursion -
13
Review Exercises 212
7 5.4 Designing Recursive Tutorial
14 Guiding Exercises/Assignment Algorithms - 214
5.6 Eliminating Tail Recursion
-. 219
581561081.xls
Progress te
Assig
Su
8 Trees 307
4.1 General Trees 8.1 General Trees - 308
15 4.1.1 Tree Definitions and Properties 8.1.1 Tree Definitions and
4.1.2 The Tree Abstract Data Type Properties - 309
4.2 Binary Trees - . 317 8.1.2 The Tree Abstract Data
8 Type - 312 Lecturer Text Book
4.2.1 The Binary Tree Abstract Data Type
16 4.2.2 Properties of Binary Trees 8.2 Binary Trees - 317
4.3 Implementing Trees 8.2.1 The Binary Tree
4.4 Tree Traversal Algorithms Abstract Data Type - 319
8.2.2 Properties of Binary
Progress test and/or Trees - 321
17
Review Exercises 8.3 Implementing Trees -
9 323 Tutorial
18 Guiding Exercises/Assignment 8.4 Tree Traversal Algorithms
- 334
4 - Trees

19 4.5 Binary Search Trees


10 4.5.1 Searching Within a Binary Search Tree Lecturer Text Book
11.1 Binary Search Trees - 460
20 4.5.2 Insertions and Deletions
11.1.1 Searching Within a Binary
Search Tree - 461
Progress test and/or 11.1.2 Insertions and Deletions -
21
Review Exercises 463
11 Tutorial
22 Guiding Exercises/Assignment

23 4.6 Balanced Search Trees 11.2 Balanced Search Trees


12 4.7 AVL Trees - 472 Lecturer Text Book
24 4.8 Heaps 11.3 AVL Trees - 479
9.3 Heaps - 370
Progress test and/or 9.3.1 The Heap Data
25 Structure - 370
Review Exercises
13 9.3.2 Implementing a Priority Tutorial
26 Guiding Exercises/Assignment Queue with a Heap - 372

27
14 Progress test 1 and review 14 Graph Algorithms 611
28 14.1 Graphs - 612
14.1.1 The Graph ADT -
29 5.1 Graphs 618
5.2 Data Structures for Graphs 14.2 Data Structures for
5.2.1 Edge List Structure Graphs - 619
5.2.2 Adjacency List Structure 14.2.1 Edge List Structure -
15 Lecturer Text Book
5.2.3 Adjacency Matrix Structure 620
30 5.3 Graph Traversals 14.2.2 Adjacency List
5.3.1 Depth-First Search Structure - 622
5.3.3 Breadth-First Search 14.2.4 Adjacency Matrix
Structure - 625
14.3 Graph Traversals -
630
581561081.xls
14.3.1 Depth-First Search -
631
620
14.2.2 Adjacency List
Structure - 622
14.2.4 Adjacency Matrix
Structure - 625
Progress test and/or 14.3 Graph Traversals -
31 630
Review Exercises
16 14.3.1 Depth-First Search - Tutorial
32 Guiding Exercises/Assignment 631
14.3.3 Breadth-First Search -
33 5.4 Shortest Paths 640
5 - Graphs
17 5.4.1 Weighted Graphs 14.6 Shortest Paths - 651 Lecturer Text Book
34 5.4.2 Dijkstra’s Algorithm 14.6.1 Weighted Graphs -
651
Progress test and/or
35
Review Exercises 14.6.2 Dijkstra’s Algorithm
18 - 653 Tutorial
36 Guiding Exercises/Assignment

37 5.5 Minimum Spanning Trees 14.7 Minimum Spanning


5.5.1 Prim-Jarn´ık Algorithm Trees - 662
19 Lecturer Text Book
38
5.5.2 Kruskal’s Algorithm 14.7.1 Prim-Jarn´ık
5.6. Euler's tour and Euler's cycle Algorithm - 664
14.7.2 Kruskal’s Algorithm
Progress test and/or - 667
39
Review Exercises (Euler's tour and Euler's
20 Tutorial
40 Guiding Exercises/Assignment cycle, exercise C.14.5.2)

Assignment 2 introduction
Summit Assignment 2
41 6.1 Selection-Sort
6.2 Insertion-Sort 12 Sorting and Selection
21 531 Lecturer Text Book
6.3 Bubble-sort
42 6.4 Quick-Sort 9.4.1 Selection-Sort and
Insertion-Sort - 386
43
Progress test and/or bubble-sort (see Exercise
Review Exercises C-7.51)
22 Tutorial
12.2 Quick-Sort - 544
44 Guiding Exercises/Assignment
6 - Sorting

Progress test 2
45 6.5 Merge-Sort
6.6 Heap-Sort 12.1 Merge-Sort - 532
23 6.7 Linear-Time Sorting: Bucket-Sort and 9.4.2 Heap-Sort - 388 Lecturer Text Book
46 Radix-Sort 12.3.2 Linear-Time Sorting:
6.8 Comparing Sorting Algorithms Bucket-Sort and Radix-Sort
- 558
12.4 Comparing Sorting
Algorithms - 561
581561081.xls
9.4.2 Heap-Sort - 388

Pro
12.3.2 Linear-Time Sorting:
Bucket-Sort and Radix-Sort
- 558
Progress test and/or 12.4 Comparing Sorting
47
Review Exercises Algorithms - 561
24 Tutorial
48 Guiding Exercises/Assignment
10 Maps, Hash Tables, and
49 7.1 Hash Tables Skip Lists - 401
7.2 Hash Functions 10.2 Hash Tables - 410
7.3 Collision-Handling 10.2.1 Hash Functions -
25 Lecturer Text Book
7.4 Load Factors, Rehashing, and 411
7 - Hashing

50 Efficiency 10.2.2 Collision-Handling


7.5 Java Hash Table Implementation Schemes - 417
10.2.3 Load Factors,
51
Progress test and/or Rehashing, and Efficiency
Review Exercises - 420
26 Tutorial
10.2.4 Java Hash Table
52 Guiding Exercises/Assignment
Implementation - 422
13 Text Processing 573
53 8.1 Abundance of Digitized Text 13.1 Abundance of
8.2 Pattern-Matching Algorithms Digitized Text - 574
8 - Text Processing

8.2.1 Brute Force 13.2 Pattern-Matching


27 Lecturer Text Book
8.2.2 The Knuth-Morris-Pratt Algorithm Algorithms - 576
54 8.3 Text Compression 13.2.1 Brute Force - 576
8.3.1 The Huffman Coding Algorithm 13.2.3 The Knuth-Morris-
Pratt Algorithm - 582
55
Progress test and/or 13.4 Text Compression and
28
Review Exercises the Greedy Method - 595 Tutorial
13.4.1 The Huffman
56 Guiding Exercises/Assignment
Coding Algorithm - 596
57
29 Practical exam
58

59
30 Progress test 2 and review
60

FINAL EXAM

581561081.xls
APPENDIX 1: COURSE SCHEDULE
Outcome Activity
Teacher's Material Student's task after class
Teacher
- Show Slides
Power point slides Describe role of algorithms and data structures - Give questions
Solution to Exercises List of data structures and some algorithms - Give exercises
Book
Sources codes Classify Array and List - Give keys
Data Files for Students
Additional Faculty Files Explain three list data structures: Singly, Double, Circular - Demo example
Data Files for Students linked list - Discuss

Apply three list data structures: Singly, Double, Circular linked


Exercises/Assignment CMS: Forum list Student
Apply two type of lists in Java.util: ArrayList and LinkedList - Following the lesson
Power point slides - make question
Solution to Exercises Teacher
- practicing
Book - Show Slides
Sources codes Describe stack and applications of stack
Data Files for Students - Give questions
Additional Faculty Files Apply stack in Java.util
Exercises/Assignment
Data Files for Students CMS: Forum - Give exercises
Power point slides - Give keys
Solution to Exercises - Demo example
Book
Sources codes - Discuss
Data Files for Students
Additional Faculty Files
Describe queue and applications of queue
Data Files for Students
Apply queue in Java.util
Classify stack and queue
Exercises/Assignment CMS: Forum Student
- Following the lesson
- make question
- practicing
Teacher
- Show Slides
Power point slides - Give questions
Solution to Exercises - Give exercises
Book - Give keys
Sources codes
Data Files for Students Describe recursion and role of recursion in solving problems - Demo example
Additional Faculty Files
Data Files for Students List and classify type of recursions - Discuss
Explain how does recursion work
Apply recursion in solving problems

Student
- Following the lesson
- make question
Exercises/Assignment CMS: Forum - practicing

581561081.xls
Teacher
- Show Slides
Power point slides - Give questions
Solution to Exercises - Give exercises
Book - Give keys
Sources codes
Data Files for Students - Demo example
Additional Faculty Files Describe general tree and properties
Data Files for Students - Discuss
Describe a binary tree and properties
Implement a tree

Student
Exercises/Assignment CMS: Forum - Following the lesson
Teacher
- make question
-- Show Slides
practicing
Power point slides - Give questions
Solution to Exercises - Give exercises
Book
Sources codes - Give keys
Data Files for Students
Additional Faculty Files Describe a binary search tree and properties - Demo example
Data Files for Students Implement a binary search tree - Discuss
Implement insert and delete in a binary search tree
Describe DFT and BFT
Exercises/Assignment CMS: Forum
Teacher
- Show Slides Student
Power point slides -- Following the lesson
Give questions
Solution to Exercises -- make question
Give exercises
Book Describe how and why to balance a tree -- practicing
Give keys
Sources codes
Data Files for Students Implement an AVL tree - Demo example
Additional Faculty Files
Data Files for Students Implement insert and delete in an AVL - Discuss
Describe a heap and properties
Implement a Heap
Exercises/Assignment CMS: Forum Implement a Priority Queue with a Heap
Student
- Following the lesson
- make question
- practicing

Teacher
- Show Slides
Power point slides - Give questions
Solution to Exercises - Give exercises
Book
Sources codes - Give keys
Data Files for Students
Additional Faculty Files Describe graph and properties - Demo example
Data Files for Students Use adjacency matrix and list to present a graph - Discuss
Classify DFS & BFS
Implement DFS & BFS

Student
- Following the lesson
581561081.xls
- make question
- Give keys
Describe graph and properties - Demo example
Use adjacency matrix and list to present a graph - Discuss
Classify DFS & BFS
Implement DFS & BFS

Student
Exercises/Assignment CMS: Forum - Following the lesson
Teacher
- make question
-- Show Slides
practicing
Power point slides - Give questions
Solution to Exercises - Give exercises
Book - Give keys
Sources codes
Data Files for Students Describe shortest paths - Demo example
Additional Faculty Files
Data Files for Students Explain about Dijkstra Algorithm - Discuss
Implement and apply Dijkstra Algorithm
Exercises/Assignment CMS: Forum
Teacher Student
-- Following
Show Slides lesson
the
Power point slides -- make question
Give questions
Solution to Exercises -- practicing
Give exercises
Book
Sources codes - Give keys
Data Files for Students
Additional Faculty Files Describe minimum spanning tree - Demo example
Data Files for Students Explain about Prim and Kruskal Algorithms - Discuss
Implement and apply Prim and Kruskal Algorithms
Describe Euler and Haminlton
Exercises/Assignment CMS: Forum Student
- Following the lesson
Teacher
- make question
- Show Slides
Power point slides - practicing
- Give questions
Solution to Exercises - Give exercises
Book
Sources codes - Give keys
Data Files for Students
Additional Faculty Files Describe sort algorithms and role of sort algorithms - Demo example
Data Files for Students Explain elementary Algorithms: Selection, Bubble and - Discuss
Insertion Sorts
Implement and apply elementary sort Algorithms
Exercises/Assignment CMS: Forum
Student
- Following the lesson
- make question
Teacher
practicing
- Show Slides
Power point slides - Give questions
Solution to Exercises - Give exercises
Book
Sources codes - Give keys
Data Files for Students Describe efficient sort algorithms
Additional Faculty Files - Demo example
Explain efficient sort algorithms: Merge sort, Heap sort and
Data Files for Students - Discuss
Quick sort
Compare sort algorithms
Implement and apply efficient sort algorithms
Student
- Following the lesson
581561081.xls - make question
- Give keys
Describe efficient sort algorithms
- Demo example
Explain efficient sort algorithms: Merge sort, Heap sort and
- Discuss
Quick sort
Compare sort algorithms
Implement and apply efficient sort algorithms

Exercises/Assignment CMS: Forum Student


- Following the lesson
- make question
- practicing
Teacher
- Show Slides
Power point slides - Give questions
Solution to Exercises - Give exercises
Book
Sources codes - Give keys
Data Files for Students
Additional Faculty Files Describe hash, hash properties and role of hash - Demo example
Data Files for Students Explain hash function and collision - Discuss
Handle collision
Apply hashmap, hashtable and hashset in Java.util

Student
Exercises/Assignment CMS: Forum - Following the lesson
- make question
- practicing
Teacher
- Show Slides
Power point slides - Give questions
Solution to Exercises - Give exercises
Book Describe text processing - Give keys
Sources codes
Data Files for Students Explain Brute Force and Knuth-Morris-Pratt Algorithms - Demo example
Additional Faculty Files
Data Files for Students Implement Brute Force and Knuth-Morris-Pratt Algorithms - Discuss
Describe text compression
Explain Huffman, Run-length and LZW algorithms
Implement Huffman, Run-length and LZW algorithms
Student
Exercises/Assignment CMS: Forum - Following the lesson
- make question
- practicing

581561081.xls
Back to Syllabus ASSESSMENT STRUCTURES

Evaluation Type of Scope of knowledge and skill


# Duration How?
Category questions of questions

5-20
Computer (At least 5*n
Current chapter(s)
gradable questions
Each Progess Test covers at
(including where n is
least 01 Chapter and at most 04 by instructor
1 Progress test 10'-40' walkthroug the number
Chapters, and overall they must using computer
ht) or a of Chapters
cover all learned Chapters of the
suitable covered in
course.
format the test.)

a problem
studied chapter(s) related
2 Assignment/Exercises at home similar to by instructor
knowkedge and skills
real one

Preferable code and run;


to be 1-2 small problem(s) to solve by organized by exam
3 Practical Exam 85'
marked by problems programming board,
scripts

concepts and algorithms;


all Modules (4-5
questions/chapter) and 15
Computer
4 Final exam 60' 50 walkthroughts by exam board
gradable
more than 70% new questions
(for the current semester);

581561081.xls
581561081.xls
Note

Instruction and shedules for Progress


tests must be presented in the Course
Implementation Plan approved by director
of the campus.

Progress test must be taken right after the


last lectures of required material.

Instructor has resposibility to review the


test for students after graded.

preferable to be
supervised both by exam board member
as well as instructor

581561081.xls
581561081.xls

You might also like