0% found this document useful (0 votes)
9 views

Overview of Course

Uploaded by

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

Overview of Course

Uploaded by

23020717
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 22

Overview of the course

Data structure and Algorithms

University of Technology and Engineering


Vietnam National University Hanoi
Outline
➢Objectives of the course
➢Main contents of the course
➢Materials and requirements

Data Structures and Algorithms 2


Objectives
➢ Understand basic structures to
represent data in computer
➢ Understand basic algorithms to solve
problems
➢ Analyze time complexity of algorithms
➢ Apply an appropriate data structure and
a suitable algorithm to solve a particular
problem
➢ Implement data structures and
algorithms on a particular programming
language (prefer C++ programming
language)
Data Structures and Algorithms 3
The main content

➢Lecture 1: introduction to DSA


➢Lecture 2: basic data structures
➢Lecture 3: complexity analysis
➢Lecture 4: set, map and hash table
➢Lecture 5&6: Tree
➢Lecture 7: introduction to
algorithms
➢Lecture 8&9: advanced algorithms
Data Structures and Algorithms 4
The main content
➢Lecture 10: introduction to graphs
➢Lecture 11&12: Algorithms on
graphs
➢Lecture 13: string processing
➢Lecture 14: data structure review
➢Lecture 15: algorithm and graph
review

Data Structures and Algorithms 5


Lecture 2
basic data structures
➢Array structure:
❖Build structure
❖Operations
• Initialization
• Checking whether a list is empty or full
• Insertion
• Deletion
• Travelling a list

Data Structures and Algorithms 6


Lecture 2
basic data structures
➢ Linked list
❖ Singly linked list
❖ Double linked list
❖ Operations: Initialization, insertion, deletion,
traversal list
➢ Stack
❖ Structure
❖ Operations
➢ Queue
❖ Structure
❖ Operations

Data Structures and Algorithms 7


Lecture 3
complexity analysis

➢The concept of time complexity


concept
➢Types of time complexity: worse
case, average case, best-case
➢ Big Oh notation

Data Structures and Algorithms 8


Lecture 4
set, map and hash table

➢Set
❖Concept of set
❖Operations: Union, Minus, intersection
❖C/C++ Library
➢Map
❖Concept of map
❖Operations: get, put, remove
❖C/C++ Library
Data Structures and Algorithms 9
Lecture 4
set, map and hash table

➢Hash table
❖Concept of hash function
❖Collisions and collision handling
❖C/C++ Library

Data Structures and Algorithms 10


Lecture 5&6
Tree
➢ Tree definition
➢ Tree terminology:
❖Root
❖external and internal nodes
❖Ancestors of a node, Descendant of a
node
❖Depth of a node
❖Height of a tree
❖Siblings
❖Edge
❖Path
Data Structures and Algorithms 11
Lecture 5&6
Tree
➢ Tree structure
➢ Tree traveling algorithms
❖Pre-order
❖Post-order
❖In-order
➢ Binary tree: structure and operations
➢ Heap tree
❖Structure
❖Operations

Data Structures and Algorithms 12


Lecture 7
Introduction to algorithms

➢Algorithm concept
➢Characteristics of an algorithm
➢Algorithm designing strategies:
basic algorithms, Bruce-force,
Greedy, divide and conquer,
Dynamic programming, graph
theories, string/text algorithms

Data Structures and Algorithms 13


Lecture 8&9
Advanced algorithms
➢ Divide and conquer
❖Paradigm
❖Binary searching
❖Merge sort
➢ Dynamic programming
❖Problem solving strategy
❖Examples
➢ Greedy algorithms
❖Problem solving strategy
❖Examples

Data Structures and Algorithms 14


Lecture 10
Graph
➢ Definition of graph
➢ Graph terminology
❖Directed and undirected edge
❖Directed and undirected graph
❖End vertices
❖Edges incident on a vertex
❖Adjacent vertices
❖Degree of a vertex
❖Self-loop

Data Structures and Algorithms 15


Lecture 10
Graph
➢ Graph terminology
❖Cycle
❖Simple cycle
❖Weighted and un-weighted graphs
❖Sub-graph
❖Connectivity
➢ Graph representation
❖Adjacency matrix
❖ Linked list

Data Structures and Algorithms 16


Lecture 10
Graph

➢Travelling algorithms
❖Breath-First Search (BFS)
❖Depth-First Search (DFS)

Data Structures and Algorithms 17


Lecture 11&12
Algorithms on graph
➢ Shortest path finding algorithms
❖Dijkstra algorithm
❖Floyd algorithm
➢ Topological sorting
❖Naïve
❖Using Depth-First Search (DFS)
➢ Minimum spanning tree
❖PRIM algorithm
❖KRUSKAL algorithm

Data Structures and Algorithms 18


Lecture 13
string processing

➢Definition of string
➢String matching
❖Definition
❖Algorithms: Naïve and Knuth Morris
Pratt algorithms
➢Regular expression
❖Definition
❖Examples
Data Structures and Algorithms 19
Learning methodology
➢ Theoretical learning
➢ Practical learning:
❖Divided to groups to practice in practical
rooms (G2 building)
❖Programing language: C/C++ (or others)
❖Implement basic structures and
algorithms
❖Tested on standard inputs and output
❖Solving small projects
➢ Self-study: student using the
CodePower system (codepower.vn) to
self
Data practice
Structures and Algorithms 20
Requirements for the
course
➢Prerequisite subject: THCS 4;
advanced programming language
(prefer C/C++)
➢Attending to class and practical
rooms (90%)
➢Assignments:
❖Middle assignment: on practical
rooms
❖Structures
Data Finalandexam:
Algorithms paper based exam 21
Materials
➢Cấu trúc dữ liệu và giải thuật:
PGS.TS. Đinh Mạnh Tường
➢Introduction to Algorithms, Second
Edition Thomas H. Cormen
➢Fundamentals of Data Structures
by Ellis Horowitz and Sartaj Sahni
Addison Wesley –The Practice of
programming How to program C+
+
Data Structures and Algorithms 22

You might also like