You are on page 1of 25

Overview of the course

Data structure and Algorithms

VNU University of Technology and Engineering


Outline
➢Introduction
➢Objectives of the course
➢Main contents of the course
➢Materials and requirements

Data Structures and Algorithms 2


Introduction

➢ Lecturer's name: Ngô Thị Duyên


➢ Department: UET-FIT, Department of Computer Science
➢ Email: duyennt@vnu.edu.vn
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


Computer Program
➢ ➢What is a computer program?
➢ A computer program is a set of instructions that perform
specific tasks when executed by computers.

"Program = Data structures+ Algorithms" [N. Wirth]


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 practice

Data 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
❖ Final exam: paper based exam

Data Structures and Algorithms 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


Materials
➢ Course specification, Lectures, lab
assigments, and quiz are available at:
https://courses.uet.vnu.edu.vn
➢ UET CodeHub: https://uetcodehub.xyz

You might also like