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

00 Introduction

Uploaded by

nttqn203
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
62 views10 pages

00 Introduction

Uploaded by

nttqn203
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
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