Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
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