No Title
1 Document type
2 Program
3 Decision No.
4 Course Name
5 Course Code
6 No of credits
7 Degree Level
8 Time Allocation
9 Pre-requisite
10 Description
11 Student's task
12 Tools
13 Note
14 Min GPA to pass
15 Scoring scale
16 Approved date
597994834.xlsx
Details
SYLLABUS
UNDERGRADUATE PROGRAM
Data Structure & Algorithms
1649
3
Bachelor
Contact time: 40 slots; 1 slot = 90'
Lectures: 14
Tutorials/Lab: 12
Java Programming
This unit introduces students to data structures and how they are used in algorithms, enabling them to desig
and implement data structures. The unit introduces the specification of abstract data types and explores thei
use in concrete data structures. Based on this knowledge, students should be able to develop solutions by
specifying, designing and implementing data structures and algorithms in a variety of programming paradigm
for an identified need.
- Students must attend more than 75% of total 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
- Internet
- Laptop
Conditions to pass:
Attendance : >= 75%
Grade Average >= 6.5/10
6.5
10
Ass
Q
Practical T
LT:TH
597994834.xlsx
No MaterialDescription Purpose ISBN Type Note
1 Data Structures and Algorithms in Java textbook 0-534-49252-5
2 Data Structures and Algorithms in Java textbook
3 Data Structures and Algorithms:Annotated Reference with Examples textbook
4 PowerPoint slides
5 Lab Instruction (Student)
6 Assignment Brief
7
8
9
10
11
Published
Author Publisher Date Edition
Adam Drozdek Thomson 2010 2nd
Michael T. Goodrich
Roberto Tamassia
Michael H. Goldwasser Wiley 2014 6th
Granville Barnett
Luca Del Tongo DotNetSlackers 2008 1st
No LO Name LO Description Sub.ID
LO1 Examine abstract data types, concrete data structures and algorithms
LO2 Specify abstract data types and algorithms in a formal notation
LO3 Implement complex data structures and algorithms
LO4 Assess the effectiveness of data structures and algorithms
Sub.ID Learning outcome
Sess. Content LO ITU Student's materials Teacher's Material
1 What is Data Abstraction? What is ADT? Read slide Lecture 01. ADT Slide: Lecture 01 - ADT
Model for an Abstract Data Type
ADT Example
ADT vs Object-Oriented Programming
2 Dynamic Array - ArrayList Read slide Lecture 02 - Linear Slide: Lecture 02 - Linear
Data Structures Data Structures
3 Lab 1: ArrayList
4 Nodes and Stacks Read slide Lecture 02 - Linear Slide: Lecture 02 - Linear
Data Structures Data Structures
5 Lab 2: Demo Nodes and Stacks
6 Queues Read slide Lecture 02 - Linear Slide: Lecture 02 - Linear
Data Structures Data Structures
7 Lab 3: Demo Queues
8 Linked List - Singly Linked List Read slide Lecture 02 - Linear Slide: Lecture 02 - Linear
Data Structures Data Structures
9 Lab 4: Demo Singly Linked List
10 Linked List - Doubly Linked List Read slide Lecture 02 - Linear Slide: Lecture 02 - Linear
Data Structures Data Structures
11 Lab 5: Demo Doubly Linked List
12 Review: Linear Data Structures
13 Recursion Read slide Lecture 03 - Slide: Lecture 03 - Recursion
Recursion and Backtracking and Backtracking
14 Lab 6: Demo Recursion
15 Backtracking Algorithm Read slide Lecture 03 - Slide: Lecture 03 - Recursion
Recursion and Backtracking and Backtracking
16 Guide on Assignment 1
17 Algorithmic Complexity Read slide Lecture 04 - Algorithm Slide: Lecture 04 - Algorithm
Time Complexity Analysis Analysis
Asymptotic notations
Brute Force
18
19 Simple Sorting Algorithms: Read slide Lecture 05 - Sorting Slide: Lecture 05 - Sorting
- Selection Algorithms Algorithms
- Bubble Sort
20
21 Review Assignment 1
22 Advanced Sorting Algorithms Read slide Lecture 05 - Sorting Slide: Lecture 05 - Searching
- Quick Sort Algorithms Algorithms
23 - Merge Sort
- Bucket Sort
24 Lab 7: Sorting Algorithms Review Lesture 05 - Sorting
Algorithms
25 Searching Algorithms Read slide Lecture 06 - Slide: Lecture 06 - Searching
- Linear Search Searching Algorithms Algorithms
- Binary Search
26 Lab 8: Searching Algorithms Review Lecture 06 - Searching
Algorithms
27 Greedy Algorithms Read slide Lecture 07 - Greedy Slide: Lecture 07 - Greedy
Greedy Failure Cases Algorithms Algorithms
Optimal Greedy Algorithms
28 Guide on Assignment 2
29 Trees and Traversing Tree Read slide Lecture 08 - Trees Slide: Lecture 08 - Trees
30
31 Lab 9: Traversiong Trees
32 Binary Trees, Heaps and Binary Search Read slide Lecture 09 - Binary Slide: Lecture 09 - Binary
Trees Trees, Heaps and Binary Search Trees, Heaps and Binary
Trees Search Trees
33
34 Lab 10: Binary Trees, BST
35 Combinatorial Problems Read slide Lecture 10 - Slide: Lecture 10 -
Combinatorial Problems Combinatorial Problems
36
37 Review Assignment 2
38 Demonstration
39 Demonstration
40 Demonstration
Student's task Lecturer's task
Do exercises Coding and live demo
Do exercises Coding and live demo
Do exercises Coding and live demo
Do exercises Coding and live demo
Do exercises Coding and live demo
Review Lab 1,2,3,4,5 Review Lecture 02 -
Do exercises Linear Data Structures
Do exercises Coding and live demo
Understand Assignment's
requirements and clarify
the lecturer's expectation.
Do exercises
Do exercises Coding and live demo
Coding and live demo
Do exercises
Coding and live demo
Do exercises
Understand Assignment's
requirements and clarify
the lecturer's expectation.
Do exercises
Do exercises
Presentation and Q&A
Presentation and Q&A
Presentation and Q&A
Assessment
Minimun value to
Component Assessm Weight Part Type of Number of
# meet Completion Duration LO
Hạng mục đánh ent Type Trọng số Phần questions questions
Criteria
giá
1 Assignment 1 on-going 1 50 0 0 LO1, LO2 Individual report 0
Individual report
2 Assignment 2 on-going 1 50 0 0 LO3, LO4 Individual 0
Demonstration
597994834.xlsx
Scope of knowledge and skill of questions How? Note
Create a design specification for data structures
explaining the valid operations that can be carried
out on the structures.
Determine the operations of a memory stack and guided by instructor
how it is used to implement function calls in a individual assignment
computer.
Using an imperative definition, specify the abstract
data type for a software stack.
Implement a complex ADT and algorithm in an
executable programming language to solve a well
defined problem.
Implement error handling and report test results
guided by instructor
Discuss how asymptotic analysis can be used to
individual assignment
assess the effectiveness of an
individual demonstration
algorithm
Determine two ways in which the efficiency of an
algorithm can be measured, illustrating your answer
with an example.
597994834.xlsx