0% found this document useful (0 votes)
21 views10 pages

00 Introduction

Uploaded by

nttqn203
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
0% found this document useful (0 votes)
21 views10 pages

00 Introduction

Uploaded by

nttqn203
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 10

Data Structures and Algorithms

1
Instructor Information
Assoc. Prof. Nguyen Thanh Binh, PhD.
Email: ntbinh@vku.udn.vn
Office: VKU

TA: Nguyễn Huỳnh Nhật Thương


Email: nhnthuong@dut.udn.vn
Objectives
• Understand data structures (lists, trees, hash tables)
• Understand graph representations and algorithms
• Understand time and space analysis
• Be able to translate high-level, abstract data structure
descriptions into concrete code
• Data structures will include lists, vectors, queues, stacks,
trees, hash-tables, and graphs
• Algorithms include searching, sorting using the above data
structures, iterative, and recursive algorithms
Prerequisites & Textbook
• Prerequisites
– Programming in C/C++
• Textbook
– Mark Allen Weiss, Data Structures and Algorithm Analysis in C++ (4th
ed.), Pearson, 2014
• References
– Ellis Horowitz, Sartaj Sahni and Susan Anderson-Freed, Fundamentals
of Data Structures in C, 2nd Edition, Silicon Press, 2007
– Frank M. Carrano, Data Abstraction and Problem Solving with C++,
Addison Wesley, 2006
Assignments & Labs
• Assignments
– Assignments are given after theory sessions,
students do in class and at home
• Labs
– 3 labs will be done
– Solving some problems by using data structures
and algorithms
Grading
• Assignments, Participation & Labs: 20%
– Assignments & Participation: 10%
– Labs: 10%
• Midterm: 20%
• Final Exam: 60%

• All assignments are individual work


• Exams are closed-book

6
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
Why do we need them?
• Requirements for a good software
– Good detailed design
– Easy maintenance
– Reliable
– Easy to use
– Reusable

®Efficient data structures


®Efficient algorithms
Course Outline
• Course Introduction
• Overview of object-oriented programming with
C++ [chapter 1]
• Algorithm analysis [chapter 2]
• Sorting [chapter 7]
• Lists, stacks, queues [chapter 3]
• Trees [chapter 4]
• Priority queues [chapter 6]
• Hashing [chapter 5]
• Graphs [chapter 9]
9
Examples
• How can we implement a list of students?
• How can we search for a student in the list?
• How can we sort the list?

You might also like