ALGORITHMS
ACADEMIC YEAR 2023-2024
Degree Bachelor of Science in Computer Science
Qualification Computer Science
Professor PhD Gagik Ayvazyan
Distribution of
CM 30 h. TP 24 h. TPS 120 h. ECTS 6
hours
EXPECTED LEARNING OUTCOMES OF THE COURSE
A 1 Know methods, means of designing and analyzing
A- Knowledge algorithms and basic data structures
B 1.1 Solve different types of recurrences
B 1.2 Use basic algorithm design techniques
B 1.3 Use sorting algorithms
B 1.4 Use searching algorithms
B1 - Skills to B 1.5 Use graph algorithms
apply B 1.6 Use linear data structures
B-Skills
professional B 1.7 Use non-linear data structures
knowledge B 1.8 Ability to select computer algorithms and
relevant data structures for the design of
software systems and their components
B 1.9 Estimate the time and space complexity of
algorithms
B 2.1 Written and oral professional communication
B2 - General
in English
(transversal)
B 2.2 Discovery of trades and different
skills
disciplinary fields
KNOWLEDGE / SKILLS ASSESSMENT & EVALUATION
Ongoing evaluation tasks Midterm exam
(max 1/3 of grade for the (max 1/3 of grade for Final exam
total course) the total course)
Assessment : Assessment : Assessment :
Oral Written Oral Written Oral Written
Duration : XXX h. Criteria :
Group base: Yes No Group base: Yes No
Course project : Yes No
Presentation : Yes No
Duration : 1h20m Duration : 1h.20m
Exam type : Summative
Semestral Exam (written)
/ Assignment /Practical
Tasks type & Weight : XXXXXX Exam type : Written Assignment
TEACHING METHODS & TOOLS
Students will be guided to develop problem-solving skills through
interactive activities that are closely tailored to the lesson at
hand. Students will be guided to discover activities that promote
self-learning and help students develop critical thinking skills and
retain knowledge that leads to self-actualization.
Lecture Practical Work Extra-
mural/individual work
Explanation Modeling
Study of textbooks,
Slideshow Exercises
sources
Presentation Self-study
Individual work
Demonstration Instruction with
Problem solving
demonstration
Video-presentation learning
KNOWLEDGE & SKILLS PREREQUISITS
Set, function, recurrence, graph, tree, algorithm, programming skills
COURSE DESCRIPTION /SYLLABUS / RESOURCES
1 ADDITIONAL
TOPIC HOURS CORE RESOURCES
RESOURCES
Cormen T, Leiserson Ch,
https://www.
Algorithms. Design and
analysis of algorithms. Rivest R, Stein C, cprogramming
1.5hCM
Introduction to Algorithms .com/algorit
The role of algorithms in 1.5hTP pp. 5-10, 11-14, 23-28, 43 - hms-and-
computing 50 data-
Algorithms as a structures.h
technology tml
Algorithmic steps for
solving problems
Analysis of algorithms.
Asymptotic notation
Cormen T, Leiserson Ch,
https://www.
Recursion 3hCM
Rivest R, Stein C, cprogramming
Recursive method of 3hTP Introduction to Algorithms .com/algorit
giving mathematical pp.83-85, 88-92, 93-96 hms-and-
functions data-
Recursion in the theory structures.h
of algorithms tml
The substitution method
for solving recurrences
The recursion-tree method
for solving recurrences
The master method for
1 For each topic max 20 -25 page of reading
Page 2 from 2
solving recurrences
Cormen T, Leiserson Ch,
https://www.
Algorithm design 4.5hCM
strategies. Incremental Rivest R, Stein C, cprogramming
approach. Sorting 3hTP Introduction to Algorithms .com/algorit
algorithms. pp. 16-20, 29, 40, 194-196, hms-and-
197-198, 200-203 data-
Basic design techniques structures.h
of algorithms tml
The incremental method of
algorithm design
InsertionSort algorithm
SelectionSort algorithm
BubbleSort algorithm
ShakerSort algorithm
ShellSort algorithm
Sorting in linear time.
CountingSort algorithm
RadixSort algorithm
BucketSort algorithm
Cormen T, Leiserson Ch,
https://www.
“Divide and conquer” 1.5hCM
method of designing Rivest R, Stein C, cprogramming
algorithms 3hTP Introduction to Algorithms .com/algorit
pp. 22, 30-37, 170-177, 799- hms-and-
“Divide and conquer’’ 800 data-
strategy structures.h
MergeSort algorithm tml
QuickSort algorithm
Cormen T, Leiserson Ch,
https://www.
Searching algorithms 3hCM
Rivest R, Stein C, cprogramming
Linear search 1.5hTP Introduction to Algorithms .com/algorit
Binary search
pp. 22, 39, 799-800 hms-and-
data-
Interpolation search structures.h
Exponential search tml
Cormen T, Leiserson Ch,
https://www.
Basic data structures. 6hCM
Rivest R, Stein C, cprogramming
Stacks 3hTP Introduction to Algorithms .com/algorit
Operations on stacks.
pp. 232-234,236-241 hms-and-
data-
Implementations of stacks structures.h
Queues tml
Operations on queues.
Circular queues.
Priority queues.
Implementations of queues
Page 2 from 2
Linked Lists
Singly linked lists
Doubly linked lists
Circularly linked lists
Multiply linked lists
Implementations of linked
lists
Cormen T, Leiserson Ch,
https://www.
Graphs. Trees 3hCM
Rivest R, Stein C, cprogramming
Paths in graph. 4.5hTP Introduction to Algorithms .com/algorit
Warshall’s algorithm pp. 697-698, 1168-1173 hms-and-
Trees. Properties of data-
trees structures.h
tml
Binary search trees
Traversing binary trees
Weighted trees. Huffman's
algorithm
Cormen T, Leiserson Ch,
https://www.
Heap. Heapsort algorithm 3hCM
Rivest R, Stein C, cprogramming
Binary heap. Properties 1.5hTP Introduction to Algorithms .com/algorit
of a heap pp. 151-155, 157-160 hms-and-
Algorrithm for building a data-
heap structures.h
tml
Heapsort algorithm for
sorting a heap
Cormen T, Leiserson Ch,
https://www.
Greedy algorithms 4.5hCM
Rivest R, Stein C, cprogramming
Disjoint sets. Disjoint 3hTP Introduction to Algorithms .com/algorit
set operations pp. 561-564, 624, 631- hms-and-
635,658-660 data-
Algorithm for determining
the connected components structures.h
of a graph tml
Minimum spanning trees.
Kruskal’s algorithm
Prim’s algorithm
Single-source shortest-
paths. Dijkstra’s
algorithm
STRUCTURE OF THE COURSE & ADDITIONAL INFORMATION REGARDING THE COURSE
PREPARATION
CORE REFERENCES
Page 3 from 2
1. Cormen T, Leiserson Ch, Rivest R, Stein C, “Introduction to Algorithms”
4th ed, the MIT Press, 2022.
2. Wengrow J., A common-sense guide to data structures and algorithms, The
Pragmatic Programmers, 2020.
3. Cormen T, “Algorithms Unlocked”, MIT Press, 2013
4. Robert Sedgewick. Algorithms in C. Parts 1-5. Fundamentals. Data
Structures. Sorting. Searching, Graph Algorithms, Addison-Wesley, 2001
ADDITIONAL REFERENCES
1. Louridas P. Algorithms, the MIT Press, 2020
2. Morin P., Open data structures, AU Press. 2013
3. Heineman G., Pollice G., Selkow S. “Algorithms in Nutshell”, 2nd ed,
O’Reilly Media, Inc., 2010
4. Steven S. Skiena “The Algorithm Design Manual”, 2nd ed, Springer-Verlag
London Limited, 2008
5. Dasgupta S., Papadimitriou Ch., Vazirani U., “Algorithms”, McGraw-Hill,
2006
WEB RESOURCES
1. https://en.wikipedia.org/wiki/Algorithm
2. https://www.cprogramming.com/algorithms-and-data-structures.html
3. https://towardsdatascience.com/top-algorithms-and-data-structures-you-
really-need-to-know-ab9a2a91c7b5
4. https://www.toptal.com/developers/sorting-algorithms
STRUCTURE OF THE COURSE & ADDITIONAL INFORMATION REGARDING THE
Page 4 from 2