Nhân bản – Phụng sự – Khai phóng
Data Structures & Algorithms
Course Introduction
OUTLINE
• Course Information
• Objectives
• Contents
• Assignments and Labs
• Grading Information
• Textbook and References
Data Structures & Algorithms 2
Course Information
• Prerequisite
• Programming in C/C++
• Number of credits: 03
• Theory sessions: 02 credits
• Practice sessions: 01 credits
• Plan for 15 weeks
• 2 theory periods / session / week
• 2 practice periods / session / week
Data Structures & Algorithms 3
Objectives
• Understand and present data structures and algorithms
• Understand graph representations and algorithms
• Understand algorithm analysis
• Be able to translate high-level, abstract data structure and
algorithm descriptions into concrete code
• Be able to apply data structures and algorithms to solve
problems
• Develop communication, thinking and problem solving skills
• Develop professional attitude
Data Structures & Algorithms 4
Contents
• Course introduction • Binary Tree
• C/C++ Review • Binary Search Tree
• Algorithm Analysis • Heap
• Linked List • Graph
• Stack • Hash
• Queue
• Searching & Sorting Algorithms
Data Structures & Algorithms 5
Assignments and Labs
• Assignments
• Assignments are given after theory session, students should
do in class
• Labs
• 8 labs will be done
• Solving some problems by using data structures and
algorithms
Data Structures & Algorithms 6
Grading Information
• Participation, Attendance: 10%
• Assignments, Labs: 20%
• Midterm exam: 20%
• Written test
• Final exam: 50%
• Multiple choice test
Data Structures & Algorithms 7
Textbook and References
• Textbook
• M.A. Weiss, Data Structures and Algorithm Analysis in C, 2nd Edition, Pearson, 1997
• References
• Jiman Hong, Nguyễn Văn Lợi, Nguyễn Phương Tâm, Ninh Khánh Chi, Cấu trúc dữ liệu, Nhà
xuất bản TT&TT, 2019
• Đỗ Xuân Lôi, Cấu trúc dữ liệu và giải thuật, ĐHQG Hà Nội, 2006
Data Structures & Algorithms 8
What this course is about?
• Data structures: conceptual and concrete ways to organize data
for efficient storage and efficient manipulation
• Employment of this data structures in the design of efficient
algorithms
• Analysis of the algorithms complexity
Data Structures & Algorithms 9
Why do we need them?
• Requirements for a good software
• Good detailed design
• Easy maintenance
• Reliable
• Easy to use
• Reusable
Efficient data structure
Efficient algorithms
Data Structures & Algorithms 10
Example
• We want to develop a program to manage students including some
functions:
• Adding new students
• Modifying student information
• Searching and sorting students
• Storing student information
How can you solve this problem?
Data Structures & Algorithms 11
Course Introduction
Data Structures & Algorithms 12
Nhân bản – Phụng sự – Khai phóng
Enjoy the Course…!
Data Structures & Algorithms 13