<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://www.wikicshse.ru/index.php?action=history&amp;feed=atom&amp;title=Algorithms_and_Data_Structures_DSBA_2023%2F24</id>
	<title>Algorithms and Data Structures DSBA 2023/24 - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://www.wikicshse.ru/index.php?action=history&amp;feed=atom&amp;title=Algorithms_and_Data_Structures_DSBA_2023%2F24"/>
	<link rel="alternate" type="text/html" href="https://www.wikicshse.ru/index.php?title=Algorithms_and_Data_Structures_DSBA_2023/24&amp;action=history"/>
	<updated>2026-06-06T13:24:35Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://www.wikicshse.ru/index.php?title=Algorithms_and_Data_Structures_DSBA_2023/24&amp;diff=43&amp;oldid=prev</id>
		<title>imported&gt;Nkmakarov: List of topics for exam in module 4</title>
		<link rel="alternate" type="text/html" href="https://www.wikicshse.ru/index.php?title=Algorithms_and_Data_Structures_DSBA_2023/24&amp;diff=43&amp;oldid=prev"/>
		<updated>2024-06-16T21:24:40Z</updated>

		<summary type="html">&lt;p&gt;List of topics for exam in module 4&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= About =&lt;br /&gt;
This page contains basic information for the course Algorithms and Data Structures in 2023/2024 academic year at Bachelor’s Programme &amp;#039;HSE and University of London Double Degree Programme in Data Science and Business Analytics&amp;#039; (DSBA).&lt;br /&gt;
&lt;br /&gt;
= Professors and assistants = &lt;br /&gt;
The lecturer of the course is [https://www.hse.ru/org/persons/528651897 Nikita Makarov].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Group !! 221 !! 222 !! 223 !! 224&lt;br /&gt;
|-&lt;br /&gt;
| Teacher || [https://www.hse.ru/org/persons/305061980 Andrey Borevskiy] || [https://www.hse.ru/org/persons/866476408 Julio Carrasquel] || [https://www.hse.ru/org/persons/191485259 Vladimir Kurenkov] || [https://www.hse.ru/org/persons/191485259 Vladimir Kurenkov]&lt;br /&gt;
|-&lt;br /&gt;
| Assistant || Artem Makarenkov || Anastasiya Romanova || Aleksandr Petelin || Aleksandr Petelin&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Lectures = &lt;br /&gt;
Lectures are held on Saturdays from 14:40 till 17:40.&lt;br /&gt;
&lt;br /&gt;
==Passed and planned lectures==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;9.09&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Introduction to the course&lt;br /&gt;
* Asymptotic notation&lt;br /&gt;
* Sorting algorithms: insertion sort, heap sort (including building a heap), merge sort&lt;br /&gt;
* Lower bounds of sorting&lt;br /&gt;
* Counting sort&lt;br /&gt;
&amp;#039;&amp;#039;Bibliography&amp;#039;&amp;#039;: Cormen, ch. 2, 3, 6, 8&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;16.09&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Radix sort&lt;br /&gt;
* Trees, main properties&lt;br /&gt;
* Binary search trees, main operations: searching, inserting, removing&lt;br /&gt;
* Balanced BST, AVL-tree&lt;br /&gt;
&amp;#039;&amp;#039;Bibliography&amp;#039;&amp;#039;: Cormen, ch. 8, 12, 13&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;23.09&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Red-black tree&lt;br /&gt;
* Treaps&lt;br /&gt;
&amp;#039;&amp;#039;Bibliography&amp;#039;&amp;#039;: Cormen, ch. 13&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;30.09&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Tries, compact tries&lt;br /&gt;
* PATRICIA trie, searching and inserting&lt;br /&gt;
* B-tree&lt;br /&gt;
&amp;#039;&amp;#039;Bibliography&amp;#039;&amp;#039;: Cormen, ch. 18; Mehta, Sahni, ch. 28&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;7.10&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Recap for previous topics&lt;br /&gt;
* Lecture quiz #1&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;13.10&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Hash tables&lt;br /&gt;
* String matching problem&lt;br /&gt;
* Z-algorithm&lt;br /&gt;
* Knuth-Morris-Pratt algorithm&lt;br /&gt;
&amp;#039;&amp;#039;Bibliography&amp;#039;&amp;#039;: Cormen, ch. 11; Gusfield, ch. 1, 2&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;20.10&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Knuth-Morris-Pratt algorithm&lt;br /&gt;
* Boyer-Moore algorithm&lt;br /&gt;
* Aho-Corasick algorithm&lt;br /&gt;
&amp;#039;&amp;#039;Bibliography&amp;#039;&amp;#039;: Gusfield, ch. 2, 3&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;11.11&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Suffix tree&lt;br /&gt;
* Ukkonen&amp;#039;s algorithm&lt;br /&gt;
* Applications: longest common substring, suffix array&lt;br /&gt;
&amp;#039;&amp;#039;Bibliography&amp;#039;&amp;#039;: Gusfield, ch. 5, 6, 7&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;18.11&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Dynamic programming&lt;br /&gt;
* Two conveyors problem&lt;br /&gt;
* Longest common subsequence&lt;br /&gt;
* Matrix-chain multiplication&lt;br /&gt;
&amp;#039;&amp;#039;Bibliography&amp;#039;&amp;#039;: Cormen, ch. 15&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;25.11&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Dynamic programming, matrix-chain multiplication&lt;br /&gt;
* Greedy algorithms&lt;br /&gt;
* Activity-selection problem&lt;br /&gt;
* 0-1 knapsack problem, fractional knapsack problem&lt;br /&gt;
&amp;#039;&amp;#039;Bibliography&amp;#039;&amp;#039;: Cormen, ch. 15, 16&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2.12&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Huffman codes&lt;br /&gt;
* Longest increasing subsequence&lt;br /&gt;
* Longest common subsequence (greedy algorithm)&lt;br /&gt;
&amp;#039;&amp;#039;Bibliography&amp;#039;&amp;#039;: Cormen, ch. 16&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;9.12&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Text compression&lt;br /&gt;
* Dictionary models: LZ-77, LZ-78&lt;br /&gt;
* Symbolwise models: arithmetic coding, Huffman codes&lt;br /&gt;
&amp;#039;&amp;#039;Bibliography&amp;#039;&amp;#039;: Witten, Moffat, Bell, ch. 2&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;16.12&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Lecture quiz #2&lt;br /&gt;
* Symbolwise models: adaptive Huffman codes&lt;br /&gt;
* Run-Length Encoding&lt;br /&gt;
&amp;#039;&amp;#039;Bibliography&amp;#039;&amp;#039;: Witten, Moffat, Bell, ch. 2&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;13.01&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Burrows-Wheeler transform&lt;br /&gt;
* Move-to-Front transform&lt;br /&gt;
* Prediction by partial matching&lt;br /&gt;
&amp;#039;&amp;#039;Bibliography&amp;#039;&amp;#039;: Witten, Moffat, Bell, ch. 2&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;27.01&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Graphs, main definitions, representations of graphs&lt;br /&gt;
* BFS, DFS, their applications: shortest paths, topological sort, strongly connected components&lt;br /&gt;
* Single-source shortest paths: Bellman-Ford algorithm, Dijkstra&amp;#039;s algorithm&lt;br /&gt;
&amp;#039;&amp;#039;Bibliography&amp;#039;&amp;#039;: Cormen, ch. 22, 24&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;3.02&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* All pairs shortest paths: matrix multiplication, Floyd-Warshall algorithm, Johnson&amp;#039;s algorithm&lt;br /&gt;
&amp;#039;&amp;#039;Bibliography&amp;#039;&amp;#039;: Cormen, ch. 25&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;24.02 &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Disjoint sets&lt;br /&gt;
* Minimum spanning tree, Kruskal&amp;#039;s algorithm, Prim&amp;#039;s algorithm&lt;br /&gt;
* Maximum flow, Ford-Fulkerson method&lt;br /&gt;
* Maximum bipartite matching, Kuhn&amp;#039;s algorithm&lt;br /&gt;
* Deterministic finite automata, basic definitions, samples&lt;br /&gt;
&amp;#039;&amp;#039;Bibliography&amp;#039;&amp;#039;: Cormen, ch. 21, 23, 26, Hopcroft, ch.2&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2.03&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Lecture quiz #3&lt;br /&gt;
* Deterministic finite automata&lt;br /&gt;
* Nondeterministic finite automata&lt;br /&gt;
* Equivalence of DFA and NFA&lt;br /&gt;
* NFA with epsilon-transitions&lt;br /&gt;
&amp;#039;&amp;#039;Bibliography&amp;#039;&amp;#039;: Hopcroft, ch.2&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;9.03&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Regular expressions, basic definitions&lt;br /&gt;
* Converting DFA to RE&lt;br /&gt;
* Converting RE to NFA with epsilon-transitions&lt;br /&gt;
&amp;#039;&amp;#039;Bibliography&amp;#039;&amp;#039;: Hopcroft, ch.3&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;16.03&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Equivalence of automata&lt;br /&gt;
* The pumping lemma&lt;br /&gt;
* Closure properties for regular languages&lt;br /&gt;
&amp;#039;&amp;#039;Bibliography&amp;#039;&amp;#039;: Hopcroft, ch.4&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;6.04&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Context-free grammars&lt;br /&gt;
&amp;#039;&amp;#039;Bibliography&amp;#039;&amp;#039;: Hopcroft, ch.5&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;13.04&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Pushdown automata, acceptance by final state, by empty stack, equivalence of acceptances&lt;br /&gt;
&amp;#039;&amp;#039;Bibliography&amp;#039;&amp;#039;: Hopcroft, ch.6&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;20.04&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Deterministic pushdown automata&lt;br /&gt;
* Chomsky normal form for context-free grammars&lt;br /&gt;
* The pumping lemma for context-free languages&lt;br /&gt;
&amp;#039;&amp;#039;Bibliography&amp;#039;&amp;#039;: Hopcroft, ch.6, 7&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;25.05&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* The Turing machine&lt;br /&gt;
* Suffix array, how to build without suffix tree&lt;br /&gt;
&amp;#039;&amp;#039;Bibliography&amp;#039;&amp;#039;: Hopcroft, ch.8&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1.06&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Polynomials, main operations, coefficient and point-value representation&lt;br /&gt;
* Discrete Fourier transform&lt;br /&gt;
* Fast Fourier transform&lt;br /&gt;
&amp;#039;&amp;#039;Bibliography&amp;#039;&amp;#039;: Cormen, ch.30&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;8.06&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Discrete Fourier transform&lt;br /&gt;
* Fast Fourier transform&lt;br /&gt;
* Problems solving&lt;br /&gt;
&amp;#039;&amp;#039;Bibliography&amp;#039;&amp;#039;: Cormen, ch.30&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;15.06&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Treaps with implicit keys&lt;br /&gt;
* Problems solving&lt;br /&gt;
&lt;br /&gt;
==List of topics for exam in module 1==&lt;br /&gt;
* Asymptotic notation&lt;br /&gt;
* Sorting algorithms: insertion sort, heap sort, merge sort, counting sort, radix sort&lt;br /&gt;
* Binary search trees: properties, main operations&lt;br /&gt;
* Balanced BST: red-black trees, AVL-trees, treaps&lt;br /&gt;
* Tries, compact tries&lt;br /&gt;
* B-trees&lt;br /&gt;
* Hashing&lt;br /&gt;
* String matching problem&lt;br /&gt;
* Z-algorithm&lt;br /&gt;
* Knuth-Morris-Pratt algorithm&lt;br /&gt;
* Boyer-Moore algorithm&lt;br /&gt;
* Aho-Corasick algorithm&lt;br /&gt;
&lt;br /&gt;
==List of topics for exam in module 4==&lt;br /&gt;
* Dynamic programming: two conveyors problem, longest common subsequence, matrix-chain multiplication, 0-1 knapsack problem&lt;br /&gt;
* Greedy algorithms: activity-selection problem, fractional knapsack problem, Huffman codes, longest increasing subsequence, longest common subsequence&lt;br /&gt;
* Text compression&lt;br /&gt;
* Dictionary models: LZ-77, LZ-78&lt;br /&gt;
* Symbolwise models: arithmetic coding, Huffman codes, adaptive Huffman codes&lt;br /&gt;
* Text modification: Run-Length Encoding, Burrows-Wheeler transform, Move-to-Front transform, Prediction by partial matching&lt;br /&gt;
* Graphs, main definitions, representations of graphs&lt;br /&gt;
* Graphs, BFS, DFS, their applications: shortest paths, topological sort, strongly connected components&lt;br /&gt;
* Graphs, single-source shortest paths: Bellman-Ford algorithm, Dijkstra&amp;#039;s algorithm&lt;br /&gt;
* Graphs, all pairs shortest paths: matrix multiplication, Floyd-Warshall algorithm, Johnson&amp;#039;s algorithm&lt;br /&gt;
* Graphs, minimum spanning tree, Kruskal&amp;#039;s algorithm, Prim&amp;#039;s algorithm&lt;br /&gt;
* Graphs, maximum flow, Ford-Fulkerson method, maximum bipartite matching, Kuhn&amp;#039;s algorithm&lt;br /&gt;
* Deterministic finite automata, nondeterministic finite automata, equivalence of DFA and NFA, NFA with epsilon-transitions, equivalence of automata&lt;br /&gt;
* Regular expressions, converting DFA to RE, converting RE to NFA with epsilon-transitions&lt;br /&gt;
* Context-free grammars&lt;br /&gt;
* Pushdown automata, acceptance by final state, by empty stack, equivalence of acceptances&lt;br /&gt;
* The Turing machine&lt;br /&gt;
&lt;br /&gt;
= Grading =&lt;br /&gt;
Exams are conducted at the end of module 1 and module 4. Both of them has two parts: oral and written.&lt;br /&gt;
&lt;br /&gt;
Final Grade = Module 1 Grade * 0.3 + Module 4 Grade * 0.7&lt;br /&gt;
&lt;br /&gt;
Module X Grade = Exam Grade * 0.4 + Homework Grade * 0.2 + Lectures Quizzes * 0.2 + Seminar Practice * 0.2&lt;br /&gt;
&lt;br /&gt;
Exam Grade = Oral Part Grade + Written Part Grade&lt;br /&gt;
&lt;br /&gt;
Exam Grade, Homework Grade, Lectures Quizzes and Seminar Practice are rational numbers between 0 and 10. Oral Part Grade and Written Part Grade are integer numbers between 0 and 5. &lt;br /&gt;
&lt;br /&gt;
All fractional parts are rounded up in the final estimate.&lt;br /&gt;
&lt;br /&gt;
If plagiarism is detected, the assessment element will be assigned a score of &amp;quot;0&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If the student is suspected of preparing the task not on his own, the teacher has the right to initiate additional verification or defense of this particular assessment element. Then such an  assessment element will be graded based on the additional verification or the defense.&lt;br /&gt;
&lt;br /&gt;
On the first retake the cumulative course grade is taken into consideration. On the second retake there are following rules:&lt;br /&gt;
- If the cumulative grade + 2nd retake grade &amp;gt;= 4, then the student receives the sum of these marks, multiplied by their coefficients.&lt;br /&gt;
- If the cumulative grade + 2nd retake grade &amp;lt; 4, but the 2nd retake grade &amp;gt; 7, then the student is given a 4.&lt;br /&gt;
- If the 2nd retake grade is &amp;lt;7 and the cumulative grade is &amp;lt;4, the student receives a failing grade.&lt;/div&gt;</summary>
		<author><name>imported&gt;Nkmakarov</name></author>
	</entry>
</feed>