<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.cs.hse.ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Spulari</id>
	<title>Wiki - Факультет компьютерных наук - Вклад [ru]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.cs.hse.ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Spulari"/>
	<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/Spulari"/>
	<updated>2026-09-20T20:41:04Z</updated>
	<subtitle>Вклад</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2026&amp;diff=97671</id>
		<title>Theory of computation 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2026&amp;diff=97671"/>
		<updated>2026-09-18T04:33:39Z</updated>

		<summary type="html">&lt;p&gt;Spulari: /* Lectures and seminars */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Theory of Computation =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class Telegram group:&#039;&#039;&#039; [https://t.me/+rzgHdid7QpY4NDY0 Join the class group]&lt;br /&gt;
&lt;br /&gt;
== Lectures and seminars ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:4%;&amp;quot; | No.&lt;br /&gt;
! style=&amp;quot;width:9%;&amp;quot; | Date&lt;br /&gt;
! style=&amp;quot;width:17%;&amp;quot; | Lecture&lt;br /&gt;
! style=&amp;quot;width:44%;&amp;quot; | Contents and principal results&lt;br /&gt;
! style=&amp;quot;width:13%;&amp;quot; | Lecture notes&lt;br /&gt;
! style=&amp;quot;width:13%;&amp;quot; | Seminar notes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 11 September&lt;br /&gt;
| &#039;&#039;&#039;Computational models and resource bounds&#039;&#039;&#039;&lt;br /&gt;
| Multitape deterministic Turing machines. Time complexity and the classes DTIME, P, and EXP. Space complexity and the classes DSPACE and PSPACE, with basic examples illustrating polynomial time and polynomial space.&lt;br /&gt;
| [https://drive.google.com/file/d/1AmNOOyn4xKrCpmtWYbBj7Thk5HhZnQTb/view?usp=sharing Lecture notes]&lt;br /&gt;
| [https://drive.google.com/file/d/1t-eYK1s320IL0Ww6c7YypAXO1zDUEvGI/view?usp=sharing Seminar notes]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 18 September&lt;br /&gt;
| &#039;&#039;&#039;Resource bounds, nondeterminism, and NP&#039;&#039;&#039;&lt;br /&gt;
| Relations between time and space: DTIME(t) ⊆ DSPACE(t), P ⊆ PSPACE, and PSPACE ⊆ EXP. Simulation between Turing-machine models and universal computation. Nondeterministic Turing machines, NP, and polynomial-time verifiers; equivalence of the machine and verifier definitions. Polynomial-time many-one reductions, NP-hardness, and NP-completeness.&lt;br /&gt;
| [https://drive.google.com/file/d/1dh-zh5jq7g0xTgjeftjw3cnRh4jVkBMO/view?usp=sharing Lecture notes]&lt;br /&gt;
| [https://drive.google.com/file/d/1fa-U8JLTacMsfjM4d_koHIIkDxbDESzV/view?usp=sharing Seminar notes]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;The Cook–Levin theorem&#039;&#039;&#039;&lt;br /&gt;
| Tableau proof that Boolean satisfiability is NP-complete: encoding configurations, local transitions, the initial configuration, and acceptance.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Time and space hierarchy theorems&#039;&#039;&#039;&lt;br /&gt;
| Diagonalization and universal simulation. Full proofs of the deterministic time hierarchy theorem and the deterministic space hierarchy theorem.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Space complexity and Savitch&#039;s theorem&#039;&#039;&#039;&lt;br /&gt;
| Configuration graphs and STCON as an NL-complete problem. Recursive reachability and the proof of NSPACE(s) ⊆ DSPACE(s²); in particular, NPSPACE = PSPACE.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;The Immerman–Szelepcsényi theorem&#039;&#039;&#039;&lt;br /&gt;
| Inductive counting of reachable configurations and the complete proof that nondeterministic space is closed under complement; in particular, NL = coNL.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;PSPACE-completeness&#039;&#039;&#039;&lt;br /&gt;
| Quantified Boolean formulas and recursive evaluation. Complete proof that TQBF is PSPACE-complete via polynomial-space configuration reachability; applications to games and planning.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Boolean circuits and nonuniformity&#039;&#039;&#039;&lt;br /&gt;
| Circuit families, size, and depth. Simulation of polynomial-time machines by polynomial-size circuits; P ⊆ P/poly and the characterization of P/poly by polynomial advice.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Circuit size and parallel computation&#039;&#039;&#039;&lt;br /&gt;
| The counting lower bound for Boolean circuits. Uniformity; the classes AC and NC; elementary depth lower bounds, the locality of NC⁰, and a constant-depth construction for binary addition.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;The polynomial hierarchy&#039;&#039;&#039;&lt;br /&gt;
| The classes Σₖᴾ and Πₖᴾ and their quantified-predicate characterizations. Complete quantified-circuit problems, collapse of the hierarchy, and PH ⊆ PSPACE.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Randomized computation&#039;&#039;&#039;&lt;br /&gt;
| Probabilistic machines and the classes RP, coRP, ZPP, and BPP. Error amplification, ZPP = RP ∩ coRP, and the probabilistic proof that BPP ⊆ P/poly.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;The Sipser–Gács–Lautemann theorem&#039;&#039;&#039;&lt;br /&gt;
| Amplification to exponentially small error, translations of accepting random strings, and the covering lemma. Full proof that BPP ⊆ Σ₂ᴾ ∩ Π₂ᴾ.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Lecturers ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Role&lt;br /&gt;
! Lecturer&lt;br /&gt;
! Contact&lt;br /&gt;
! Office hours&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Lecturer&#039;&#039;&#039;&lt;br /&gt;
| Subin Pulari&lt;br /&gt;
| Telegram: @spulari&amp;lt;br&amp;gt;Email: spulari@hse.ru&lt;br /&gt;
| Monday–Friday, by appointment via Telegram or email&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Seminar lecturer&#039;&#039;&#039;&lt;br /&gt;
| Yaroslav Ivanashev&lt;br /&gt;
| Telegram: @ivanashev&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* Sanjeev Arora and Boaz Barak, &#039;&#039;[https://www.cambridge.org/core/books/computational-complexity/3453CAFDEB0B4820B186FE69A64E1086 Computational Complexity: A Modern Approach]&#039;&#039;, Cambridge University Press, 2009.&lt;br /&gt;
* Michael Sipser, &#039;&#039;[https://www.cengage.com/c/student/9781133187790/ Introduction to the Theory of Computation]&#039;&#039;, 3rd edition, Cengage, 2013.&lt;br /&gt;
&lt;br /&gt;
== Evaluation scheme ==&lt;br /&gt;
&lt;br /&gt;
The course has one &#039;&#039;&#039;midterm assessment&#039;&#039;&#039; and one &#039;&#039;&#039;end-term assessment&#039;&#039;&#039;. Each assessment consists of one colloquium and one written examination.&lt;br /&gt;
&lt;br /&gt;
Let &#039;&#039;C&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt;&#039;&#039; and &#039;&#039;C&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;&#039;&#039; denote the two colloquium scores, and let &#039;&#039;E&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt;&#039;&#039; and &#039;&#039;E&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;&#039;&#039; denote the two examination scores. The aggregate scores are&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;big&amp;gt;&#039;&#039;&#039;C = (C&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt; + C&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;)/2, &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; E = (E&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt; + E&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;)/2.&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The final course score is&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;big&amp;gt;&#039;&#039;&#039;Final score = 0.6 C + 0.4 E&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;/div&gt;</summary>
		<author><name>Spulari</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2026&amp;diff=97659</id>
		<title>Theory of computation 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2026&amp;diff=97659"/>
		<updated>2026-09-17T09:35:18Z</updated>

		<summary type="html">&lt;p&gt;Spulari: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Theory of Computation =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class Telegram group:&#039;&#039;&#039; [https://t.me/+rzgHdid7QpY4NDY0 Join the class group]&lt;br /&gt;
&lt;br /&gt;
== Lectures and seminars ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:4%;&amp;quot; | No.&lt;br /&gt;
! style=&amp;quot;width:9%;&amp;quot; | Date&lt;br /&gt;
! style=&amp;quot;width:17%;&amp;quot; | Lecture&lt;br /&gt;
! style=&amp;quot;width:44%;&amp;quot; | Contents and principal results&lt;br /&gt;
! style=&amp;quot;width:13%;&amp;quot; | Lecture notes&lt;br /&gt;
! style=&amp;quot;width:13%;&amp;quot; | Seminar notes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 11 September&lt;br /&gt;
| &#039;&#039;&#039;Computational models and resource bounds&#039;&#039;&#039;&lt;br /&gt;
| Multitape deterministic Turing machines. Time complexity and the classes DTIME, P, and EXP. Space complexity and the classes DSPACE and PSPACE, with basic examples illustrating polynomial time and polynomial space.&lt;br /&gt;
| [https://drive.google.com/file/d/1AmNOOyn4xKrCpmtWYbBj7Thk5HhZnQTb/view?usp=sharing Lecture notes]&lt;br /&gt;
| [https://drive.google.com/file/d/1t-eYK1s320IL0Ww6c7YypAXO1zDUEvGI/view?usp=sharing Seminar notes]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 18 September&lt;br /&gt;
| &#039;&#039;&#039;Resource bounds, nondeterminism, and NP&#039;&#039;&#039;&lt;br /&gt;
| Relations between time and space: DTIME(t) ⊆ DSPACE(t), P ⊆ PSPACE, and PSPACE ⊆ EXP. Simulation between Turing-machine models and universal computation. Nondeterministic Turing machines, NP, and polynomial-time verifiers; equivalence of the machine and verifier definitions. Polynomial-time many-one reductions, NP-hardness, and NP-completeness.&lt;br /&gt;
| [https://drive.google.com/file/d/1dh-zh5jq7g0xTgjeftjw3cnRh4jVkBMO/view?usp=sharing Lecture notes]&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;The Cook–Levin theorem&#039;&#039;&#039;&lt;br /&gt;
| Tableau proof that Boolean satisfiability is NP-complete: encoding configurations, local transitions, the initial configuration, and acceptance.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Time and space hierarchy theorems&#039;&#039;&#039;&lt;br /&gt;
| Diagonalization and universal simulation. Full proofs of the deterministic time hierarchy theorem and the deterministic space hierarchy theorem.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Space complexity and Savitch&#039;s theorem&#039;&#039;&#039;&lt;br /&gt;
| Configuration graphs and STCON as an NL-complete problem. Recursive reachability and the proof of NSPACE(s) ⊆ DSPACE(s²); in particular, NPSPACE = PSPACE.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;The Immerman–Szelepcsényi theorem&#039;&#039;&#039;&lt;br /&gt;
| Inductive counting of reachable configurations and the complete proof that nondeterministic space is closed under complement; in particular, NL = coNL.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;PSPACE-completeness&#039;&#039;&#039;&lt;br /&gt;
| Quantified Boolean formulas and recursive evaluation. Complete proof that TQBF is PSPACE-complete via polynomial-space configuration reachability; applications to games and planning.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Boolean circuits and nonuniformity&#039;&#039;&#039;&lt;br /&gt;
| Circuit families, size, and depth. Simulation of polynomial-time machines by polynomial-size circuits; P ⊆ P/poly and the characterization of P/poly by polynomial advice.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Circuit size and parallel computation&#039;&#039;&#039;&lt;br /&gt;
| The counting lower bound for Boolean circuits. Uniformity; the classes AC and NC; elementary depth lower bounds, the locality of NC⁰, and a constant-depth construction for binary addition.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;The polynomial hierarchy&#039;&#039;&#039;&lt;br /&gt;
| The classes Σₖᴾ and Πₖᴾ and their quantified-predicate characterizations. Complete quantified-circuit problems, collapse of the hierarchy, and PH ⊆ PSPACE.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Randomized computation&#039;&#039;&#039;&lt;br /&gt;
| Probabilistic machines and the classes RP, coRP, ZPP, and BPP. Error amplification, ZPP = RP ∩ coRP, and the probabilistic proof that BPP ⊆ P/poly.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;The Sipser–Gács–Lautemann theorem&#039;&#039;&#039;&lt;br /&gt;
| Amplification to exponentially small error, translations of accepting random strings, and the covering lemma. Full proof that BPP ⊆ Σ₂ᴾ ∩ Π₂ᴾ.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Lecturers ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Role&lt;br /&gt;
! Lecturer&lt;br /&gt;
! Contact&lt;br /&gt;
! Office hours&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Lecturer&#039;&#039;&#039;&lt;br /&gt;
| Subin Pulari&lt;br /&gt;
| Telegram: @spulari&amp;lt;br&amp;gt;Email: spulari@hse.ru&lt;br /&gt;
| Monday–Friday, by appointment via Telegram or email&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Seminar lecturer&#039;&#039;&#039;&lt;br /&gt;
| Yaroslav Ivanashev&lt;br /&gt;
| Telegram: @ivanashev&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* Sanjeev Arora and Boaz Barak, &#039;&#039;[https://www.cambridge.org/core/books/computational-complexity/3453CAFDEB0B4820B186FE69A64E1086 Computational Complexity: A Modern Approach]&#039;&#039;, Cambridge University Press, 2009.&lt;br /&gt;
* Michael Sipser, &#039;&#039;[https://www.cengage.com/c/student/9781133187790/ Introduction to the Theory of Computation]&#039;&#039;, 3rd edition, Cengage, 2013.&lt;br /&gt;
&lt;br /&gt;
== Evaluation scheme ==&lt;br /&gt;
&lt;br /&gt;
The course has one &#039;&#039;&#039;midterm assessment&#039;&#039;&#039; and one &#039;&#039;&#039;end-term assessment&#039;&#039;&#039;. Each assessment consists of one colloquium and one written examination.&lt;br /&gt;
&lt;br /&gt;
Let &#039;&#039;C&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt;&#039;&#039; and &#039;&#039;C&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;&#039;&#039; denote the two colloquium scores, and let &#039;&#039;E&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt;&#039;&#039; and &#039;&#039;E&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;&#039;&#039; denote the two examination scores. The aggregate scores are&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;big&amp;gt;&#039;&#039;&#039;C = (C&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt; + C&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;)/2, &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; E = (E&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt; + E&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;)/2.&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The final course score is&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;big&amp;gt;&#039;&#039;&#039;Final score = 0.6 C + 0.4 E&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;/div&gt;</summary>
		<author><name>Spulari</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2026&amp;diff=97658</id>
		<title>Theory of computation 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2026&amp;diff=97658"/>
		<updated>2026-09-17T09:33:48Z</updated>

		<summary type="html">&lt;p&gt;Spulari: /* Lectures and seminars */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Theory of Computation =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class Telegram group:&#039;&#039;&#039; [https://t.me/+rzgHdid7QpY4NDY0 Join the class group]&lt;br /&gt;
&lt;br /&gt;
== Lectures and seminars ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:4%;&amp;quot; | No.&lt;br /&gt;
! style=&amp;quot;width:9%;&amp;quot; | Date&lt;br /&gt;
! style=&amp;quot;width:17%;&amp;quot; | Lecture&lt;br /&gt;
! style=&amp;quot;width:44%;&amp;quot; | Contents and principal results&lt;br /&gt;
! style=&amp;quot;width:13%;&amp;quot; | Lecture notes&lt;br /&gt;
! style=&amp;quot;width:13%;&amp;quot; | Seminar notes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 11 September&lt;br /&gt;
| &#039;&#039;&#039;Computational models and resource bounds&#039;&#039;&#039;&lt;br /&gt;
| Multitape deterministic Turing machines. Time complexity and the classes DTIME, P, and EXP. Space complexity and the classes DSPACE and PSPACE, with basic examples illustrating polynomial time and polynomial space.&lt;br /&gt;
| [https://drive.google.com/file/d/1AmNOOyn4xKrCpmtWYbBj7Thk5HhZnQTb/view?usp=sharing Lecture notes]&lt;br /&gt;
| [https://drive.google.com/file/d/1t-eYK1s320IL0Ww6c7YypAXO1zDUEvGI/view?usp=sharing Seminar notes]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 18 September&lt;br /&gt;
| &#039;&#039;&#039;Resource bounds, nondeterminism, and NP&#039;&#039;&#039;&lt;br /&gt;
| Relations between time and space: DTIME(t) ⊆ DSPACE(t), P ⊆ PSPACE, and PSPACE ⊆ EXP. Simulation between Turing-machine models and universal computation. Nondeterministic Turing machines, NP, and polynomial-time verifiers; equivalence of the machine and verifier definitions. Polynomial-time many-one reductions, NP-hardness, and NP-completeness.&lt;br /&gt;
| [https://drive.google.com/file/d/1dh-zh5jq7g0xTgjeftjw3cnRh4jVkBMO/view?usp=sharing Lecture notes]&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;The Cook–Levin theorem&#039;&#039;&#039;&lt;br /&gt;
| Tableau proof that Boolean satisfiability is NP-complete: encoding configurations, local transitions, the initial configuration, and acceptance.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Time and space hierarchy theorems&#039;&#039;&#039;&lt;br /&gt;
| Diagonalization and universal simulation. Full proofs of the deterministic time hierarchy theorem and the deterministic space hierarchy theorem.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Space complexity and Savitch&#039;s theorem&#039;&#039;&#039;&lt;br /&gt;
| Configuration graphs and STCON as an NL-complete problem. Recursive reachability and the proof of NSPACE(s) ⊆ DSPACE(s²); in particular, NPSPACE = PSPACE.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;The Immerman–Szelepcsényi theorem&#039;&#039;&#039;&lt;br /&gt;
| Inductive counting of reachable configurations and the complete proof that nondeterministic space is closed under complement; in particular, NL = coNL.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;PSPACE-completeness&#039;&#039;&#039;&lt;br /&gt;
| Quantified Boolean formulas and recursive evaluation. Complete proof that TQBF is PSPACE-complete via polynomial-space configuration reachability; applications to games and planning.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Boolean circuits and nonuniformity&#039;&#039;&#039;&lt;br /&gt;
| Circuit families, size, and depth. Simulation of polynomial-time machines by polynomial-size circuits; P ⊆ P/poly and the characterization of P/poly by polynomial advice.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Circuit size and parallel computation&#039;&#039;&#039;&lt;br /&gt;
| The counting lower bound for Boolean circuits. Uniformity; the classes AC and NC; elementary depth lower bounds, the locality of NC⁰, and a constant-depth construction for binary addition.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;The polynomial hierarchy&#039;&#039;&#039;&lt;br /&gt;
| The classes Σₖᴾ and Πₖᴾ and their quantified-predicate characterizations. Complete quantified-circuit problems, collapse of the hierarchy, and PH ⊆ PSPACE.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Randomized computation&#039;&#039;&#039;&lt;br /&gt;
| Probabilistic machines and the classes RP, coRP, ZPP, and BPP. Error amplification, ZPP = RP ∩ coRP, and the probabilistic proof that BPP ⊆ P/poly.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;The Sipser–Gács–Lautemann theorem&#039;&#039;&#039;&lt;br /&gt;
| Amplification to exponentially small error, translations of accepting random strings, and the covering lemma. Full proof that BPP ⊆ Σ₂ᴾ ∩ Π₂ᴾ.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Lecturers ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Role&lt;br /&gt;
! Lecturer&lt;br /&gt;
! Contact&lt;br /&gt;
! Office hours&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Lecturer&#039;&#039;&#039;&lt;br /&gt;
| Subin Pulari&lt;br /&gt;
| Telegram: @spulari&amp;lt;br&amp;gt;Email: spulari@hse.ru&lt;br /&gt;
| Monday–Friday, by appointment via Telegram or email&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Seminar lecturer&#039;&#039;&#039;&lt;br /&gt;
| Yaroslav Ivanashev&lt;br /&gt;
| Telegram: @ivanashev&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* Sanjeev Arora and Boaz Barak, &#039;&#039;Computational Complexity: A Modern Approach&#039;&#039;.&lt;br /&gt;
* Michael Sipser, &#039;&#039;Introduction to the Theory of Computation&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Evaluation scheme ==&lt;br /&gt;
&lt;br /&gt;
The course has one &#039;&#039;&#039;midterm assessment&#039;&#039;&#039; and one &#039;&#039;&#039;end-term assessment&#039;&#039;&#039;. Each assessment consists of one colloquium and one written examination.&lt;br /&gt;
&lt;br /&gt;
Let &#039;&#039;C&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt;&#039;&#039; and &#039;&#039;C&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;&#039;&#039; denote the two colloquium scores, and let &#039;&#039;E&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt;&#039;&#039; and &#039;&#039;E&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;&#039;&#039; denote the two examination scores. The aggregate scores are&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;big&amp;gt;&#039;&#039;&#039;C = (C&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt; + C&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;)/2, &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; E = (E&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt; + E&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;)/2.&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The final course score is&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;big&amp;gt;&#039;&#039;&#039;Final score = 0.6 C + 0.4 E&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;/div&gt;</summary>
		<author><name>Spulari</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2026&amp;diff=97656</id>
		<title>Theory of computation 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2026&amp;diff=97656"/>
		<updated>2026-09-17T09:31:28Z</updated>

		<summary type="html">&lt;p&gt;Spulari: /* Lectures and seminars */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Theory of Computation =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class Telegram group:&#039;&#039;&#039; [https://t.me/+rzgHdid7QpY4NDY0 Join the class group]&lt;br /&gt;
&lt;br /&gt;
== Lectures and seminars ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:4%;&amp;quot; | No.&lt;br /&gt;
! style=&amp;quot;width:9%;&amp;quot; | Date&lt;br /&gt;
! style=&amp;quot;width:17%;&amp;quot; | Lecture&lt;br /&gt;
! style=&amp;quot;width:44%;&amp;quot; | Contents and principal results&lt;br /&gt;
! style=&amp;quot;width:13%;&amp;quot; | Lecture notes&lt;br /&gt;
! style=&amp;quot;width:13%;&amp;quot; | Seminar notes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 11 September&lt;br /&gt;
| &#039;&#039;&#039;Computational models and resource bounds&#039;&#039;&#039;&lt;br /&gt;
| Multitape Turing machines and efficient universal simulation. Time and space complexity; DTIME, DSPACE, P, PSPACE, and EXP. Time- and space-constructible bounds.&lt;br /&gt;
| [https://drive.google.com/file/d/1AmNOOyn4xKrCpmtWYbBj7Thk5HhZnQTb/view?usp=sharing Lecture notes]&lt;br /&gt;
| [https://drive.google.com/file/d/1t-eYK1s320IL0Ww6c7YypAXO1zDUEvGI/view?usp=sharing Seminar notes]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 18 September&lt;br /&gt;
| &#039;&#039;&#039;Nondeterminism, NP, and reductions&#039;&#039;&#039;&lt;br /&gt;
| Nondeterministic machines and polynomial-time verifiers; proof of their equivalence. Polynomial-time many-one reductions, NP-hardness, and NP-completeness.&lt;br /&gt;
| [https://drive.google.com/file/d/1dh-zh5jq7g0xTgjeftjw3cnRh4jVkBMO/view?usp=sharing Lecture notes]&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;The Cook–Levin theorem&#039;&#039;&#039;&lt;br /&gt;
| Tableau proof that Boolean satisfiability is NP-complete: encoding configurations, local transitions, the initial configuration, and acceptance.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Time and space hierarchy theorems&#039;&#039;&#039;&lt;br /&gt;
| Diagonalization and universal simulation. Full proofs of the deterministic time hierarchy theorem and the deterministic space hierarchy theorem.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Space complexity and Savitch&#039;s theorem&#039;&#039;&#039;&lt;br /&gt;
| Configuration graphs and STCON as an NL-complete problem. Recursive reachability and the proof of NSPACE(s) ⊆ DSPACE(s²); in particular, NPSPACE = PSPACE.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;The Immerman–Szelepcsényi theorem&#039;&#039;&#039;&lt;br /&gt;
| Inductive counting of reachable configurations and the complete proof that nondeterministic space is closed under complement; in particular, NL = coNL.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;PSPACE-completeness&#039;&#039;&#039;&lt;br /&gt;
| Quantified Boolean formulas and recursive evaluation. Complete proof that TQBF is PSPACE-complete via polynomial-space configuration reachability; applications to games and planning.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Boolean circuits and nonuniformity&#039;&#039;&#039;&lt;br /&gt;
| Circuit families, size, and depth. Simulation of polynomial-time machines by polynomial-size circuits; P ⊆ P/poly and the characterization of P/poly by polynomial advice.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Circuit size and parallel computation&#039;&#039;&#039;&lt;br /&gt;
| The counting lower bound for Boolean circuits. Uniformity; the classes AC and NC; elementary depth lower bounds, the locality of NC⁰, and a constant-depth construction for binary addition.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;The polynomial hierarchy&#039;&#039;&#039;&lt;br /&gt;
| The classes Σₖᴾ and Πₖᴾ and their quantified-predicate characterizations. Complete quantified-circuit problems, collapse of the hierarchy, and PH ⊆ PSPACE.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Randomized computation&#039;&#039;&#039;&lt;br /&gt;
| Probabilistic machines and the classes RP, coRP, ZPP, and BPP. Error amplification, ZPP = RP ∩ coRP, and the probabilistic proof that BPP ⊆ P/poly.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;The Sipser–Gács–Lautemann theorem&#039;&#039;&#039;&lt;br /&gt;
| Amplification to exponentially small error, translations of accepting random strings, and the covering lemma. Full proof that BPP ⊆ Σ₂ᴾ ∩ Π₂ᴾ.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Lecturers ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Role&lt;br /&gt;
! Lecturer&lt;br /&gt;
! Contact&lt;br /&gt;
! Office hours&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Lecturer&#039;&#039;&#039;&lt;br /&gt;
| Subin Pulari&lt;br /&gt;
| Telegram: @spulari&amp;lt;br&amp;gt;Email: spulari@hse.ru&lt;br /&gt;
| Monday–Friday, by appointment via Telegram or email&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Seminar lecturer&#039;&#039;&#039;&lt;br /&gt;
| Yaroslav Ivanashev&lt;br /&gt;
| Telegram: @ivanashev&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* Sanjeev Arora and Boaz Barak, &#039;&#039;Computational Complexity: A Modern Approach&#039;&#039;.&lt;br /&gt;
* Michael Sipser, &#039;&#039;Introduction to the Theory of Computation&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Evaluation scheme ==&lt;br /&gt;
&lt;br /&gt;
The course has one &#039;&#039;&#039;midterm assessment&#039;&#039;&#039; and one &#039;&#039;&#039;end-term assessment&#039;&#039;&#039;. Each assessment consists of one colloquium and one written examination.&lt;br /&gt;
&lt;br /&gt;
Let &#039;&#039;C&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt;&#039;&#039; and &#039;&#039;C&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;&#039;&#039; denote the two colloquium scores, and let &#039;&#039;E&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt;&#039;&#039; and &#039;&#039;E&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;&#039;&#039; denote the two examination scores. The aggregate scores are&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;big&amp;gt;&#039;&#039;&#039;C = (C&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt; + C&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;)/2, &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; E = (E&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt; + E&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;)/2.&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The final course score is&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;big&amp;gt;&#039;&#039;&#039;Final score = 0.6 C + 0.4 E&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;/div&gt;</summary>
		<author><name>Spulari</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2026&amp;diff=97480</id>
		<title>Theory of computation 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2026&amp;diff=97480"/>
		<updated>2026-09-11T04:39:59Z</updated>

		<summary type="html">&lt;p&gt;Spulari: /* Theory of Computation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Theory of Computation =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class Telegram group:&#039;&#039;&#039; [https://t.me/+rzgHdid7QpY4NDY0 Join the class group]&lt;br /&gt;
&lt;br /&gt;
== Lectures and seminars ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:4%;&amp;quot; | No.&lt;br /&gt;
! style=&amp;quot;width:9%;&amp;quot; | Date&lt;br /&gt;
! style=&amp;quot;width:17%;&amp;quot; | Lecture&lt;br /&gt;
! style=&amp;quot;width:44%;&amp;quot; | Contents and principal results&lt;br /&gt;
! style=&amp;quot;width:13%;&amp;quot; | Lecture notes&lt;br /&gt;
! style=&amp;quot;width:13%;&amp;quot; | Seminar notes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 11 September&lt;br /&gt;
| &#039;&#039;&#039;Computational models and resource bounds&#039;&#039;&#039;&lt;br /&gt;
| Multitape Turing machines and efficient universal simulation. Time and space complexity; DTIME, DSPACE, P, PSPACE, and EXP. Time- and space-constructible bounds.&lt;br /&gt;
| [https://drive.google.com/file/d/1AmNOOyn4xKrCpmtWYbBj7Thk5HhZnQTb/view?usp=sharing Lecture notes]&lt;br /&gt;
| [https://drive.google.com/file/d/1t-eYK1s320IL0Ww6c7YypAXO1zDUEvGI/view?usp=sharing Seminar notes]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Nondeterminism, NP, and reductions&#039;&#039;&#039;&lt;br /&gt;
| Nondeterministic machines and polynomial-time verifiers; proof of their equivalence. Polynomial-time many-one reductions, NP-hardness, and NP-completeness.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;The Cook–Levin theorem&#039;&#039;&#039;&lt;br /&gt;
| Tableau proof that Boolean satisfiability is NP-complete: encoding configurations, local transitions, the initial configuration, and acceptance.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Time and space hierarchy theorems&#039;&#039;&#039;&lt;br /&gt;
| Diagonalization and universal simulation. Full proofs of the deterministic time hierarchy theorem and the deterministic space hierarchy theorem.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Space complexity and Savitch&#039;s theorem&#039;&#039;&#039;&lt;br /&gt;
| Configuration graphs and STCON as an NL-complete problem. Recursive reachability and the proof of NSPACE(s) ⊆ DSPACE(s²); in particular, NPSPACE = PSPACE.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;The Immerman–Szelepcsényi theorem&#039;&#039;&#039;&lt;br /&gt;
| Inductive counting of reachable configurations and the complete proof that nondeterministic space is closed under complement; in particular, NL = coNL.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;PSPACE-completeness&#039;&#039;&#039;&lt;br /&gt;
| Quantified Boolean formulas and recursive evaluation. Complete proof that TQBF is PSPACE-complete via polynomial-space configuration reachability; applications to games and planning.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Boolean circuits and nonuniformity&#039;&#039;&#039;&lt;br /&gt;
| Circuit families, size, and depth. Simulation of polynomial-time machines by polynomial-size circuits; P ⊆ P/poly and the characterization of P/poly by polynomial advice.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Circuit size and parallel computation&#039;&#039;&#039;&lt;br /&gt;
| The counting lower bound for Boolean circuits. Uniformity; the classes AC and NC; elementary depth lower bounds, the locality of NC⁰, and a constant-depth construction for binary addition.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;The polynomial hierarchy&#039;&#039;&#039;&lt;br /&gt;
| The classes Σₖᴾ and Πₖᴾ and their quantified-predicate characterizations. Complete quantified-circuit problems, collapse of the hierarchy, and PH ⊆ PSPACE.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Randomized computation&#039;&#039;&#039;&lt;br /&gt;
| Probabilistic machines and the classes RP, coRP, ZPP, and BPP. Error amplification, ZPP = RP ∩ coRP, and the probabilistic proof that BPP ⊆ P/poly.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;The Sipser–Gács–Lautemann theorem&#039;&#039;&#039;&lt;br /&gt;
| Amplification to exponentially small error, translations of accepting random strings, and the covering lemma. Full proof that BPP ⊆ Σ₂ᴾ ∩ Π₂ᴾ.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Lecturers ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Role&lt;br /&gt;
! Lecturer&lt;br /&gt;
! Contact&lt;br /&gt;
! Office hours&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Lecturer&#039;&#039;&#039;&lt;br /&gt;
| Subin Pulari&lt;br /&gt;
| Telegram: @spulari&amp;lt;br&amp;gt;Email: spulari@hse.ru&lt;br /&gt;
| Monday–Friday, by appointment via Telegram or email&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Seminar lecturer&#039;&#039;&#039;&lt;br /&gt;
| Yaroslav Ivanashev&lt;br /&gt;
| Telegram: @ivanashev&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* Sanjeev Arora and Boaz Barak, &#039;&#039;Computational Complexity: A Modern Approach&#039;&#039;.&lt;br /&gt;
* Michael Sipser, &#039;&#039;Introduction to the Theory of Computation&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Evaluation scheme ==&lt;br /&gt;
&lt;br /&gt;
The course has one &#039;&#039;&#039;midterm assessment&#039;&#039;&#039; and one &#039;&#039;&#039;end-term assessment&#039;&#039;&#039;. Each assessment consists of one colloquium and one written examination.&lt;br /&gt;
&lt;br /&gt;
Let &#039;&#039;C&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt;&#039;&#039; and &#039;&#039;C&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;&#039;&#039; denote the two colloquium scores, and let &#039;&#039;E&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt;&#039;&#039; and &#039;&#039;E&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;&#039;&#039; denote the two examination scores. The aggregate scores are&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;big&amp;gt;&#039;&#039;&#039;C = (C&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt; + C&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;)/2, &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; E = (E&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt; + E&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;)/2.&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The final course score is&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;big&amp;gt;&#039;&#039;&#039;Final score = 0.6 C + 0.4 E&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;/div&gt;</summary>
		<author><name>Spulari</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2026&amp;diff=97479</id>
		<title>Theory of computation 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2026&amp;diff=97479"/>
		<updated>2026-09-10T20:55:44Z</updated>

		<summary type="html">&lt;p&gt;Spulari: /* Theory of Computation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Theory of Computation =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class Telegram group:&#039;&#039;&#039; [https://t.me/+rzgHdid7QpY4NDY0 Join the class group]&lt;br /&gt;
&lt;br /&gt;
== Lectures and seminars ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:4%;&amp;quot; | No.&lt;br /&gt;
! style=&amp;quot;width:9%;&amp;quot; | Date&lt;br /&gt;
! style=&amp;quot;width:17%;&amp;quot; | Lecture&lt;br /&gt;
! style=&amp;quot;width:44%;&amp;quot; | Contents and principal results&lt;br /&gt;
! style=&amp;quot;width:13%;&amp;quot; | Lecture notes&lt;br /&gt;
! style=&amp;quot;width:13%;&amp;quot; | Seminar notes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 11 September&lt;br /&gt;
| &#039;&#039;&#039;Computational models and resource bounds&#039;&#039;&#039;&lt;br /&gt;
| Multitape Turing machines and efficient universal simulation. Time and space complexity; DTIME, DSPACE, P, PSPACE, and EXP. Time- and space-constructible bounds.&lt;br /&gt;
| [https://drive.google.com/file/d/1AmNOOyn4xKrCpmtWYbBj7Thk5HhZnQTb/view?usp=sharing Lecture notes]&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Nondeterminism, NP, and reductions&#039;&#039;&#039;&lt;br /&gt;
| Nondeterministic machines and polynomial-time verifiers; proof of their equivalence. Polynomial-time many-one reductions, NP-hardness, and NP-completeness.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;The Cook–Levin theorem&#039;&#039;&#039;&lt;br /&gt;
| Tableau proof that Boolean satisfiability is NP-complete: encoding configurations, local transitions, the initial configuration, and acceptance.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Time and space hierarchy theorems&#039;&#039;&#039;&lt;br /&gt;
| Diagonalization and universal simulation. Full proofs of the deterministic time hierarchy theorem and the deterministic space hierarchy theorem.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Space complexity and Savitch&#039;s theorem&#039;&#039;&#039;&lt;br /&gt;
| Configuration graphs and STCON as an NL-complete problem. Recursive reachability and the proof of NSPACE(s) ⊆ DSPACE(s²); in particular, NPSPACE = PSPACE.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;The Immerman–Szelepcsényi theorem&#039;&#039;&#039;&lt;br /&gt;
| Inductive counting of reachable configurations and the complete proof that nondeterministic space is closed under complement; in particular, NL = coNL.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;PSPACE-completeness&#039;&#039;&#039;&lt;br /&gt;
| Quantified Boolean formulas and recursive evaluation. Complete proof that TQBF is PSPACE-complete via polynomial-space configuration reachability; applications to games and planning.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Boolean circuits and nonuniformity&#039;&#039;&#039;&lt;br /&gt;
| Circuit families, size, and depth. Simulation of polynomial-time machines by polynomial-size circuits; P ⊆ P/poly and the characterization of P/poly by polynomial advice.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Circuit size and parallel computation&#039;&#039;&#039;&lt;br /&gt;
| The counting lower bound for Boolean circuits. Uniformity; the classes AC and NC; elementary depth lower bounds, the locality of NC⁰, and a constant-depth construction for binary addition.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;The polynomial hierarchy&#039;&#039;&#039;&lt;br /&gt;
| The classes Σₖᴾ and Πₖᴾ and their quantified-predicate characterizations. Complete quantified-circuit problems, collapse of the hierarchy, and PH ⊆ PSPACE.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Randomized computation&#039;&#039;&#039;&lt;br /&gt;
| Probabilistic machines and the classes RP, coRP, ZPP, and BPP. Error amplification, ZPP = RP ∩ coRP, and the probabilistic proof that BPP ⊆ P/poly.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;The Sipser–Gács–Lautemann theorem&#039;&#039;&#039;&lt;br /&gt;
| Amplification to exponentially small error, translations of accepting random strings, and the covering lemma. Full proof that BPP ⊆ Σ₂ᴾ ∩ Π₂ᴾ.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Lecturers ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Role&lt;br /&gt;
! Lecturer&lt;br /&gt;
! Contact&lt;br /&gt;
! Office hours&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Lecturer&#039;&#039;&#039;&lt;br /&gt;
| Subin Pulari&lt;br /&gt;
| Telegram: @spulari&amp;lt;br&amp;gt;Email: spulari@hse.ru&lt;br /&gt;
| Monday–Friday, by appointment via Telegram or email&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Seminar lecturer&#039;&#039;&#039;&lt;br /&gt;
| Yaroslav Ivanashev&lt;br /&gt;
| Telegram: @ivanashev&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* Sanjeev Arora and Boaz Barak, &#039;&#039;Computational Complexity: A Modern Approach&#039;&#039;.&lt;br /&gt;
* Michael Sipser, &#039;&#039;Introduction to the Theory of Computation&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Evaluation scheme ==&lt;br /&gt;
&lt;br /&gt;
The course has one &#039;&#039;&#039;midterm assessment&#039;&#039;&#039; and one &#039;&#039;&#039;end-term assessment&#039;&#039;&#039;. Each assessment consists of one colloquium and one written examination.&lt;br /&gt;
&lt;br /&gt;
Let &#039;&#039;C&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt;&#039;&#039; and &#039;&#039;C&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;&#039;&#039; denote the two colloquium scores, and let &#039;&#039;E&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt;&#039;&#039; and &#039;&#039;E&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;&#039;&#039; denote the two examination scores. The aggregate scores are&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;big&amp;gt;&#039;&#039;&#039;C = (C&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt; + C&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;)/2, &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; E = (E&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt; + E&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;)/2.&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The final course score is&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;big&amp;gt;&#039;&#039;&#039;Final score = 0.6 C + 0.4 E&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;/div&gt;</summary>
		<author><name>Spulari</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2026&amp;diff=97378</id>
		<title>Theory of computation 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2026&amp;diff=97378"/>
		<updated>2026-09-09T08:22:39Z</updated>

		<summary type="html">&lt;p&gt;Spulari: /* Theory of Computation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Theory of Computation =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class Telegram group:&#039;&#039;&#039; [https://t.me/+rzgHdid7QpY4NDY0 Join the class group]&lt;br /&gt;
&lt;br /&gt;
== Lectures and seminars ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:4%;&amp;quot; | No.&lt;br /&gt;
! style=&amp;quot;width:9%;&amp;quot; | Date&lt;br /&gt;
! style=&amp;quot;width:17%;&amp;quot; | Lecture&lt;br /&gt;
! style=&amp;quot;width:44%;&amp;quot; | Contents and principal results&lt;br /&gt;
! style=&amp;quot;width:13%;&amp;quot; | Lecture notes&lt;br /&gt;
! style=&amp;quot;width:13%;&amp;quot; | Seminar notes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 11 September&lt;br /&gt;
| &#039;&#039;&#039;Computational models and resource bounds&#039;&#039;&#039;&lt;br /&gt;
| Multitape Turing machines and efficient universal simulation. Time and space complexity; DTIME, DSPACE, P, PSPACE, and EXP. Time- and space-constructible bounds.&lt;br /&gt;
| [https://drive.google.com/file/d/1AmNOOyn4xKrCpmtWYbBj7Thk5HhZnQTb/view?usp=sharing Lecture notes]&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Nondeterminism, NP, and reductions&#039;&#039;&#039;&lt;br /&gt;
| Nondeterministic machines and polynomial-time verifiers; proof of their equivalence. Polynomial-time many-one reductions, NP-hardness, and NP-completeness.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;The Cook–Levin theorem&#039;&#039;&#039;&lt;br /&gt;
| Tableau proof that Boolean satisfiability is NP-complete: encoding configurations, local transitions, the initial configuration, and acceptance.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Time and space hierarchy theorems&#039;&#039;&#039;&lt;br /&gt;
| Diagonalization and universal simulation. Full proofs of the deterministic time hierarchy theorem and the deterministic space hierarchy theorem.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Space complexity and Savitch&#039;s theorem&#039;&#039;&#039;&lt;br /&gt;
| Configuration graphs and STCON as an NL-complete problem. Recursive reachability and the proof of NSPACE(s) ⊆ DSPACE(s²); in particular, NPSPACE = PSPACE.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;The Immerman–Szelepcsényi theorem&#039;&#039;&#039;&lt;br /&gt;
| Inductive counting of reachable configurations and the complete proof that nondeterministic space is closed under complement; in particular, NL = coNL.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;PSPACE-completeness&#039;&#039;&#039;&lt;br /&gt;
| Quantified Boolean formulas and recursive evaluation. Complete proof that TQBF is PSPACE-complete via polynomial-space configuration reachability; applications to games and planning.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Boolean circuits and nonuniformity&#039;&#039;&#039;&lt;br /&gt;
| Circuit families, size, and depth. Simulation of polynomial-time machines by polynomial-size circuits; P ⊆ P/poly and the characterization of P/poly by polynomial advice.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Circuit size and parallel computation&#039;&#039;&#039;&lt;br /&gt;
| The counting lower bound for Boolean circuits. Uniformity; the classes AC and NC; elementary depth lower bounds, the locality of NC⁰, and a constant-depth construction for binary addition.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;The polynomial hierarchy&#039;&#039;&#039;&lt;br /&gt;
| The classes Σₖᴾ and Πₖᴾ and their quantified-predicate characterizations. Complete quantified-circuit problems, collapse of the hierarchy, and PH ⊆ PSPACE.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Randomized computation&#039;&#039;&#039;&lt;br /&gt;
| Probabilistic machines and the classes RP, coRP, ZPP, and BPP. Error amplification, ZPP = RP ∩ coRP, and the probabilistic proof that BPP ⊆ P/poly.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;The Sipser–Gács–Lautemann theorem&#039;&#039;&#039;&lt;br /&gt;
| Amplification to exponentially small error, translations of accepting random strings, and the covering lemma. Full proof that BPP ⊆ Σ₂ᴾ ∩ Π₂ᴾ.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Lecturers ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Role&lt;br /&gt;
! Lecturer&lt;br /&gt;
! Contact&lt;br /&gt;
! Office hours&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Lecturer&#039;&#039;&#039;&lt;br /&gt;
| Subin Pulari&lt;br /&gt;
| Telegram: @spulari&amp;lt;br&amp;gt;Email: spulari@hse.ru&lt;br /&gt;
| Monday–Friday, by appointment via Telegram or email&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Seminar lecturer&#039;&#039;&#039;&lt;br /&gt;
| Yaroslav Ivanashev&lt;br /&gt;
| Telegram: @ivanashev&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Evaluation scheme ==&lt;br /&gt;
&lt;br /&gt;
The course has one &#039;&#039;&#039;midterm assessment&#039;&#039;&#039; and one &#039;&#039;&#039;end-term assessment&#039;&#039;&#039;. Each assessment consists of one colloquium and one written examination.&lt;br /&gt;
&lt;br /&gt;
Let &#039;&#039;C&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt;&#039;&#039; and &#039;&#039;C&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;&#039;&#039; denote the two colloquium scores, and let &#039;&#039;E&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt;&#039;&#039; and &#039;&#039;E&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;&#039;&#039; denote the two examination scores. The aggregate scores are&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;big&amp;gt;&#039;&#039;&#039;C = (C&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt; + C&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;)/2, &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; E = (E&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt; + E&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;)/2.&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The final course score is&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;big&amp;gt;&#039;&#039;&#039;Final score = 0.6 C + 0.4 E&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;/div&gt;</summary>
		<author><name>Spulari</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2026&amp;diff=97376</id>
		<title>Theory of computation 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2026&amp;diff=97376"/>
		<updated>2026-09-09T07:54:32Z</updated>

		<summary type="html">&lt;p&gt;Spulari: /* Theory of Computation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Theory of Computation =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class Telegram group:&#039;&#039;&#039; [https://t.me/+rzgHdid7QpY4NDY0 Join the class group]&lt;br /&gt;
&lt;br /&gt;
== Lectures and seminars ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:4%;&amp;quot; | No.&lt;br /&gt;
! style=&amp;quot;width:9%;&amp;quot; | Date&lt;br /&gt;
! style=&amp;quot;width:17%;&amp;quot; | Lecture&lt;br /&gt;
! style=&amp;quot;width:44%;&amp;quot; | Contents and principal results&lt;br /&gt;
! style=&amp;quot;width:13%;&amp;quot; | Lecture notes&lt;br /&gt;
! style=&amp;quot;width:13%;&amp;quot; | Seminar notes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 11 September&lt;br /&gt;
| &#039;&#039;&#039;Computational models and resource bounds&#039;&#039;&#039;&lt;br /&gt;
| Multitape Turing machines and efficient universal simulation. Time and space complexity; DTIME, DSPACE, P, PSPACE, and EXP. Time- and space-constructible bounds.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Nondeterminism, NP, and reductions&#039;&#039;&#039;&lt;br /&gt;
| Nondeterministic machines and polynomial-time verifiers; proof of their equivalence. Polynomial-time many-one reductions, NP-hardness, and NP-completeness.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;The Cook–Levin theorem&#039;&#039;&#039;&lt;br /&gt;
| Tableau proof that Boolean satisfiability is NP-complete: encoding configurations, local transitions, the initial configuration, and acceptance.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Time and space hierarchy theorems&#039;&#039;&#039;&lt;br /&gt;
| Diagonalization and universal simulation. Full proofs of the deterministic time hierarchy theorem and the deterministic space hierarchy theorem.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Space complexity and Savitch&#039;s theorem&#039;&#039;&#039;&lt;br /&gt;
| Configuration graphs and STCON as an NL-complete problem. Recursive reachability and the proof of NSPACE(s) ⊆ DSPACE(s²); in particular, NPSPACE = PSPACE.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;The Immerman–Szelepcsényi theorem&#039;&#039;&#039;&lt;br /&gt;
| Inductive counting of reachable configurations and the complete proof that nondeterministic space is closed under complement; in particular, NL = coNL.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;PSPACE-completeness&#039;&#039;&#039;&lt;br /&gt;
| Quantified Boolean formulas and recursive evaluation. Complete proof that TQBF is PSPACE-complete via polynomial-space configuration reachability; applications to games and planning.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Boolean circuits and nonuniformity&#039;&#039;&#039;&lt;br /&gt;
| Circuit families, size, and depth. Simulation of polynomial-time machines by polynomial-size circuits; P ⊆ P/poly and the characterization of P/poly by polynomial advice.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Circuit size and parallel computation&#039;&#039;&#039;&lt;br /&gt;
| The counting lower bound for Boolean circuits. Uniformity; the classes AC and NC; elementary depth lower bounds, the locality of NC⁰, and a constant-depth construction for binary addition.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;The polynomial hierarchy&#039;&#039;&#039;&lt;br /&gt;
| The classes Σₖᴾ and Πₖᴾ and their quantified-predicate characterizations. Complete quantified-circuit problems, collapse of the hierarchy, and PH ⊆ PSPACE.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Randomized computation&#039;&#039;&#039;&lt;br /&gt;
| Probabilistic machines and the classes RP, coRP, ZPP, and BPP. Error amplification, ZPP = RP ∩ coRP, and the probabilistic proof that BPP ⊆ P/poly.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;The Sipser–Gács–Lautemann theorem&#039;&#039;&#039;&lt;br /&gt;
| Amplification to exponentially small error, translations of accepting random strings, and the covering lemma. Full proof that BPP ⊆ Σ₂ᴾ ∩ Π₂ᴾ.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Lecturers ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Role&lt;br /&gt;
! Lecturer&lt;br /&gt;
! Contact&lt;br /&gt;
! Office hours&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Lecturer&#039;&#039;&#039;&lt;br /&gt;
| Subin Pulari&lt;br /&gt;
| Telegram: @spulari&amp;lt;br&amp;gt;Email: spulari@hse.ru&lt;br /&gt;
| Monday–Friday, by appointment via Telegram or email&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Seminar lecturer&#039;&#039;&#039;&lt;br /&gt;
| Yaroslav Ivanashev&lt;br /&gt;
| Telegram: @ivanashev&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Evaluation scheme ==&lt;br /&gt;
&lt;br /&gt;
The course has one &#039;&#039;&#039;midterm assessment&#039;&#039;&#039; and one &#039;&#039;&#039;end-term assessment&#039;&#039;&#039;. Each assessment consists of one colloquium and one written examination.&lt;br /&gt;
&lt;br /&gt;
Let &#039;&#039;C&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt;&#039;&#039; and &#039;&#039;C&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;&#039;&#039; denote the two colloquium scores, and let &#039;&#039;E&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt;&#039;&#039; and &#039;&#039;E&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;&#039;&#039; denote the two examination scores. The aggregate scores are&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;big&amp;gt;&#039;&#039;&#039;C = (C&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt; + C&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;)/2, &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; E = (E&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt; + E&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;)/2.&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The final course score is&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;big&amp;gt;&#039;&#039;&#039;Final score = 0.6 C + 0.4 E&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;/div&gt;</summary>
		<author><name>Spulari</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2026&amp;diff=97374</id>
		<title>Theory of computation 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2026&amp;diff=97374"/>
		<updated>2026-09-09T07:51:31Z</updated>

		<summary type="html">&lt;p&gt;Spulari: /* Theory of Computation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Theory of Computation =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Class Telegram group:&#039;&#039;&#039; [https://t.me/+rzgHdid7QpY4NDY0 Join the class group]&lt;br /&gt;
&lt;br /&gt;
== Lectures and seminars ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:4%;&amp;quot; | No.&lt;br /&gt;
! style=&amp;quot;width:9%;&amp;quot; | Date&lt;br /&gt;
! style=&amp;quot;width:17%;&amp;quot; | Lecture&lt;br /&gt;
! style=&amp;quot;width:44%;&amp;quot; | Contents and principal results&lt;br /&gt;
! style=&amp;quot;width:13%;&amp;quot; | Lecture notes&lt;br /&gt;
! style=&amp;quot;width:13%;&amp;quot; | Seminar notes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 11 September&lt;br /&gt;
| &#039;&#039;&#039;Computational models and resource bounds&#039;&#039;&#039;&lt;br /&gt;
| Multitape Turing machines and efficient universal simulation. Time and space complexity; DTIME, DSPACE, P, PSPACE, and EXP. Time- and space-constructible bounds.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Nondeterminism, NP, and reductions&#039;&#039;&#039;&lt;br /&gt;
| Nondeterministic machines and polynomial-time verifiers; proof of their equivalence. Polynomial-time many-one reductions, NP-hardness, and NP-completeness.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;The Cook–Levin theorem&#039;&#039;&#039;&lt;br /&gt;
| Tableau proof that Boolean satisfiability is NP-complete: encoding configurations, local transitions, the initial configuration, and acceptance.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Time and space hierarchy theorems&#039;&#039;&#039;&lt;br /&gt;
| Diagonalization and universal simulation. Full proofs of the deterministic time hierarchy theorem and the deterministic space hierarchy theorem.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Space complexity and Savitch&#039;s theorem&#039;&#039;&#039;&lt;br /&gt;
| Configuration graphs and STCON as an NL-complete problem. Recursive reachability and the proof of NSPACE(s) ⊆ DSPACE(s²); in particular, NPSPACE = PSPACE.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;The Immerman–Szelepcsényi theorem&#039;&#039;&#039;&lt;br /&gt;
| Inductive counting of reachable configurations and the complete proof that nondeterministic space is closed under complement; in particular, NL = coNL.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;PSPACE-completeness&#039;&#039;&#039;&lt;br /&gt;
| Quantified Boolean formulas and recursive evaluation. Complete proof that TQBF is PSPACE-complete via polynomial-space configuration reachability; applications to games and planning.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Boolean circuits and nonuniformity&#039;&#039;&#039;&lt;br /&gt;
| Circuit families, size, and depth. Simulation of polynomial-time machines by polynomial-size circuits; P ⊆ P/poly and the characterization of P/poly by polynomial advice.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Circuit size and parallel computation&#039;&#039;&#039;&lt;br /&gt;
| The counting lower bound for Boolean circuits. Uniformity; the classes AC and NC; elementary depth lower bounds, the locality of NC⁰, and a constant-depth construction for binary addition.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;The polynomial hierarchy&#039;&#039;&#039;&lt;br /&gt;
| The classes Σₖᴾ and Πₖᴾ and their quantified-predicate characterizations. Complete quantified-circuit problems, collapse of the hierarchy, and PH ⊆ PSPACE.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Randomized computation&#039;&#039;&#039;&lt;br /&gt;
| Probabilistic machines and the classes RP, coRP, ZPP, and BPP. Error amplification, ZPP = RP ∩ coRP, and the probabilistic proof that BPP ⊆ P/poly.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;The Sipser–Gács–Lautemann theorem&#039;&#039;&#039;&lt;br /&gt;
| Amplification to exponentially small error, translations of accepting random strings, and the covering lemma. Full proof that BPP ⊆ Σ₂ᴾ ∩ Π₂ᴾ.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Communication complexity&#039;&#039;&#039;&lt;br /&gt;
| Deterministic and public-coin protocols, protocol trees, and combinatorial rectangles. A linear deterministic lower bound for EQUALITY, a public-coin fingerprinting protocol for EQUALITY, and the deterministic one-way lower bound for INDEX.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Streaming algorithms and sketches&#039;&#039;&#039;&lt;br /&gt;
| The insertion-only frequency-vector model. Pairwise-independent hashing and Count–Min Sketch, with complete error and failure-probability analysis. A reduction from one-way INDEX proving a linear deterministic streaming-space lower bound for exact point queries.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Lecturers ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Role&lt;br /&gt;
! Lecturer&lt;br /&gt;
! Contact&lt;br /&gt;
! Office hours&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Lecturer&#039;&#039;&#039;&lt;br /&gt;
| Subin Pulari&lt;br /&gt;
| Telegram: @spulari&amp;lt;br&amp;gt;Email: spulari@hse.ru&lt;br /&gt;
| Monday–Friday, by appointment via Telegram or email&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Seminar lecturer&#039;&#039;&#039;&lt;br /&gt;
| Yaroslav Ivanashev&lt;br /&gt;
| Telegram: @ivanashev&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Evaluation scheme ==&lt;br /&gt;
&lt;br /&gt;
The course has one &#039;&#039;&#039;midterm assessment&#039;&#039;&#039; and one &#039;&#039;&#039;end-term assessment&#039;&#039;&#039;. Each assessment consists of one colloquium and one written examination.&lt;br /&gt;
&lt;br /&gt;
Let &#039;&#039;C&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt;&#039;&#039; and &#039;&#039;C&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;&#039;&#039; denote the two colloquium scores, and let &#039;&#039;E&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt;&#039;&#039; and &#039;&#039;E&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;&#039;&#039; denote the two examination scores. The aggregate scores are&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;big&amp;gt;&#039;&#039;&#039;C = (C&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt; + C&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;)/2, &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; E = (E&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt; + E&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;)/2.&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The final course score is&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;big&amp;gt;&#039;&#039;&#039;Final score = 0.6 C + 0.4 E&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;/div&gt;</summary>
		<author><name>Spulari</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2026&amp;diff=97371</id>
		<title>Theory of computation 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2026&amp;diff=97371"/>
		<updated>2026-09-09T07:49:13Z</updated>

		<summary type="html">&lt;p&gt;Spulari: /* Theory of Computation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Theory of Computation =&lt;br /&gt;
&lt;br /&gt;
== Lectures and seminars ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:4%;&amp;quot; | No.&lt;br /&gt;
! style=&amp;quot;width:9%;&amp;quot; | Date&lt;br /&gt;
! style=&amp;quot;width:17%;&amp;quot; | Lecture&lt;br /&gt;
! style=&amp;quot;width:44%;&amp;quot; | Contents and principal results&lt;br /&gt;
! style=&amp;quot;width:13%;&amp;quot; | Lecture notes&lt;br /&gt;
! style=&amp;quot;width:13%;&amp;quot; | Seminar notes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 11 September&lt;br /&gt;
| &#039;&#039;&#039;Computational models and resource bounds&#039;&#039;&#039;&lt;br /&gt;
| Multitape Turing machines and efficient universal simulation. Time and space complexity; DTIME, DSPACE, P, PSPACE, and EXP. Time- and space-constructible bounds.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Nondeterminism, NP, and reductions&#039;&#039;&#039;&lt;br /&gt;
| Nondeterministic machines and polynomial-time verifiers; proof of their equivalence. Polynomial-time many-one reductions, NP-hardness, and NP-completeness.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;The Cook–Levin theorem&#039;&#039;&#039;&lt;br /&gt;
| Tableau proof that Boolean satisfiability is NP-complete: encoding configurations, local transitions, the initial configuration, and acceptance.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Time and space hierarchy theorems&#039;&#039;&#039;&lt;br /&gt;
| Diagonalization and universal simulation. Full proofs of the deterministic time hierarchy theorem and the deterministic space hierarchy theorem.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Space complexity and Savitch&#039;s theorem&#039;&#039;&#039;&lt;br /&gt;
| Configuration graphs and STCON as an NL-complete problem. Recursive reachability and the proof of NSPACE(s) ⊆ DSPACE(s²); in particular, NPSPACE = PSPACE.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;The Immerman–Szelepcsényi theorem&#039;&#039;&#039;&lt;br /&gt;
| Inductive counting of reachable configurations and the complete proof that nondeterministic space is closed under complement; in particular, NL = coNL.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;PSPACE-completeness&#039;&#039;&#039;&lt;br /&gt;
| Quantified Boolean formulas and recursive evaluation. Complete proof that TQBF is PSPACE-complete via polynomial-space configuration reachability; applications to games and planning.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Boolean circuits and nonuniformity&#039;&#039;&#039;&lt;br /&gt;
| Circuit families, size, and depth. Simulation of polynomial-time machines by polynomial-size circuits; P ⊆ P/poly and the characterization of P/poly by polynomial advice.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Circuit size and parallel computation&#039;&#039;&#039;&lt;br /&gt;
| The counting lower bound for Boolean circuits. Uniformity; the classes AC and NC; elementary depth lower bounds, the locality of NC⁰, and a constant-depth construction for binary addition.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;The polynomial hierarchy&#039;&#039;&#039;&lt;br /&gt;
| The classes Σₖᴾ and Πₖᴾ and their quantified-predicate characterizations. Complete quantified-circuit problems, collapse of the hierarchy, and PH ⊆ PSPACE.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Randomized computation&#039;&#039;&#039;&lt;br /&gt;
| Probabilistic machines and the classes RP, coRP, ZPP, and BPP. Error amplification, ZPP = RP ∩ coRP, and the probabilistic proof that BPP ⊆ P/poly.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;The Sipser–Gács–Lautemann theorem&#039;&#039;&#039;&lt;br /&gt;
| Amplification to exponentially small error, translations of accepting random strings, and the covering lemma. Full proof that BPP ⊆ Σ₂ᴾ ∩ Π₂ᴾ.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Communication complexity&#039;&#039;&#039;&lt;br /&gt;
| Deterministic and public-coin protocols, protocol trees, and combinatorial rectangles. A linear deterministic lower bound for EQUALITY, a public-coin fingerprinting protocol for EQUALITY, and the deterministic one-way lower bound for INDEX.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
|&lt;br /&gt;
| &#039;&#039;&#039;Streaming algorithms and sketches&#039;&#039;&#039;&lt;br /&gt;
| The insertion-only frequency-vector model. Pairwise-independent hashing and Count–Min Sketch, with complete error and failure-probability analysis. A reduction from one-way INDEX proving a linear deterministic streaming-space lower bound for exact point queries.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Lecturers ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Role&lt;br /&gt;
! Lecturer&lt;br /&gt;
! Contact&lt;br /&gt;
! Office hours&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Lecturer&#039;&#039;&#039;&lt;br /&gt;
| Subin Pulari&lt;br /&gt;
| Telegram: @spulari&amp;lt;br&amp;gt;Email: spulari@hse.ru&lt;br /&gt;
| Monday–Friday, by appointment via Telegram or email&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Seminar lecturer&#039;&#039;&#039;&lt;br /&gt;
| Yaroslav Ivanashev&lt;br /&gt;
| Telegram: @ivanashev&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Evaluation scheme ==&lt;br /&gt;
&lt;br /&gt;
The course has one &#039;&#039;&#039;midterm assessment&#039;&#039;&#039; and one &#039;&#039;&#039;end-term assessment&#039;&#039;&#039;. Each assessment consists of one colloquium and one written examination.&lt;br /&gt;
&lt;br /&gt;
Let &#039;&#039;C&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt;&#039;&#039; and &#039;&#039;C&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;&#039;&#039; denote the two colloquium scores, and let &#039;&#039;E&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt;&#039;&#039; and &#039;&#039;E&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;&#039;&#039; denote the two examination scores. The aggregate scores are&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;big&amp;gt;&#039;&#039;&#039;C = (C&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt; + C&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;)/2, &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; E = (E&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt; + E&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;)/2.&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The final course score is&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;big&amp;gt;&#039;&#039;&#039;Final score = 0.6 C + 0.4 E&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;/div&gt;</summary>
		<author><name>Spulari</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2026&amp;diff=96946</id>
		<title>Theory of computation 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2026&amp;diff=96946"/>
		<updated>2026-08-27T13:11:22Z</updated>

		<summary type="html">&lt;p&gt;Spulari: /* Theory of Computation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Theory of Computation =&lt;br /&gt;
&lt;br /&gt;
== Lectures and seminars ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:4%;&amp;quot; | No.&lt;br /&gt;
! style=&amp;quot;width:18%;&amp;quot; | Lecture&lt;br /&gt;
! style=&amp;quot;width:52%;&amp;quot; | Contents and principal results&lt;br /&gt;
! style=&amp;quot;width:13%;&amp;quot; | Lecture notes&lt;br /&gt;
! style=&amp;quot;width:13%;&amp;quot; | Seminar notes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| &#039;&#039;&#039;Computational models and resource bounds&#039;&#039;&#039;&lt;br /&gt;
| Multitape Turing machines and efficient universal simulation. Time and space complexity; DTIME, DSPACE, P, PSPACE, and EXP. Time- and space-constructible bounds.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| &#039;&#039;&#039;Nondeterminism, NP, and reductions&#039;&#039;&#039;&lt;br /&gt;
| Nondeterministic machines and polynomial-time verifiers; proof of their equivalence. Polynomial-time many-one reductions, NP-hardness, and NP-completeness.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| &#039;&#039;&#039;The Cook–Levin theorem&#039;&#039;&#039;&lt;br /&gt;
| Tableau proof that Boolean satisfiability is NP-complete: encoding configurations, local transitions, the initial configuration, and acceptance.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| &#039;&#039;&#039;Time and space hierarchy theorems&#039;&#039;&#039;&lt;br /&gt;
| Diagonalization and universal simulation. Full proofs of the deterministic time hierarchy theorem and the deterministic space hierarchy theorem.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| &#039;&#039;&#039;Space complexity and Savitch&#039;s theorem&#039;&#039;&#039;&lt;br /&gt;
| Configuration graphs and STCON as an NL-complete problem. Recursive reachability and the proof of NSPACE(s) ⊆ DSPACE(s²); in particular, NPSPACE = PSPACE.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| &#039;&#039;&#039;The Immerman–Szelepcsényi theorem&#039;&#039;&#039;&lt;br /&gt;
| Inductive counting of reachable configurations and the complete proof that nondeterministic space is closed under complement; in particular, NL = coNL.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| &#039;&#039;&#039;PSPACE-completeness&#039;&#039;&#039;&lt;br /&gt;
| Quantified Boolean formulas and recursive evaluation. Complete proof that TQBF is PSPACE-complete via polynomial-space configuration reachability; applications to games and planning.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| &#039;&#039;&#039;Boolean circuits and nonuniformity&#039;&#039;&#039;&lt;br /&gt;
| Circuit families, size, and depth. Simulation of polynomial-time machines by polynomial-size circuits; P ⊆ P/poly and the characterization of P/poly by polynomial advice.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| &#039;&#039;&#039;Circuit size and parallel computation&#039;&#039;&#039;&lt;br /&gt;
| The counting lower bound for Boolean circuits. Uniformity; the classes AC and NC; elementary depth lower bounds, the locality of NC⁰, and a constant-depth construction for binary addition.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| &#039;&#039;&#039;The polynomial hierarchy&#039;&#039;&#039;&lt;br /&gt;
| The classes Σₖᴾ and Πₖᴾ and their quantified-predicate characterizations. Complete quantified-circuit problems, collapse of the hierarchy, and PH ⊆ PSPACE.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| &#039;&#039;&#039;Randomized computation&#039;&#039;&#039;&lt;br /&gt;
| Probabilistic machines and the classes RP, coRP, ZPP, and BPP. Error amplification, ZPP = RP ∩ coRP, and the probabilistic proof that BPP ⊆ P/poly.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| &#039;&#039;&#039;The Sipser–Gács–Lautemann theorem&#039;&#039;&#039;&lt;br /&gt;
| Amplification to exponentially small error, translations of accepting random strings, and the covering lemma. Full proof that BPP ⊆ Σ₂ᴾ ∩ Π₂ᴾ.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| &#039;&#039;&#039;Communication complexity&#039;&#039;&#039;&lt;br /&gt;
| Deterministic and public-coin protocols, protocol trees, and combinatorial rectangles. A linear deterministic lower bound for EQUALITY, a public-coin fingerprinting protocol for EQUALITY, and the deterministic one-way lower bound for INDEX.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| &#039;&#039;&#039;Streaming algorithms and sketches&#039;&#039;&#039;&lt;br /&gt;
| The insertion-only frequency-vector model. Pairwise-independent hashing and Count–Min Sketch, with complete error and failure-probability analysis. A reduction from one-way INDEX proving a linear deterministic streaming-space lower bound for exact point queries.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Lecturers ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Role&lt;br /&gt;
! Lecturer&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Lecturer&#039;&#039;&#039;&lt;br /&gt;
| Subin Pulari&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Seminar lecturer&#039;&#039;&#039;&lt;br /&gt;
| Yaroslav Ivanashev&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Evaluation scheme ==&lt;br /&gt;
&lt;br /&gt;
The course has one &#039;&#039;&#039;midterm assessment&#039;&#039;&#039; and one &#039;&#039;&#039;end-term assessment&#039;&#039;&#039;. Each assessment consists of one colloquium and one written examination.&lt;br /&gt;
&lt;br /&gt;
Let &#039;&#039;C&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt;&#039;&#039; and &#039;&#039;C&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;&#039;&#039; denote the two colloquium scores, and let &#039;&#039;E&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt;&#039;&#039; and &#039;&#039;E&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;&#039;&#039; denote the two examination scores. The aggregate scores are&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;big&amp;gt;&#039;&#039;&#039;C = (C&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt; + C&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;)/2, &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; E = (E&amp;lt;sub&amp;gt;mid&amp;lt;/sub&amp;gt; + E&amp;lt;sub&amp;gt;end&amp;lt;/sub&amp;gt;)/2.&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The final course score is&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;big&amp;gt;&#039;&#039;&#039;Final score = 0.6 C + 0.4 E&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;/div&gt;</summary>
		<author><name>Spulari</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2026&amp;diff=96945</id>
		<title>Theory of computation 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2026&amp;diff=96945"/>
		<updated>2026-08-27T13:07:02Z</updated>

		<summary type="html">&lt;p&gt;Spulari: /* Theory of Computation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Theory of Computation =&lt;br /&gt;
&lt;br /&gt;
== Lectures and seminars ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:5%;&amp;quot; | Lecture&lt;br /&gt;
! style=&amp;quot;width:59%;&amp;quot; | Contents&lt;br /&gt;
! style=&amp;quot;width:18%;&amp;quot; | Lecture notes&lt;br /&gt;
! style=&amp;quot;width:18%;&amp;quot; | Seminar notes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Computational models and resource bounds.&#039;&#039;&#039; Multitape Turing machines; configurations; time and space complexity; DTIME and DSPACE; P, PSPACE, and EXP; machine-model robustness; efficient universal simulation in O(T log T) time; time- and space-constructible bounds.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;2&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Nondeterminism, NP, and reductions.&#039;&#039;&#039; Nondeterministic computation; polynomial-time verifiers and certificates; equivalence of the two definitions of NP; polynomial-time many-one reductions; NP-hardness and NP-completeness; bounded nondeterministic machine acceptance.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;3&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;The Cook–Levin theorem.&#039;&#039;&#039; Computation tableaux; Boolean encoding of configurations; start, transition, and acceptance constraints; local consistency; the local-to-global argument; polynomial-size construction; SAT is NP-complete.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;4&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Time and space hierarchy theorems.&#039;&#039;&#039; Diagonalization; padded machine descriptions; universal simulation; deterministic time hierarchy; deterministic space hierarchy; constructibility; strict separations between resource-bounded classes.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;5&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Space complexity and Savitch&#039;s theorem.&#039;&#039;&#039; Configuration graphs; logarithmic space; directed s–t connectivity; log-space reductions; STCON is NL-complete; recursive reachability; Savitch&#039;s theorem NSPACE(s) ⊆ DSPACE(s²); NPSPACE = PSPACE.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;6&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;The Immerman–Szelepcsényi theorem.&#039;&#039;&#039; Nondeterministic space and complementation; reachability layers; inductive counting; certification of nonreachability; NL = coNL; closure of nondeterministic space under complement.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;7&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;PSPACE-completeness.&#039;&#039;&#039; Quantified Boolean formulas; recursive QBF evaluation; TQBF ∈ PSPACE; succinct configuration reachability; universal-selector compression; PSPACE-hardness of TQBF; games and succinct planning.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;8&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Boolean circuits and nonuniformity.&#039;&#039;&#039; Boolean circuits; circuit size and depth; circuit families; P/poly; simulation of polynomial-time machines by polynomial-size circuits; nonuniform computation; polynomial advice; equivalence between polynomial advice and polynomial-size circuit families.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;9&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Circuit size and parallel computation.&#039;&#039;&#039; Shannon&#039;s counting argument; existence and abundance of hard Boolean functions; uniformity; NC^k and AC^k; bounded-fan-in depth lower bounds; locality of NC^0; constant-depth circuits for binary addition.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;10&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;The polynomial hierarchy.&#039;&#039;&#039; Alternating quantified-predicate characterizations; Σ_k^P and Π_k^P; quantified-circuit complete problems; complementation; collapse of the polynomial hierarchy; PH ⊆ PSPACE.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;11&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Randomized computation.&#039;&#039;&#039; Probabilistic Turing machines; RP, coRP, ZPP, and BPP; one-sided and two-sided error amplification; ZPP = RP ∩ coRP; Adleman&#039;s theorem BPP ⊆ P/poly.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;12&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;The Sipser–Gács–Lautemann theorem.&#039;&#039;&#039; Amplification to exponentially small error; dense and sparse accepting sets; translations of the Boolean cube; covering lemma and the probabilistic method; quantified covering characterization; BPP ⊆ Σ_2^P ∩ Π_2^P.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;13&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Communication complexity.&#039;&#039;&#039; Deterministic two-party protocols; protocol trees and transcripts; communication matrices; combinatorial rectangles; rectangle lower bounds; deterministic complexity of EQUALITY; public-coin fingerprinting; one-way communication; the INDEX lower bound.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;14&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Streaming algorithms and sketches.&#039;&#039;&#039; One-pass streaming and frequency vectors; point queries; pairwise-independent hashing; Count–Min Sketch; collision analysis and confidence amplification; fixed-query and simultaneous guarantees; sketch space complexity; communication reductions; INDEX-based streaming-space lower bounds.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Lecturers ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Role&lt;br /&gt;
! Lecturer&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Lecturer&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Subin Pulari&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Seminar lecturer&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Yaroslav Ivanashev&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Evaluation policy ==&lt;br /&gt;
&lt;br /&gt;
The course evaluation consists of two colloquia and two examinations:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Colloquium 1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Colloquium 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Midterm examination&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Final examination&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The final grade is calculated as follows:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Colloquia: 60%&#039;&#039;&#039; — average of the two colloquium grades.&lt;br /&gt;
* &#039;&#039;&#039;Examinations: 40%&#039;&#039;&#039; — average of the midterm and final examination grades.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Final grade = 0.6 × (average colloquium grade) + 0.4 × (average examination grade).&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Spulari</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2026&amp;diff=96944</id>
		<title>Theory of computation 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2026&amp;diff=96944"/>
		<updated>2026-08-27T13:04:51Z</updated>

		<summary type="html">&lt;p&gt;Spulari: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Theory of Computation =&lt;br /&gt;
&lt;br /&gt;
== Lecturers ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Role&lt;br /&gt;
! Lecturer&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Lecturer&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Subin Pulari&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Seminar lecturer&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Yaroslav Ivanashev&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Evaluation policy ==&lt;br /&gt;
&lt;br /&gt;
The course evaluation consists of two colloquia and two examinations:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Colloquium 1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Colloquium 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Midterm examination&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Final examination&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The final grade is calculated as follows:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Colloquia: 60%&#039;&#039;&#039; — average of the two colloquium grades.&lt;br /&gt;
* &#039;&#039;&#039;Examinations: 40%&#039;&#039;&#039; — average of the midterm and final examination grades.&lt;br /&gt;
&lt;br /&gt;
Thus:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Final grade = 0.6 × (average colloquium grade) + 0.4 × (average examination grade).&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Lectures and seminars ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:5%;&amp;quot; | Lecture&lt;br /&gt;
! style=&amp;quot;width:59%;&amp;quot; | Contents&lt;br /&gt;
! style=&amp;quot;width:18%;&amp;quot; | Lecture notes&lt;br /&gt;
! style=&amp;quot;width:18%;&amp;quot; | Seminar notes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Computational models and resource bounds.&#039;&#039;&#039; Multitape Turing machines; configurations; time and space complexity; DTIME and DSPACE; P, PSPACE, and EXP; machine-model robustness; efficient universal simulation in O(T log T) time; time- and space-constructible bounds.&lt;br /&gt;
| Lectures 1–4&lt;br /&gt;
| Seminars 1–4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;2&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Nondeterminism, NP, and reductions.&#039;&#039;&#039; Nondeterministic computation; polynomial-time verifiers and certificates; equivalence of the two definitions of NP; polynomial-time many-one reductions; NP-hardness and NP-completeness; bounded nondeterministic machine acceptance.&lt;br /&gt;
| Lectures 1–4&lt;br /&gt;
| Seminars 1–4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;3&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;The Cook–Levin theorem.&#039;&#039;&#039; Computation tableaux; Boolean encoding of configurations; start, transition, and acceptance constraints; local consistency; the local-to-global argument; polynomial-size construction; SAT is NP-complete.&lt;br /&gt;
| Lectures 1–4&lt;br /&gt;
| Seminars 1–4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;4&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Time and space hierarchy theorems.&#039;&#039;&#039; Diagonalization; padded machine descriptions; universal simulation; deterministic time hierarchy; deterministic space hierarchy; constructibility; strict separations between resource-bounded classes.&lt;br /&gt;
| Lectures 1–4&lt;br /&gt;
| Seminars 1–4&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;5&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Space complexity and Savitch&#039;s theorem.&#039;&#039;&#039; Configuration graphs; logarithmic space; directed s–t connectivity; log-space reductions; STCON is NL-complete; recursive reachability; Savitch&#039;s theorem NSPACE(s) ⊆ DSPACE(s²); NPSPACE = PSPACE.&lt;br /&gt;
| Lectures 5–8&lt;br /&gt;
| Seminars 5–8&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;6&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;The Immerman–Szelepcsényi theorem.&#039;&#039;&#039; Nondeterministic space and complementation; reachability layers; inductive counting; certification of nonreachability; NL = coNL; closure of nondeterministic space under complement.&lt;br /&gt;
| Lectures 5–8&lt;br /&gt;
| Seminars 5–8&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;7&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;PSPACE-completeness.&#039;&#039;&#039; Quantified Boolean formulas; recursive QBF evaluation; TQBF ∈ PSPACE; succinct configuration reachability; universal-selector compression; PSPACE-hardness of TQBF; games and succinct planning.&lt;br /&gt;
| Lectures 5–8&lt;br /&gt;
| Seminars 5–8&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;8&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Boolean circuits and nonuniformity.&#039;&#039;&#039; Boolean circuits; circuit size and depth; circuit families; P/poly; simulation of polynomial-time machines by polynomial-size circuits; nonuniform computation; polynomial advice; equivalence between polynomial advice and polynomial-size circuit families.&lt;br /&gt;
| Lectures 5–8&lt;br /&gt;
| Seminars 5–8&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;9&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Circuit size and parallel computation.&#039;&#039;&#039; Shannon&#039;s counting argument; existence and abundance of hard Boolean functions; uniformity; NC^k and AC^k; bounded-fan-in depth lower bounds; locality of NC^0; constant-depth circuits for binary addition.&lt;br /&gt;
| Lectures 9–12&lt;br /&gt;
| Seminars 9–12&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;10&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;The polynomial hierarchy.&#039;&#039;&#039; Alternating quantified-predicate characterizations; Σ_k^P and Π_k^P; quantified-circuit complete problems; complementation; collapse of the polynomial hierarchy; PH ⊆ PSPACE.&lt;br /&gt;
| Lectures 9–12&lt;br /&gt;
| Seminars 9–12&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;11&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Randomized computation.&#039;&#039;&#039; Probabilistic Turing machines; RP, coRP, ZPP, and BPP; one-sided and two-sided error amplification; ZPP = RP ∩ coRP; Adleman&#039;s theorem BPP ⊆ P/poly.&lt;br /&gt;
| Lectures 9–12&lt;br /&gt;
| Seminars 9–12&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;12&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;The Sipser–Gács–Lautemann theorem.&#039;&#039;&#039; Amplification to exponentially small error; dense and sparse accepting sets; translations of the Boolean cube; covering lemma and the probabilistic method; quantified covering characterization; BPP ⊆ Σ_2^P ∩ Π_2^P.&lt;br /&gt;
| Lectures 9–12&lt;br /&gt;
| Seminars 9–12&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;13&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Communication complexity.&#039;&#039;&#039; Deterministic two-party protocols; protocol trees and transcripts; communication matrices; combinatorial rectangles; rectangle lower bounds; deterministic complexity of EQUALITY; public-coin fingerprinting; one-way communication; the INDEX lower bound.&lt;br /&gt;
| Lectures 13–14&lt;br /&gt;
| Seminars 13–14&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;14&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Streaming algorithms and sketches.&#039;&#039;&#039; One-pass streaming and frequency vectors; point queries; pairwise-independent hashing; Count–Min Sketch; collision analysis and confidence amplification; fixed-query and simultaneous guarantees; sketch space complexity; communication reductions; INDEX-based streaming-space lower bounds.&lt;br /&gt;
| Lectures 13–14&lt;br /&gt;
| Seminars 13–14&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Spulari</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2026&amp;diff=96943</id>
		<title>Theory of computation 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2026&amp;diff=96943"/>
		<updated>2026-08-27T13:01:45Z</updated>

		<summary type="html">&lt;p&gt;Spulari: /* Computational Complexity Theory */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Spulari</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2026&amp;diff=96942</id>
		<title>Theory of computation 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2026&amp;diff=96942"/>
		<updated>2026-08-27T13:01:21Z</updated>

		<summary type="html">&lt;p&gt;Spulari: Новая страница: «= Computational Complexity Theory =  == Course overview ==  Computational complexity theory studies the resources required to solve computational problems and the fundamental limitations of efficient computation. The course develops the main models, techniques, and complexity classes used to reason rigorously about computational difficulty.  The course begins with time and space as computational resources and develops the basic complexity classes and hierarc...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Computational Complexity Theory =&lt;br /&gt;
&lt;br /&gt;
== Course overview ==&lt;br /&gt;
&lt;br /&gt;
Computational complexity theory studies the resources required to solve computational problems and the fundamental limitations of efficient computation. The course develops the main models, techniques, and complexity classes used to reason rigorously about computational difficulty.&lt;br /&gt;
&lt;br /&gt;
The course begins with time and space as computational resources and develops the basic complexity classes and hierarchy theorems. It then studies nondeterminism, NP-completeness, space complexity, circuits and nonuniform computation, the polynomial hierarchy, and randomized computation. The final part introduces communication complexity and shows how communication lower bounds can be used to prove lower bounds for streaming algorithms.&lt;br /&gt;
&lt;br /&gt;
A recurring theme of the course is the use of &#039;&#039;&#039;reductions, diagonalization, counting, configurations, probabilistic arguments, and structural characterizations&#039;&#039;&#039; to compare computational models and establish upper and lower bounds.&lt;br /&gt;
&lt;br /&gt;
== Lecturers ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Role&lt;br /&gt;
! Lecturer&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Course lecturer&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Subin Pulari&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Seminar lecturer&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Yaroslav Ivanashev&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Evaluation policy ==&lt;br /&gt;
&lt;br /&gt;
The course has no homework component. Evaluation is based on two colloquia and two examinations.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Colloquium 1&#039;&#039;&#039; – during the first half of the course&lt;br /&gt;
* &#039;&#039;&#039;Colloquium 2&#039;&#039;&#039; – during the second half of the course&lt;br /&gt;
* &#039;&#039;&#039;Midterm examination&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Final examination&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Let&lt;br /&gt;
&amp;lt;math&amp;gt;C_1,C_2&amp;lt;/math&amp;gt; denote the two colloquium grades and&lt;br /&gt;
&amp;lt;math&amp;gt;E_1,E_2&amp;lt;/math&amp;gt; denote the two examination grades.&lt;br /&gt;
&lt;br /&gt;
The final course grade is calculated as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathrm{Final\ Grade}&lt;br /&gt;
=&lt;br /&gt;
0.6\left(\frac{C_1+C_2}{2}\right)&lt;br /&gt;
+&lt;br /&gt;
0.4\left(\frac{E_1+E_2}{2}\right).&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thus:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;60%&#039;&#039;&#039; of the final grade comes from the average of the two colloquia;&lt;br /&gt;
* &#039;&#039;&#039;40%&#039;&#039;&#039; comes from the average of the two examinations.&lt;br /&gt;
&lt;br /&gt;
== Lectures and seminars ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:5%;&amp;quot; | Lecture&lt;br /&gt;
! style=&amp;quot;width:55%;&amp;quot; | Contents&lt;br /&gt;
! style=&amp;quot;width:20%;&amp;quot; | Lecture notes&lt;br /&gt;
! style=&amp;quot;width:20%;&amp;quot; | Seminar notes&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Computational models and resource bounds.&#039;&#039;&#039; Multitape Turing machines; configurations; time and space complexity; &amp;lt;math&amp;gt;\mathrm{DTIME}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\mathrm{DSPACE}&amp;lt;/math&amp;gt;; &amp;lt;math&amp;gt;\mathbf P&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\mathbf{PSPACE}&amp;lt;/math&amp;gt;, and &amp;lt;math&amp;gt;\mathbf{EXP}&amp;lt;/math&amp;gt;; machine-model robustness; efficient universal simulation in &amp;lt;math&amp;gt;O(T\log T)&amp;lt;/math&amp;gt; time; time- and space-constructible bounds.&lt;br /&gt;
| [[Media:Complexity_Lecture_Notes_L01-L04_FINAL_20260827.pdf|Lectures 1–4]]&lt;br /&gt;
| [[Media:Complexity_Seminar_Question_Bank_L01-L04_FINAL_20260827.pdf|Seminar 1–4]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;2&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Nondeterminism, NP, and reductions.&#039;&#039;&#039; Nondeterministic computation; polynomial-time verifiers and certificates; equivalence of the two definitions of &amp;lt;math&amp;gt;\mathbf{NP}&amp;lt;/math&amp;gt;; polynomial-time many-one reductions; NP-hardness and NP-completeness; bounded nondeterministic machine acceptance.&lt;br /&gt;
| [[Media:Complexity_Lecture_Notes_L01-L04_FINAL_20260827.pdf|Lectures 1–4]]&lt;br /&gt;
| [[Media:Complexity_Seminar_Question_Bank_L01-L04_FINAL_20260827.pdf|Seminar 1–4]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;3&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;The Cook–Levin theorem.&#039;&#039;&#039; Computation tableaux; Boolean encoding of configurations; start, transition, and acceptance constraints; local consistency; the local-to-global argument; polynomial-size construction; SAT is NP-complete.&lt;br /&gt;
| [[Media:Complexity_Lecture_Notes_L01-L04_FINAL_20260827.pdf|Lectures 1–4]]&lt;br /&gt;
| [[Media:Complexity_Seminar_Question_Bank_L01-L04_FINAL_20260827.pdf|Seminar 1–4]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;4&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Time and space hierarchy theorems.&#039;&#039;&#039; Diagonalization; padded machine descriptions; universal simulation; deterministic time hierarchy; deterministic space hierarchy; constructibility; strict separations between resource-bounded classes.&lt;br /&gt;
| [[Media:Complexity_Lecture_Notes_L01-L04_FINAL_20260827.pdf|Lectures 1–4]]&lt;br /&gt;
| [[Media:Complexity_Seminar_Question_Bank_L01-L04_FINAL_20260827.pdf|Seminar 1–4]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;5&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Space complexity and Savitch&#039;s theorem.&#039;&#039;&#039; Configuration graphs; logarithmic space; directed &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt;–&amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt; connectivity; log-space reductions; STCON is NL-complete; recursive reachability; Savitch&#039;s theorem &amp;lt;math&amp;gt;\mathrm{NSPACE}(s)\subseteq\mathrm{DSPACE}(s^2)&amp;lt;/math&amp;gt;; &amp;lt;math&amp;gt;\mathbf{NPSPACE}=\mathbf{PSPACE}&amp;lt;/math&amp;gt;.&lt;br /&gt;
| [[Media:Complexity_Lecture_Notes_L05-L08_FINAL_20260827.pdf|Lectures 5–8]]&lt;br /&gt;
| [[Media:Complexity_Seminar_Question_Bank_L05-L08_FINAL_20260827.pdf|Seminar 5–8]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;6&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;The Immerman–Szelepcsényi theorem.&#039;&#039;&#039; Nondeterministic space and complementation; reachability layers; inductive counting; certification of nonreachability; &amp;lt;math&amp;gt;\mathbf{NL}=\mathbf{coNL}&amp;lt;/math&amp;gt;; closure of nondeterministic space under complement.&lt;br /&gt;
| [[Media:Complexity_Lecture_Notes_L05-L08_FINAL_20260827.pdf|Lectures 5–8]]&lt;br /&gt;
| [[Media:Complexity_Seminar_Question_Bank_L05-L08_FINAL_20260827.pdf|Seminar 5–8]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;7&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;PSPACE-completeness.&#039;&#039;&#039; Quantified Boolean formulas; recursive QBF evaluation; &amp;lt;math&amp;gt;\mathrm{TQBF}\in\mathbf{PSPACE}&amp;lt;/math&amp;gt;; succinct configuration reachability; universal-selector compression; PSPACE-hardness of TQBF; games and succinct planning.&lt;br /&gt;
| [[Media:Complexity_Lecture_Notes_L05-L08_FINAL_20260827.pdf|Lectures 5–8]]&lt;br /&gt;
| [[Media:Complexity_Seminar_Question_Bank_L05-L08_FINAL_20260827.pdf|Seminar 5–8]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;8&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Boolean circuits and nonuniformity.&#039;&#039;&#039; Boolean circuits; circuit size and depth; circuit families; &amp;lt;math&amp;gt;\mathbf{P}/\mathrm{poly}&amp;lt;/math&amp;gt;; simulation of polynomial-time machines by polynomial-size circuits; nonuniform computation; polynomial advice; equivalence between polynomial advice and polynomial-size circuit families.&lt;br /&gt;
| [[Media:Complexity_Lecture_Notes_L05-L08_FINAL_20260827.pdf|Lectures 5–8]]&lt;br /&gt;
| [[Media:Complexity_Seminar_Question_Bank_L05-L08_FINAL_20260827.pdf|Seminar 5–8]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;9&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Circuit size and parallel computation.&#039;&#039;&#039; Shannon&#039;s counting argument; existence and abundance of hard Boolean functions; uniformity; &amp;lt;math&amp;gt;\mathbf{NC}^k&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\mathbf{AC}^k&amp;lt;/math&amp;gt;; bounded-fan-in depth lower bounds; locality of &amp;lt;math&amp;gt;\mathbf{NC}^0&amp;lt;/math&amp;gt;; constant-depth circuits for binary addition.&lt;br /&gt;
| [[Media:Complexity_Lecture_Notes_L09-L12_FINAL_20260827.pdf|Lectures 9–12]]&lt;br /&gt;
| [[Media:Complexity_Seminar_Question_Bank_L09-L12_FINAL_20260827.pdf|Seminar 9–12]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;10&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;The polynomial hierarchy.&#039;&#039;&#039; Alternating quantified-predicate characterizations; &amp;lt;math&amp;gt;\mathbf{\Sigma}_k^{\mathbf P}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\mathbf{\Pi}_k^{\mathbf P}&amp;lt;/math&amp;gt;; quantified-circuit complete problems; complementation; collapse of the polynomial hierarchy; &amp;lt;math&amp;gt;\mathbf{PH}\subseteq\mathbf{PSPACE}&amp;lt;/math&amp;gt;.&lt;br /&gt;
| [[Media:Complexity_Lecture_Notes_L09-L12_FINAL_20260827.pdf|Lectures 9–12]]&lt;br /&gt;
| [[Media:Complexity_Seminar_Question_Bank_L09-L12_FINAL_20260827.pdf|Seminar 9–12]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;11&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Randomized computation.&#039;&#039;&#039; Probabilistic Turing machines; &amp;lt;math&amp;gt;\mathbf{RP}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\mathbf{coRP}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\mathbf{ZPP}&amp;lt;/math&amp;gt;, and &amp;lt;math&amp;gt;\mathbf{BPP}&amp;lt;/math&amp;gt;; one-sided and two-sided error amplification; &amp;lt;math&amp;gt;\mathbf{ZPP}=\mathbf{RP}\cap\mathbf{coRP}&amp;lt;/math&amp;gt;; Adleman&#039;s theorem &amp;lt;math&amp;gt;\mathbf{BPP}\subseteq\mathbf{P}/\mathrm{poly}&amp;lt;/math&amp;gt;.&lt;br /&gt;
| [[Media:Complexity_Lecture_Notes_L09-L12_FINAL_20260827.pdf|Lectures 9–12]]&lt;br /&gt;
| [[Media:Complexity_Seminar_Question_Bank_L09-L12_FINAL_20260827.pdf|Seminar 9–12]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;12&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;The Sipser–Gács–Lautemann theorem.&#039;&#039;&#039; Amplification to exponentially small error; dense and sparse accepting sets; translations of the Boolean cube; covering lemma and the probabilistic method; quantified covering characterization; &amp;lt;math&amp;gt;\mathbf{BPP}\subseteq\mathbf{\Sigma}_2^{\mathbf P}\cap\mathbf{\Pi}_2^{\mathbf P}&amp;lt;/math&amp;gt;.&lt;br /&gt;
| [[Media:Complexity_Lecture_Notes_L09-L12_FINAL_20260827.pdf|Lectures 9–12]]&lt;br /&gt;
| [[Media:Complexity_Seminar_Question_Bank_L09-L12_FINAL_20260827.pdf|Seminar 9–12]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;13&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Communication complexity.&#039;&#039;&#039; Deterministic two-party protocols; protocol trees and transcripts; communication matrices; combinatorial rectangles; rectangle lower bounds; deterministic complexity of EQUALITY; public-coin fingerprinting; one-way communication; the INDEX lower bound.&lt;br /&gt;
| [[Media:Complexity_Lecture_Notes_L13-L14_FINAL_20260827.pdf|Lectures 13–14]]&lt;br /&gt;
| [[Media:Complexity_Seminar_Question_Bank_L13-L14_FINAL_20260827.pdf|Seminar 13–14]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;14&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Streaming algorithms and sketches.&#039;&#039;&#039; One-pass streaming and frequency vectors; point queries; pairwise-independent hashing; Count–Min Sketch; collision analysis and confidence amplification; fixed-query and simultaneous guarantees; sketch space complexity; communication reductions; INDEX-based streaming-space lower bounds.&lt;br /&gt;
| [[Media:Complexity_Lecture_Notes_L13-L14_FINAL_20260827.pdf|Lectures 13–14]]&lt;br /&gt;
| [[Media:Complexity_Seminar_Question_Bank_L13-L14_FINAL_20260827.pdf|Seminar 13–14]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Spulari</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2025&amp;diff=95794</id>
		<title>Theory of computation 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2025&amp;diff=95794"/>
		<updated>2026-03-15T15:54:01Z</updated>

		<summary type="html">&lt;p&gt;Spulari: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Classes =&lt;br /&gt;
&lt;br /&gt;
Lectures:  Friday 13h00 - 14h20 in Pokrovkaya room S834 and in [https://us02web.zoom.us/j/82300259484?pwd=NWxXekxBeE5yMm9UTmwvLzNNNGlnUT09 zoom] by [https://www.hse.ru/en/org/persons/160550073 Bruno Bauwens].&lt;br /&gt;
&lt;br /&gt;
Seminars: Friday 14h40 - 16h00 in [https://us06web.zoom.us/j/89836244481?pwd=oJ7zni9Iv1BNVKaJ9voOnZyzfPT4ci.1 zoom] by Prof. Subin Pulari (on 13.03 also in S834). &lt;br /&gt;
&lt;br /&gt;
Telegram group for announcements and discussions [https://t.me/+7BOrITRebjk5MTc0 invite link.] The course is similar to [http://wiki.cs.hse.ru/Theory_of_computation_2024 last year&#039;s one].&lt;br /&gt;
&lt;br /&gt;
For students programming engineering this course is called &amp;quot;computational complexity theory&amp;quot; and the course has an extra part in the 3rd module. &lt;br /&gt;
&lt;br /&gt;
All [https://docs.google.com/spreadsheets/d/1saxWb6gGXJV7VL7uQGvg8YO6xS21uIgpBk4C8wwimvE/edit?usp=sharing grades].&lt;br /&gt;
&lt;br /&gt;
= Homeworks =&lt;br /&gt;
&lt;br /&gt;
Deadlines: every 2 weeks, before the lecture. Submit in pdf or fotos of handwritten text in [https://classroom.google.com/c/ODEwMjk4NDQxMTU1?cjc=n5dttaev google class]. &lt;br /&gt;
&lt;br /&gt;
Tasks are in the problem lists from the seminar. Deadlines: problem lists 1 and 2: at the start of 3rd lecture, lists 3 and 4 at the start of the 5th lecture, etc.&lt;br /&gt;
&lt;br /&gt;
Late policy: 1 homework can be submitted at most 24h late without explanations.&lt;br /&gt;
&lt;br /&gt;
All homework scores are available in the following Google Sheet: [https://docs.google.com/spreadsheets/d/1QvyOh7kk7W-IhgMNcyFJ5NUNj9Tw-9z12ora_ZBW8eA/edit?usp=sharing link]&lt;br /&gt;
&lt;br /&gt;
= Course Materials =&lt;br /&gt;
&lt;br /&gt;
The main reference is Sipser&#039;s book &amp;quot;Introduction to the theory of computation&amp;quot;, chapters 3, 4, 7–9.&lt;br /&gt;
&lt;br /&gt;
If you need some background in math, consider&lt;br /&gt;
&amp;lt;!-- [http://www.cs.elte.hu/~lovasz/dmbook.ps Lecture notes: Discrete Mathematics], L. Lovasz, K. Vesztergombi and --&amp;gt;&lt;br /&gt;
[http://rubtsov.su/public/DM-HSE-Draft.pdf Лекции по дискретной математике].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Rec !! Summary !! Problem list&lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=-VIr385nKVk 19.09] || Turing machines, multitape Turing machines, connection between them. Universal Turing machine. Examples. Time and space complexity. Complexity classes P, PSPACE, EXP. (Recording from previous year.) [https://drive.google.com/file/d/1Xby_fNyeVwZtVY6yfVJLBYNCaZVbOP61/view?usp=drive_link Notes]|| [https://drive.google.com/file/d/1bf3hhE82uw5D0bQGajXHl1-FhhyG-XnY/view?usp=drive_link problem list 1]&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|| [https://www.youtube.com/watch?v=tnq5BkcGfk0 26.09] || Undecidability of the Halting problem. Time and space hierarchy theorems. See notes above. || [https://drive.google.com/file/d/1iyba3kM98oJCz5yvKmWRb0oOpIAhFPef/view?usp=drive_link problem list 2] &lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=VR_A62kFXH8 03.10] || Complexity class NP. Examples. Non-deterministic machines and another definition of NP. Polynomial reductions. NP-hardness and NP-completeness. [https://drive.google.com/file/d/1chzfYehNELzNkDMDjmRo9gfIXv_9FYeG/view?usp=drive_link Notes], [https://drive.google.com/file/d/1leJcc3UqC-WIGGN3G7Zm2Y0jt84q13o1/view?usp=drive_link tex]. || [https://drive.google.com/file/d/17AF1Bj5I_S0XzwXkM4IeOugxX2Kr3i2u/view?usp=drive_link problem list 3]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://rutube.ru/video/585774c956d226dde80929ca0b39f13e 10.10] ||  NP-completenes of independent-set, NAE-3SAT, 3colorability, subsetsum, knapsack problem. Notes above.  || [https://drive.google.com/file/d/1dVUT2KZ9hAyGBZITDJh3xtfLb992aX9L/view?usp=drive_link problem list 4] upd 10.10&lt;br /&gt;
|-&lt;br /&gt;
 || [https://rutube.ru/video/53f86ac57c92d812edb493b280e31a07 17.10] || Circuits 1: examples and all functions have exponential circuits. Classes P/poly, AC^i and NC^i. Some functions have exponential circuit complexity. &amp;lt;!-- NC1 = Boolean formulas of polynomial size. Addition in AC0. Multiplication is in NC1. P is in P/poly. 3SAT is NP-complete.--&amp;gt;  [https://drive.google.com/file/d/1Cqr4A6ohPLIaAVocG3jE6GYsNz4XgA4r/view?usp=drive_link Notes.pdf] upd 28.10, [https://drive.google.com/file/d/1rzL0-_fKq9ZbSu_zjTUUiM_cQNUGUX05/view?usp=drive_link tex].  || [https://drive.google.com/file/d/1uB12iMZptqzcoLpF6hZT-8X1Xh9-1nm4/view?usp=drive_link problem list 5]&lt;br /&gt;
|-&lt;br /&gt;
 || 23.10 || Circuits 2: NC0 = functions that depend on a constant number of inputs. P is in P/poly. 3SAT is NP-complete.  Seminar: addition in AC0. Multiplication is in NC1. Notes above. Last year&#039;s [https://www.youtube.com/watch?v=Jqy89FPbFj4  video]. || see list 5&lt;br /&gt;
|-&lt;br /&gt;
 || [https://drive.google.com/file/d/19vsMFBQfun7mf9URNF-F2R9JWbPlNN81/view?usp=drive_link 24.10] || Directed Reachability is in SPACE(log^2 n). TQBF problem, its PSPACE-completeness. PSPACE = NPSPACE. NSPACE(s(n)) is in SPACE(s(n)^2) for space constructible s.|| [https://drive.google.com/file/d/1j9XCMFYwsqcqIzGgKGSgDpJvmtz4-Wx8/view?usp=drive_link problem list 6] upd 28.10&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/W_uZuQXm53c 07.11] || Oracle computation definitions. There exists an oracle &#039;&#039;A&#039;&#039; for which P&amp;lt;sup&amp;gt;&#039;&#039;A&#039;&#039;&amp;lt;/sup&amp;gt; = NP&amp;lt;sup&amp;gt;&#039;&#039;A&#039;&#039;&amp;lt;/sup&amp;gt;. There is an oracle B such that P&amp;lt;sup&amp;gt;&#039;&#039;B&#039;&#039;&amp;lt;/sup&amp;gt; is not equal to NP&amp;lt;sup&amp;gt;&#039;&#039;B&#039;&#039;&amp;lt;/sup&amp;gt;. || [https://drive.google.com/file/d/1v8dh4EAeAtq1et4ya_Q1VBO77_m3a6WS/view?usp=drive_link problem list 7]&lt;br /&gt;
|- &lt;br /&gt;
|| [https://youtube.com/live/ALO6r52wuIU 14.11] ||  Probabilistic computation. Probabilistic machines, the class BPP, invariance of the definition BPP for different thresholds, RP, coRP, PP, ZPP. BPP is in P/poly. Most of it is also [https://www.youtube.com/watch?v=YSMgVbOqB-8&amp;amp;list=PLm3J0oaFux3YL5vLXpzOyJiLtqLp6dCW2&amp;amp;index=23 here] and [https://www.cs.cmu.edu/afs/cs/academic/class/15859-f04/www/scribes/lec2.pdf scribe1] [https://lucatrevisan.github.io/cs278-04/notes/lecture08.pdf scribe2] || [https://drive.google.com/file/d/1pMn1rzOKjnmjvW4X1WJA-jauQv08YFIh/view?usp=drive_link problem list 8] upd 20.11&lt;br /&gt;
|-&lt;br /&gt;
 || [https://rutube.ru/video/private/82810d471de9883b9215d0c9a3235c44/?p=8fTMLwkOD-WvpiQM1ACE0A 21.11] || Approximation algorithms. Definition c-approximation algorithm. 2-approximation for vertex cover and greedy vertex cover is not optimal. (ln n + 1)-approximation for set cover. PTAS for the makespan problem. Based on [https://www.youtube.com/watch?v=MEz1J9wY2iM&amp;amp;pp=ygUYYXBwcm94aW1hdGlvbiBhbGdvcml0aG1z MIT lecture].|| &lt;br /&gt;
[https://drive.google.com/file/d/1TPC6D_81PrklhjlTfrfnEzE4_5vm3vPS/view?usp=drive_link problem list 9]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/r9rP3ZojeqY 28.11] || Parameterized complexity: The classes FPT and XP. Kernelization. Examples for vertex cover.  [https://drive.google.com/file/d/1W9SU24HW0r5QhugzmrghpkzJUFuC8whq/view?usp=sharing Notes.] This year&#039;s [https://rutube.ru/video/private/757b101d76445586b9f5e752f6028e33/?p=enzOqSoF4YmMdI3rnqEO9A recording]. || [https://drive.google.com/file/d/12GnrF5dpVZjMsHfG4Y6jmT3P6jsc8jjm/view?usp=drive_link problem list 10] upd 8.12&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/E4aNlvbYoLQ  05.12] || Parameterized complexity: W-hierarchy, hardness from the exponential time hypothesis. [https://drive.google.com/file/d/1f-085Gr7E01HepUR-brGJDet-fXJzUwb/view?usp=sharing presentation] [https://drive.google.com/file/d/1OIw7h31N2tt-npC0NrvVgNhYGw_HlJa_/view?usp=sharing Notes] This year&#039;s [https://rutube.ru/video/fdfba34cca0e6d23b7382e883f138aa2 rec]. || [https://drive.google.com/file/d/1xhUYMsj0iV2TMZfR8FtkxWUNlcCjdS-N/view?usp=sharing problem list 11] &lt;br /&gt;
|- &lt;br /&gt;
 || 12.12 || &#039;&#039;Colloquium.&#039;&#039; Also on 19.12. [https://drive.google.com/file/d/1no8CbHKJluGRx7FROpSS7BqXdjOVgdT1/view?usp=sharing Rules and questions.] (Same as last year.) Reserve a [https://docs.google.com/spreadsheets/d/1_vO5Q0wGkM0kU1OHNiP8lz24M4i-toLC2AmQg7tuRVE/edit?usp=sharing slot]. || [https://www.dropbox.com/s/37gdsbv2it8omnm/tc-sample-exam.pdf?dl=0 Sample exam] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Artem Parfenov&#039;s [https://drive.google.com/file/d/16_ZP0X9wwza1RsrXZZGQsx5Igwk_vY9r/view?usp=sharing lecture summaries] [https://drive.google.com/drive/folders/1XsNL2B69akd3A9qaOEgC09NiZXLP8Wbz?usp=drive_link source] (Disclaimer: I did not check them):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Date !! Software engineering: parameterized complexity, FPT algorithms !! Problem list&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/xDaTpuVF0Es 27.02] || Recap from last lecture. FTP algorithms for planar graphs. More examples of kernels: linear programming kernel for vertex cover problem.   [https://www.dropbox.com/s/zzzaulpmzql7x7u/parameterizedComplexity.pdf?dl=0 presentation].|| [https://drive.google.com/file/d/1KIi6sFhS6M0BWr4xhU6v44BJyi53L7kF/view?usp=drive_link problem list 12] &lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/TBX8sWx7nO0 06.03] || Discussion of the programming project. Linear programming kernel for VC, color coding, dynamic programming. Colorcoding [https://www.dropbox.com/scl/fi/x5gwdae4ny4u3zixoy4pw/student_vc_branching.ipynb?rlkey=5oowq1u3jhy490s84ogojg1s7&amp;amp;dl=0 programming task previous year.](Will be updated.) [https://drive.google.com/file/d/1RMoIpd6p_L1XXOVeV36g0pdJdbtltbPF/view?usp=sharing from slide 39]  || [https://drive.google.com/file/d/16wjIGqbS5UvEUZCxuUfGROUxk2RlLqZl/view?usp=sharing problem list 13] &lt;br /&gt;
|-&lt;br /&gt;
 || 13.03 || Problems that are FPT on graphs with small treewidth. (Or something needed in the project.) || [https://drive.google.com/file/d/1mYkshv6q-c_5nY5qfHgosKxBd1zDDvGK/view?usp=sharing problem list 14]&lt;br /&gt;
|- &lt;br /&gt;
 || 01.04 || I do not have a good programming exercise. Everyone gets 7/10. If you want more, then do a colloquium on April 1st (or earlier). Write me in telegram. || [https://drive.google.com/file/d/1jiUIt0fm3QNSCnSwU0i1vCiOAwlx0yqL/view?usp=drive_link Colloquium questions] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Seminars (2025) !! Recording link&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 4 || [https://rutube.ru/video/private/6f4f908ef52b8af8e5bace950d8a9c0c/?p=5GnphSR3t1Jf4a9Mpqg2Zw link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 5 || Part I: [https://rutube.ru/video/private/992b26e2a8e6c95c662d8d246c7f3e0d/?p=uYcEmJungpW_YPkyLlGMOA link] &amp;lt;br&amp;gt; Part II: [https://rutube.ru/video/private/9d17a54647262d3c63187aad06fab0b8/?p=8WfJJBBJUYFfE9tQkBJ1MA link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 6 || [https://rutube.ru/video/private/6aa2f287bc39727ca82f4c713d2cc463/?p=2s6opSEa5_CjGYmJI3sOLg link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 7 || [https://rutube.ru/video/private/88af4a5c6eb2699db4475dbcf88884b7/?p=k_1vuYG_fWnOAQld9-0aCQ link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 8 || [https://rutube.ru/video/private/8978247dc6dcaaa8ef0e04ac3f4333af/?p=EGFH7-YuCIEiH2BYyKUqrg link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 9 || [https://rutube.ru/video/private/2bfd76c0422f371bc506328c35c9e670/?p=3TXJi4AYqVMD1Idt8HyFmg link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 10 || [https://rutube.ru/video/private/1ab525cc4cdeef5d66b736d6bce5887b/?p=Tvxh3q1LON2Y9O_AvXck1Q link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 11 || [https://rutube.ru/video/private/5536256c687688c3d824a0bd6daba00e/?p=0Vn3ddYFyVunqH09vaiU-A link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 12 || [https://rutube.ru/video/private/b2baba2d5e37a15765dc7e0681b96c4c/?p=12yI6HG1IkPFfHYy9fI22w link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 13 || [https://rutube.ru/video/private/921f6cac58abf2c0031fb6e70b49a4c7/?p=BQWvbpxzjNh8BSuArvamuw link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 14 || [https://rutube.ru/video/private/ae7be233e63c2b7a76f827ad7f75db41/?p=aDiYDUjwjTohCLjBwQjpVg link]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL8EKo81hBCTGfNPpZlIe7USiEPpZGYDte Recordings last year]&lt;br /&gt;
&lt;br /&gt;
= Exam =&lt;br /&gt;
&lt;br /&gt;
Dec 23 at 9h30 in D203. &lt;br /&gt;
&lt;br /&gt;
5 or 6 questions with the same difficulty as the homework questions. You have 3 hours time. &lt;br /&gt;
&lt;br /&gt;
Each year, 1 of the questions is to prove that some problem is NP-complete. Do not forget to say why the problem is in NP. &lt;br /&gt;
&lt;br /&gt;
2 or 3 copies of each of the books by Sipser&#039;s, Arora&amp;amp;Barak, Mertens&amp;amp;Moore, will be available, as well as a few prints of chapters 7 &amp;amp; 8 of Sipser&#039;s book. (If you have these books or printed parts of them, please bring it.) Also, personal handwritten notes are allowed, but nothing else.  [https://www.dropbox.com/s/37gdsbv2it8omnm/tc-sample-exam.pdf?dl=0 Sample exam]. &lt;br /&gt;
&lt;br /&gt;
If you have a passing grade without attending the exam, you may skip the exam and I will mark you as present by default. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Project (for PI students) =&lt;br /&gt;
&lt;br /&gt;
During the 3rd module Januari till March 2024 there are projects where you need to implement algorithms from parameterized complexity. (For example, for the vertex cover algorithm and disjoint paths problems.) A grader will check whether your algorithm reaches certain time limits. &lt;br /&gt;
&lt;br /&gt;
There are 3 tasks: 2 of them about branching and kernelization, 1 task about linear programming bounds. See the table with lectures. The tasks have equal weight for the grade. &lt;br /&gt;
&lt;br /&gt;
Deadline March 31st, 23h59. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Additional reading = &lt;br /&gt;
&lt;br /&gt;
Recall that the most important book for our course is &#039;&#039;Sipser, Introduction to the theory of computation&#039;&#039; 3rd edition, 2013, chapters 3, 4, 7–9. This book is intended for Bachelor students. &lt;br /&gt;
&lt;br /&gt;
The following book is popular with students theoretical computer science, because it contains most materials of our course in a concise way. Moreover, it presents many important advanced topics. I find the style of some proofs rather technical, but I like the topics in this book. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;S. Arora and B. Barak, Computational Complexity: A Modern Approach, 2009&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The course materials can also be found in various chapters of the following massive book (700 pages). It starts at beginning bachelor level and ends at an advanced master level. It is written in a pleasant style with excellent examples.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;C. Moore and S. Mertens, The nature of computation, 2011.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This book gives an introduction to important recent research directions in computational hardness. It also studies specific topics (games and planar problems) in huge detail.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;E. Demaine, W Gasarch, Haijaghayi, Computational intractability: a guide to lower bounds, 2023&#039;&#039; [https://hardness.mit.edu/ current draft]&lt;br /&gt;
&lt;br /&gt;
This is an advanced textbook with background on parameterized algorithms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;M. Cygan, F. Fomin and 6 others, Parameterized algorithms, 2016&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Grading =&lt;br /&gt;
&lt;br /&gt;
For AMI students:&lt;br /&gt;
&lt;br /&gt;
 Final score = 0.35 * [score homework] + 0.35 * [score colloquium] + 0.3 * [score exam] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For PI students (the course is called &amp;quot;computational complexity&amp;quot; and takes 3 modules). There are 2 scores for this course. The first one, given in December is calculated by the above formula (but probably it does not mean anything, I will ask about it). The second score is given below, and it is the one that will be in the diploma. It includes a programming project. The assignment and grader, will be set up by the end of Februari, the deadline is the end of March.  &lt;br /&gt;
&lt;br /&gt;
 Final score = 0.3 * [score homework] + 0.3 * [score colloquium] + 0.2 * [score exam] + 0.2 * [score project] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some homework assignments contain extra problems. Each solution of an extra problem will give 0.5 extra points on the final exam (which is graded out of 10). There will be around 10 extra problems. Rounding is applied only when the final score is transferred to the official grade. Arithmetic rounding is used. Autogrades. If only 6/10 for the exam is needed to get a final score of 10/10, then this will be given automatically. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Office hours =&lt;br /&gt;
&lt;br /&gt;
Bruno Bauwens: Tuesday 15h -- 21h. Friday 15h -- 18h. &lt;br /&gt;
&lt;br /&gt;
Subin Pulari: Please contact via telegram or mail [mailto:spulari@hse.ru spulari@hse.ru]&lt;/div&gt;</summary>
		<author><name>Spulari</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2025&amp;diff=95766</id>
		<title>Theory of computation 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2025&amp;diff=95766"/>
		<updated>2026-03-13T10:28:33Z</updated>

		<summary type="html">&lt;p&gt;Spulari: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Classes =&lt;br /&gt;
&lt;br /&gt;
Lectures:  Friday 13h00 - 14h20 in Pokrovkaya room S834 and in [https://us02web.zoom.us/j/82300259484?pwd=NWxXekxBeE5yMm9UTmwvLzNNNGlnUT09 zoom] by [https://www.hse.ru/en/org/persons/160550073 Bruno Bauwens].&lt;br /&gt;
&lt;br /&gt;
Seminars: Friday 14h40 - 16h00 in [https://us06web.zoom.us/j/89836244481?pwd=oJ7zni9Iv1BNVKaJ9voOnZyzfPT4ci.1 zoom] by Prof. Subin Pulari (on 13.03 also in S834). &lt;br /&gt;
&lt;br /&gt;
Telegram group for announcements and discussions [https://t.me/+7BOrITRebjk5MTc0 invite link.] The course is similar to [http://wiki.cs.hse.ru/Theory_of_computation_2024 last year&#039;s one].&lt;br /&gt;
&lt;br /&gt;
For students programming engineering this course is called &amp;quot;computational complexity theory&amp;quot; and the course has an extra part in the 3rd module. &lt;br /&gt;
&lt;br /&gt;
All [https://docs.google.com/spreadsheets/d/1saxWb6gGXJV7VL7uQGvg8YO6xS21uIgpBk4C8wwimvE/edit?usp=sharing grades].&lt;br /&gt;
&lt;br /&gt;
= Homeworks =&lt;br /&gt;
&lt;br /&gt;
Deadlines: every 2 weeks, before the lecture. Submit in pdf or fotos of handwritten text in [https://classroom.google.com/c/ODEwMjk4NDQxMTU1?cjc=n5dttaev google class]. &lt;br /&gt;
&lt;br /&gt;
Tasks are in the problem lists from the seminar. Deadlines: problem lists 1 and 2: at the start of 3rd lecture, lists 3 and 4 at the start of the 5th lecture, etc.&lt;br /&gt;
&lt;br /&gt;
Late policy: 1 homework can be submitted at most 24h late without explanations.&lt;br /&gt;
&lt;br /&gt;
All homework scores are available in the following Google Sheet: [https://docs.google.com/spreadsheets/d/1QvyOh7kk7W-IhgMNcyFJ5NUNj9Tw-9z12ora_ZBW8eA/edit?usp=sharing link]&lt;br /&gt;
&lt;br /&gt;
= Course Materials =&lt;br /&gt;
&lt;br /&gt;
The main reference is Sipser&#039;s book &amp;quot;Introduction to the theory of computation&amp;quot;, chapters 3, 4, 7–9.&lt;br /&gt;
&lt;br /&gt;
If you need some background in math, consider&lt;br /&gt;
&amp;lt;!-- [http://www.cs.elte.hu/~lovasz/dmbook.ps Lecture notes: Discrete Mathematics], L. Lovasz, K. Vesztergombi and --&amp;gt;&lt;br /&gt;
[http://rubtsov.su/public/DM-HSE-Draft.pdf Лекции по дискретной математике].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Rec !! Summary !! Problem list&lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=-VIr385nKVk 19.09] || Turing machines, multitape Turing machines, connection between them. Universal Turing machine. Examples. Time and space complexity. Complexity classes P, PSPACE, EXP. (Recording from previous year.) [https://drive.google.com/file/d/1Xby_fNyeVwZtVY6yfVJLBYNCaZVbOP61/view?usp=drive_link Notes]|| [https://drive.google.com/file/d/1bf3hhE82uw5D0bQGajXHl1-FhhyG-XnY/view?usp=drive_link problem list 1]&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|| [https://www.youtube.com/watch?v=tnq5BkcGfk0 26.09] || Undecidability of the Halting problem. Time and space hierarchy theorems. See notes above. || [https://drive.google.com/file/d/1iyba3kM98oJCz5yvKmWRb0oOpIAhFPef/view?usp=drive_link problem list 2] &lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=VR_A62kFXH8 03.10] || Complexity class NP. Examples. Non-deterministic machines and another definition of NP. Polynomial reductions. NP-hardness and NP-completeness. [https://drive.google.com/file/d/1chzfYehNELzNkDMDjmRo9gfIXv_9FYeG/view?usp=drive_link Notes], [https://drive.google.com/file/d/1leJcc3UqC-WIGGN3G7Zm2Y0jt84q13o1/view?usp=drive_link tex]. || [https://drive.google.com/file/d/17AF1Bj5I_S0XzwXkM4IeOugxX2Kr3i2u/view?usp=drive_link problem list 3]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://rutube.ru/video/585774c956d226dde80929ca0b39f13e 10.10] ||  NP-completenes of independent-set, NAE-3SAT, 3colorability, subsetsum, knapsack problem. Notes above.  || [https://drive.google.com/file/d/1dVUT2KZ9hAyGBZITDJh3xtfLb992aX9L/view?usp=drive_link problem list 4] upd 10.10&lt;br /&gt;
|-&lt;br /&gt;
 || [https://rutube.ru/video/53f86ac57c92d812edb493b280e31a07 17.10] || Circuits 1: examples and all functions have exponential circuits. Classes P/poly, AC^i and NC^i. Some functions have exponential circuit complexity. &amp;lt;!-- NC1 = Boolean formulas of polynomial size. Addition in AC0. Multiplication is in NC1. P is in P/poly. 3SAT is NP-complete.--&amp;gt;  [https://drive.google.com/file/d/1Cqr4A6ohPLIaAVocG3jE6GYsNz4XgA4r/view?usp=drive_link Notes.pdf] upd 28.10, [https://drive.google.com/file/d/1rzL0-_fKq9ZbSu_zjTUUiM_cQNUGUX05/view?usp=drive_link tex].  || [https://drive.google.com/file/d/1uB12iMZptqzcoLpF6hZT-8X1Xh9-1nm4/view?usp=drive_link problem list 5]&lt;br /&gt;
|-&lt;br /&gt;
 || 23.10 || Circuits 2: NC0 = functions that depend on a constant number of inputs. P is in P/poly. 3SAT is NP-complete.  Seminar: addition in AC0. Multiplication is in NC1. Notes above. Last year&#039;s [https://www.youtube.com/watch?v=Jqy89FPbFj4  video]. || see list 5&lt;br /&gt;
|-&lt;br /&gt;
 || [https://drive.google.com/file/d/19vsMFBQfun7mf9URNF-F2R9JWbPlNN81/view?usp=drive_link 24.10] || Directed Reachability is in SPACE(log^2 n). TQBF problem, its PSPACE-completeness. PSPACE = NPSPACE. NSPACE(s(n)) is in SPACE(s(n)^2) for space constructible s.|| [https://drive.google.com/file/d/1j9XCMFYwsqcqIzGgKGSgDpJvmtz4-Wx8/view?usp=drive_link problem list 6] upd 28.10&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/W_uZuQXm53c 07.11] || Oracle computation definitions. There exists an oracle &#039;&#039;A&#039;&#039; for which P&amp;lt;sup&amp;gt;&#039;&#039;A&#039;&#039;&amp;lt;/sup&amp;gt; = NP&amp;lt;sup&amp;gt;&#039;&#039;A&#039;&#039;&amp;lt;/sup&amp;gt;. There is an oracle B such that P&amp;lt;sup&amp;gt;&#039;&#039;B&#039;&#039;&amp;lt;/sup&amp;gt; is not equal to NP&amp;lt;sup&amp;gt;&#039;&#039;B&#039;&#039;&amp;lt;/sup&amp;gt;. || [https://drive.google.com/file/d/1v8dh4EAeAtq1et4ya_Q1VBO77_m3a6WS/view?usp=drive_link problem list 7]&lt;br /&gt;
|- &lt;br /&gt;
|| [https://youtube.com/live/ALO6r52wuIU 14.11] ||  Probabilistic computation. Probabilistic machines, the class BPP, invariance of the definition BPP for different thresholds, RP, coRP, PP, ZPP. BPP is in P/poly. Most of it is also [https://www.youtube.com/watch?v=YSMgVbOqB-8&amp;amp;list=PLm3J0oaFux3YL5vLXpzOyJiLtqLp6dCW2&amp;amp;index=23 here] and [https://www.cs.cmu.edu/afs/cs/academic/class/15859-f04/www/scribes/lec2.pdf scribe1] [https://lucatrevisan.github.io/cs278-04/notes/lecture08.pdf scribe2] || [https://drive.google.com/file/d/1pMn1rzOKjnmjvW4X1WJA-jauQv08YFIh/view?usp=drive_link problem list 8] upd 20.11&lt;br /&gt;
|-&lt;br /&gt;
 || [https://rutube.ru/video/private/82810d471de9883b9215d0c9a3235c44/?p=8fTMLwkOD-WvpiQM1ACE0A 21.11] || Approximation algorithms. Definition c-approximation algorithm. 2-approximation for vertex cover and greedy vertex cover is not optimal. (ln n + 1)-approximation for set cover. PTAS for the makespan problem. Based on [https://www.youtube.com/watch?v=MEz1J9wY2iM&amp;amp;pp=ygUYYXBwcm94aW1hdGlvbiBhbGdvcml0aG1z MIT lecture].|| &lt;br /&gt;
[https://drive.google.com/file/d/1TPC6D_81PrklhjlTfrfnEzE4_5vm3vPS/view?usp=drive_link problem list 9]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/r9rP3ZojeqY 28.11] || Parameterized complexity: The classes FPT and XP. Kernelization. Examples for vertex cover.  [https://drive.google.com/file/d/1W9SU24HW0r5QhugzmrghpkzJUFuC8whq/view?usp=sharing Notes.] This year&#039;s [https://rutube.ru/video/private/757b101d76445586b9f5e752f6028e33/?p=enzOqSoF4YmMdI3rnqEO9A recording]. || [https://drive.google.com/file/d/12GnrF5dpVZjMsHfG4Y6jmT3P6jsc8jjm/view?usp=drive_link problem list 10] upd 8.12&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/E4aNlvbYoLQ  05.12] || Parameterized complexity: W-hierarchy, hardness from the exponential time hypothesis. [https://drive.google.com/file/d/1f-085Gr7E01HepUR-brGJDet-fXJzUwb/view?usp=sharing presentation] [https://drive.google.com/file/d/1OIw7h31N2tt-npC0NrvVgNhYGw_HlJa_/view?usp=sharing Notes] This year&#039;s [https://rutube.ru/video/fdfba34cca0e6d23b7382e883f138aa2 rec]. || [https://drive.google.com/file/d/1xhUYMsj0iV2TMZfR8FtkxWUNlcCjdS-N/view?usp=sharing problem list 11] &lt;br /&gt;
|- &lt;br /&gt;
 || 12.12 || &#039;&#039;Colloquium.&#039;&#039; Also on 19.12. [https://drive.google.com/file/d/1no8CbHKJluGRx7FROpSS7BqXdjOVgdT1/view?usp=sharing Rules and questions.] (Same as last year.) Reserve a [https://docs.google.com/spreadsheets/d/1_vO5Q0wGkM0kU1OHNiP8lz24M4i-toLC2AmQg7tuRVE/edit?usp=sharing slot]. || [https://www.dropbox.com/s/37gdsbv2it8omnm/tc-sample-exam.pdf?dl=0 Sample exam] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Artem Parfenov&#039;s [https://drive.google.com/file/d/16_ZP0X9wwza1RsrXZZGQsx5Igwk_vY9r/view?usp=sharing lecture summaries] [https://drive.google.com/drive/folders/1XsNL2B69akd3A9qaOEgC09NiZXLP8Wbz?usp=drive_link source] (Disclaimer: I did not check them):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Date !! Software engineering: parameterized complexity, FPT algorithms !! Problem list&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/xDaTpuVF0Es 27.02] || Recap from last lecture. FTP algorithms for planar graphs. More examples of kernels: linear programming kernel for vertex cover problem.   [https://www.dropbox.com/s/zzzaulpmzql7x7u/parameterizedComplexity.pdf?dl=0 presentation].|| [https://drive.google.com/file/d/1KIi6sFhS6M0BWr4xhU6v44BJyi53L7kF/view?usp=drive_link problem list 12] &lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/TBX8sWx7nO0 06.03] || Discussion of the programming project. Linear programming kernel for VC, color coding, dynamic programming. Colorcoding [https://www.dropbox.com/scl/fi/x5gwdae4ny4u3zixoy4pw/student_vc_branching.ipynb?rlkey=5oowq1u3jhy490s84ogojg1s7&amp;amp;dl=0 programming task previous year.](Will be updated.) [https://drive.google.com/file/d/1RMoIpd6p_L1XXOVeV36g0pdJdbtltbPF/view?usp=sharing from slide 39]  || [https://drive.google.com/file/d/16wjIGqbS5UvEUZCxuUfGROUxk2RlLqZl/view?usp=sharing problem list 13] &lt;br /&gt;
|-&lt;br /&gt;
 || 13.03 || Problems that are FPT on graphs with small treewidth. (Or something needed in the project.) || [https://drive.google.com/file/d/1mYkshv6q-c_5nY5qfHgosKxBd1zDDvGK/view?usp=sharing problem list 14]&lt;br /&gt;
|- &lt;br /&gt;
 || 01.04 || I do not have a good programming exercise. Everyone gets 7/10. If you want more, then do a colloquium on April 1st (or earlier). Write me in telegram. || [https://drive.google.com/file/d/1jiUIt0fm3QNSCnSwU0i1vCiOAwlx0yqL/view?usp=drive_link Colloquium questions] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Seminars (2025) !! Recording link&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 4 || [https://rutube.ru/video/private/6f4f908ef52b8af8e5bace950d8a9c0c/?p=5GnphSR3t1Jf4a9Mpqg2Zw link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 5 || Part I: [https://rutube.ru/video/private/992b26e2a8e6c95c662d8d246c7f3e0d/?p=uYcEmJungpW_YPkyLlGMOA link] &amp;lt;br&amp;gt; Part II: [https://rutube.ru/video/private/9d17a54647262d3c63187aad06fab0b8/?p=8WfJJBBJUYFfE9tQkBJ1MA link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 6 || [https://rutube.ru/video/private/6aa2f287bc39727ca82f4c713d2cc463/?p=2s6opSEa5_CjGYmJI3sOLg link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 7 || [https://rutube.ru/video/private/88af4a5c6eb2699db4475dbcf88884b7/?p=k_1vuYG_fWnOAQld9-0aCQ link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 8 || [https://rutube.ru/video/private/8978247dc6dcaaa8ef0e04ac3f4333af/?p=EGFH7-YuCIEiH2BYyKUqrg link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 9 || [https://rutube.ru/video/private/2bfd76c0422f371bc506328c35c9e670/?p=3TXJi4AYqVMD1Idt8HyFmg link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 10 || [https://rutube.ru/video/private/1ab525cc4cdeef5d66b736d6bce5887b/?p=Tvxh3q1LON2Y9O_AvXck1Q link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 11 || [https://rutube.ru/video/private/5536256c687688c3d824a0bd6daba00e/?p=0Vn3ddYFyVunqH09vaiU-A link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 12 || [https://rutube.ru/video/private/b2baba2d5e37a15765dc7e0681b96c4c/?p=12yI6HG1IkPFfHYy9fI22w link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 13 || [https://rutube.ru/video/private/921f6cac58abf2c0031fb6e70b49a4c7/?p=BQWvbpxzjNh8BSuArvamuw link]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL8EKo81hBCTGfNPpZlIe7USiEPpZGYDte Recordings last year]&lt;br /&gt;
&lt;br /&gt;
= Exam =&lt;br /&gt;
&lt;br /&gt;
Dec 23 at 9h30 in D203. &lt;br /&gt;
&lt;br /&gt;
5 or 6 questions with the same difficulty as the homework questions. You have 3 hours time. &lt;br /&gt;
&lt;br /&gt;
Each year, 1 of the questions is to prove that some problem is NP-complete. Do not forget to say why the problem is in NP. &lt;br /&gt;
&lt;br /&gt;
2 or 3 copies of each of the books by Sipser&#039;s, Arora&amp;amp;Barak, Mertens&amp;amp;Moore, will be available, as well as a few prints of chapters 7 &amp;amp; 8 of Sipser&#039;s book. (If you have these books or printed parts of them, please bring it.) Also, personal handwritten notes are allowed, but nothing else.  [https://www.dropbox.com/s/37gdsbv2it8omnm/tc-sample-exam.pdf?dl=0 Sample exam]. &lt;br /&gt;
&lt;br /&gt;
If you have a passing grade without attending the exam, you may skip the exam and I will mark you as present by default. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Project (for PI students) =&lt;br /&gt;
&lt;br /&gt;
During the 3rd module Januari till March 2024 there are projects where you need to implement algorithms from parameterized complexity. (For example, for the vertex cover algorithm and disjoint paths problems.) A grader will check whether your algorithm reaches certain time limits. &lt;br /&gt;
&lt;br /&gt;
There are 3 tasks: 2 of them about branching and kernelization, 1 task about linear programming bounds. See the table with lectures. The tasks have equal weight for the grade. &lt;br /&gt;
&lt;br /&gt;
Deadline March 31st, 23h59. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Additional reading = &lt;br /&gt;
&lt;br /&gt;
Recall that the most important book for our course is &#039;&#039;Sipser, Introduction to the theory of computation&#039;&#039; 3rd edition, 2013, chapters 3, 4, 7–9. This book is intended for Bachelor students. &lt;br /&gt;
&lt;br /&gt;
The following book is popular with students theoretical computer science, because it contains most materials of our course in a concise way. Moreover, it presents many important advanced topics. I find the style of some proofs rather technical, but I like the topics in this book. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;S. Arora and B. Barak, Computational Complexity: A Modern Approach, 2009&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The course materials can also be found in various chapters of the following massive book (700 pages). It starts at beginning bachelor level and ends at an advanced master level. It is written in a pleasant style with excellent examples.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;C. Moore and S. Mertens, The nature of computation, 2011.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This book gives an introduction to important recent research directions in computational hardness. It also studies specific topics (games and planar problems) in huge detail.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;E. Demaine, W Gasarch, Haijaghayi, Computational intractability: a guide to lower bounds, 2023&#039;&#039; [https://hardness.mit.edu/ current draft]&lt;br /&gt;
&lt;br /&gt;
This is an advanced textbook with background on parameterized algorithms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;M. Cygan, F. Fomin and 6 others, Parameterized algorithms, 2016&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Grading =&lt;br /&gt;
&lt;br /&gt;
For AMI students:&lt;br /&gt;
&lt;br /&gt;
 Final score = 0.35 * [score homework] + 0.35 * [score colloquium] + 0.3 * [score exam] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For PI students (the course is called &amp;quot;computational complexity&amp;quot; and takes 3 modules). There are 2 scores for this course. The first one, given in December is calculated by the above formula (but probably it does not mean anything, I will ask about it). The second score is given below, and it is the one that will be in the diploma. It includes a programming project. The assignment and grader, will be set up by the end of Februari, the deadline is the end of March.  &lt;br /&gt;
&lt;br /&gt;
 Final score = 0.3 * [score homework] + 0.3 * [score colloquium] + 0.2 * [score exam] + 0.2 * [score project] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some homework assignments contain extra problems. Each solution of an extra problem will give 0.5 extra points on the final exam (which is graded out of 10). There will be around 10 extra problems. Rounding is applied only when the final score is transferred to the official grade. Arithmetic rounding is used. Autogrades. If only 6/10 for the exam is needed to get a final score of 10/10, then this will be given automatically. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Office hours =&lt;br /&gt;
&lt;br /&gt;
Bruno Bauwens: Tuesday 15h -- 21h. Friday 15h -- 18h. &lt;br /&gt;
&lt;br /&gt;
Subin Pulari: Please contact via telegram or mail [mailto:spulari@hse.ru spulari@hse.ru]&lt;/div&gt;</summary>
		<author><name>Spulari</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2025&amp;diff=95688</id>
		<title>Theory of computation 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2025&amp;diff=95688"/>
		<updated>2026-03-05T22:01:25Z</updated>

		<summary type="html">&lt;p&gt;Spulari: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Classes =&lt;br /&gt;
&lt;br /&gt;
Lectures:  Friday 13h00 - 14h20 in Pokrovkaya room S834 and in [https://us02web.zoom.us/j/82300259484?pwd=NWxXekxBeE5yMm9UTmwvLzNNNGlnUT09 zoom] by [https://www.hse.ru/en/org/persons/160550073 Bruno Bauwens].&lt;br /&gt;
&lt;br /&gt;
Seminars: Friday 14h40 - 16h00 in [https://us06web.zoom.us/j/89836244481?pwd=oJ7zni9Iv1BNVKaJ9voOnZyzfPT4ci.1 zoom] by Prof. Subin Pulari (on 13.03 also in S834). &lt;br /&gt;
&lt;br /&gt;
Telegram group for announcements and discussions [https://t.me/+7BOrITRebjk5MTc0 invite link.] The course is similar to [http://wiki.cs.hse.ru/Theory_of_computation_2024 last year&#039;s one].&lt;br /&gt;
&lt;br /&gt;
For students programming engineering this course is called &amp;quot;computational complexity theory&amp;quot; and the course has an extra part in the 3rd module. &lt;br /&gt;
&lt;br /&gt;
All [https://docs.google.com/spreadsheets/d/1saxWb6gGXJV7VL7uQGvg8YO6xS21uIgpBk4C8wwimvE/edit?usp=sharing grades].&lt;br /&gt;
&lt;br /&gt;
= Homeworks =&lt;br /&gt;
&lt;br /&gt;
Deadlines: every 2 weeks, before the lecture. Submit in pdf or fotos of handwritten text in [https://classroom.google.com/c/ODEwMjk4NDQxMTU1?cjc=n5dttaev google class]. &lt;br /&gt;
&lt;br /&gt;
Tasks are in the problem lists from the seminar. Deadlines: problem lists 1 and 2: at the start of 3rd lecture, lists 3 and 4 at the start of the 5th lecture, etc.&lt;br /&gt;
&lt;br /&gt;
Late policy: 1 homework can be submitted at most 24h late without explanations.&lt;br /&gt;
&lt;br /&gt;
All homework scores are available in the following Google Sheet: [https://docs.google.com/spreadsheets/d/1QvyOh7kk7W-IhgMNcyFJ5NUNj9Tw-9z12ora_ZBW8eA/edit?usp=sharing link]&lt;br /&gt;
&lt;br /&gt;
= Course Materials =&lt;br /&gt;
&lt;br /&gt;
The main reference is Sipser&#039;s book &amp;quot;Introduction to the theory of computation&amp;quot;, chapters 3, 4, 7–9.&lt;br /&gt;
&lt;br /&gt;
If you need some background in math, consider&lt;br /&gt;
&amp;lt;!-- [http://www.cs.elte.hu/~lovasz/dmbook.ps Lecture notes: Discrete Mathematics], L. Lovasz, K. Vesztergombi and --&amp;gt;&lt;br /&gt;
[http://rubtsov.su/public/DM-HSE-Draft.pdf Лекции по дискретной математике].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Rec !! Summary !! Problem list&lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=-VIr385nKVk 19.09] || Turing machines, multitape Turing machines, connection between them. Universal Turing machine. Examples. Time and space complexity. Complexity classes P, PSPACE, EXP. (Recording from previous year.) [https://drive.google.com/file/d/1Xby_fNyeVwZtVY6yfVJLBYNCaZVbOP61/view?usp=drive_link Notes]|| [https://drive.google.com/file/d/1bf3hhE82uw5D0bQGajXHl1-FhhyG-XnY/view?usp=drive_link problem list 1]&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|| [https://www.youtube.com/watch?v=tnq5BkcGfk0 26.09] || Undecidability of the Halting problem. Time and space hierarchy theorems. See notes above. || [https://drive.google.com/file/d/1iyba3kM98oJCz5yvKmWRb0oOpIAhFPef/view?usp=drive_link problem list 2] &lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=VR_A62kFXH8 03.10] || Complexity class NP. Examples. Non-deterministic machines and another definition of NP. Polynomial reductions. NP-hardness and NP-completeness. [https://drive.google.com/file/d/1chzfYehNELzNkDMDjmRo9gfIXv_9FYeG/view?usp=drive_link Notes], [https://drive.google.com/file/d/1leJcc3UqC-WIGGN3G7Zm2Y0jt84q13o1/view?usp=drive_link tex]. || [https://drive.google.com/file/d/17AF1Bj5I_S0XzwXkM4IeOugxX2Kr3i2u/view?usp=drive_link problem list 3]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://rutube.ru/video/585774c956d226dde80929ca0b39f13e 10.10] ||  NP-completenes of independent-set, NAE-3SAT, 3colorability, subsetsum, knapsack problem. Notes above.  || [https://drive.google.com/file/d/1dVUT2KZ9hAyGBZITDJh3xtfLb992aX9L/view?usp=drive_link problem list 4] upd 10.10&lt;br /&gt;
|-&lt;br /&gt;
 || [https://rutube.ru/video/53f86ac57c92d812edb493b280e31a07 17.10] || Circuits 1: examples and all functions have exponential circuits. Classes P/poly, AC^i and NC^i. Some functions have exponential circuit complexity. &amp;lt;!-- NC1 = Boolean formulas of polynomial size. Addition in AC0. Multiplication is in NC1. P is in P/poly. 3SAT is NP-complete.--&amp;gt;  [https://drive.google.com/file/d/1Cqr4A6ohPLIaAVocG3jE6GYsNz4XgA4r/view?usp=drive_link Notes.pdf] upd 28.10, [https://drive.google.com/file/d/1rzL0-_fKq9ZbSu_zjTUUiM_cQNUGUX05/view?usp=drive_link tex].  || [https://drive.google.com/file/d/1uB12iMZptqzcoLpF6hZT-8X1Xh9-1nm4/view?usp=drive_link problem list 5]&lt;br /&gt;
|-&lt;br /&gt;
 || 23.10 || Circuits 2: NC0 = functions that depend on a constant number of inputs. P is in P/poly. 3SAT is NP-complete.  Seminar: addition in AC0. Multiplication is in NC1. Notes above. Last year&#039;s [https://www.youtube.com/watch?v=Jqy89FPbFj4  video]. || see list 5&lt;br /&gt;
|-&lt;br /&gt;
 || [https://drive.google.com/file/d/19vsMFBQfun7mf9URNF-F2R9JWbPlNN81/view?usp=drive_link 24.10] || Directed Reachability is in SPACE(log^2 n). TQBF problem, its PSPACE-completeness. PSPACE = NPSPACE. NSPACE(s(n)) is in SPACE(s(n)^2) for space constructible s.|| [https://drive.google.com/file/d/1j9XCMFYwsqcqIzGgKGSgDpJvmtz4-Wx8/view?usp=drive_link problem list 6] upd 28.10&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/W_uZuQXm53c 07.11] || Oracle computation definitions. There exists an oracle &#039;&#039;A&#039;&#039; for which P&amp;lt;sup&amp;gt;&#039;&#039;A&#039;&#039;&amp;lt;/sup&amp;gt; = NP&amp;lt;sup&amp;gt;&#039;&#039;A&#039;&#039;&amp;lt;/sup&amp;gt;. There is an oracle B such that P&amp;lt;sup&amp;gt;&#039;&#039;B&#039;&#039;&amp;lt;/sup&amp;gt; is not equal to NP&amp;lt;sup&amp;gt;&#039;&#039;B&#039;&#039;&amp;lt;/sup&amp;gt;. || [https://drive.google.com/file/d/1v8dh4EAeAtq1et4ya_Q1VBO77_m3a6WS/view?usp=drive_link problem list 7]&lt;br /&gt;
|- &lt;br /&gt;
|| [https://youtube.com/live/ALO6r52wuIU 14.11] ||  Probabilistic computation. Probabilistic machines, the class BPP, invariance of the definition BPP for different thresholds, RP, coRP, PP, ZPP. BPP is in P/poly. Most of it is also [https://www.youtube.com/watch?v=YSMgVbOqB-8&amp;amp;list=PLm3J0oaFux3YL5vLXpzOyJiLtqLp6dCW2&amp;amp;index=23 here] and [https://www.cs.cmu.edu/afs/cs/academic/class/15859-f04/www/scribes/lec2.pdf scribe1] [https://lucatrevisan.github.io/cs278-04/notes/lecture08.pdf scribe2] || [https://drive.google.com/file/d/1pMn1rzOKjnmjvW4X1WJA-jauQv08YFIh/view?usp=drive_link problem list 8] upd 20.11&lt;br /&gt;
|-&lt;br /&gt;
 || [https://rutube.ru/video/private/82810d471de9883b9215d0c9a3235c44/?p=8fTMLwkOD-WvpiQM1ACE0A 21.11] || Approximation algorithms. Definition c-approximation algorithm. 2-approximation for vertex cover and greedy vertex cover is not optimal. (ln n + 1)-approximation for set cover. PTAS for the makespan problem. Based on [https://www.youtube.com/watch?v=MEz1J9wY2iM&amp;amp;pp=ygUYYXBwcm94aW1hdGlvbiBhbGdvcml0aG1z MIT lecture].|| &lt;br /&gt;
[https://drive.google.com/file/d/1TPC6D_81PrklhjlTfrfnEzE4_5vm3vPS/view?usp=drive_link problem list 9]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/r9rP3ZojeqY 28.11] || Parameterized complexity: The classes FPT and XP. Kernelization. Examples for vertex cover.  [https://drive.google.com/file/d/1W9SU24HW0r5QhugzmrghpkzJUFuC8whq/view?usp=sharing Notes.] This year&#039;s [https://rutube.ru/video/private/757b101d76445586b9f5e752f6028e33/?p=enzOqSoF4YmMdI3rnqEO9A recording]. || [https://drive.google.com/file/d/12GnrF5dpVZjMsHfG4Y6jmT3P6jsc8jjm/view?usp=drive_link problem list 10] upd 8.12&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/E4aNlvbYoLQ  05.12] || Parameterized complexity: W-hierarchy, hardness from the exponential time hypothesis. [https://drive.google.com/file/d/1f-085Gr7E01HepUR-brGJDet-fXJzUwb/view?usp=sharing presentation] [https://drive.google.com/file/d/1OIw7h31N2tt-npC0NrvVgNhYGw_HlJa_/view?usp=sharing Notes] This year&#039;s [https://rutube.ru/video/fdfba34cca0e6d23b7382e883f138aa2 rec]. || [https://drive.google.com/file/d/1xhUYMsj0iV2TMZfR8FtkxWUNlcCjdS-N/view?usp=sharing problem list 11] &lt;br /&gt;
|- &lt;br /&gt;
 || 12.12 || &#039;&#039;Colloquium.&#039;&#039; Also on 19.12. [https://drive.google.com/file/d/1no8CbHKJluGRx7FROpSS7BqXdjOVgdT1/view?usp=sharing Rules and questions.] (Same as last year.) Reserve a [https://docs.google.com/spreadsheets/d/1_vO5Q0wGkM0kU1OHNiP8lz24M4i-toLC2AmQg7tuRVE/edit?usp=sharing slot]. || [https://www.dropbox.com/s/37gdsbv2it8omnm/tc-sample-exam.pdf?dl=0 Sample exam] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Artem Parfenov&#039;s [https://drive.google.com/file/d/16_ZP0X9wwza1RsrXZZGQsx5Igwk_vY9r/view?usp=sharing lecture summaries] [https://drive.google.com/drive/folders/1XsNL2B69akd3A9qaOEgC09NiZXLP8Wbz?usp=drive_link source] (Disclaimer: I did not check them):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Date !! Software engineering: parameterized complexity, FPT algorithms !! Problem list&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/xDaTpuVF0Es 27.02] || Recap from last lecture. FTP algorithms for planar graphs. More examples of kernels: linear programming kernel for vertex cover problem.   [https://www.dropbox.com/s/zzzaulpmzql7x7u/parameterizedComplexity.pdf?dl=0 presentation].|| [https://drive.google.com/file/d/1KIi6sFhS6M0BWr4xhU6v44BJyi53L7kF/view?usp=drive_link problem list 12] &lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/TBX8sWx7nO0 06.03] || Discussion of the programming project. Linear programming kernel for VC, color coding, dynamic programming. Colorcoding [https://www.dropbox.com/scl/fi/x5gwdae4ny4u3zixoy4pw/student_vc_branching.ipynb?rlkey=5oowq1u3jhy490s84ogojg1s7&amp;amp;dl=0 programming task previous year.](Will be updated.) [https://drive.google.com/file/d/1RMoIpd6p_L1XXOVeV36g0pdJdbtltbPF/view?usp=sharing from slide 39]  || [https://drive.google.com/file/d/16wjIGqbS5UvEUZCxuUfGROUxk2RlLqZl/view?usp=sharing problem list 13] &lt;br /&gt;
|-&lt;br /&gt;
 || 13.03 || Problems that are FPT on graphs with small treewidth. (Or something needed in the project.) || [https://drive.google.com/file/d/1mYkshv6q-c_5nY5qfHgosKxBd1zDDvGK/view?usp=sharing problem list 14]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Seminars (2025) !! Recording link&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 4 || [https://rutube.ru/video/private/6f4f908ef52b8af8e5bace950d8a9c0c/?p=5GnphSR3t1Jf4a9Mpqg2Zw link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 5 || Part I: [https://rutube.ru/video/private/992b26e2a8e6c95c662d8d246c7f3e0d/?p=uYcEmJungpW_YPkyLlGMOA link] &amp;lt;br&amp;gt; Part II: [https://rutube.ru/video/private/9d17a54647262d3c63187aad06fab0b8/?p=8WfJJBBJUYFfE9tQkBJ1MA link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 6 || [https://rutube.ru/video/private/6aa2f287bc39727ca82f4c713d2cc463/?p=2s6opSEa5_CjGYmJI3sOLg link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 7 || [https://rutube.ru/video/private/88af4a5c6eb2699db4475dbcf88884b7/?p=k_1vuYG_fWnOAQld9-0aCQ link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 8 || [https://rutube.ru/video/private/8978247dc6dcaaa8ef0e04ac3f4333af/?p=EGFH7-YuCIEiH2BYyKUqrg link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 9 || [https://rutube.ru/video/private/2bfd76c0422f371bc506328c35c9e670/?p=3TXJi4AYqVMD1Idt8HyFmg link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 10 || [https://rutube.ru/video/private/1ab525cc4cdeef5d66b736d6bce5887b/?p=Tvxh3q1LON2Y9O_AvXck1Q link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 11 || [https://rutube.ru/video/private/5536256c687688c3d824a0bd6daba00e/?p=0Vn3ddYFyVunqH09vaiU-A link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 12 || [https://rutube.ru/video/private/b2baba2d5e37a15765dc7e0681b96c4c/?p=12yI6HG1IkPFfHYy9fI22w link]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL8EKo81hBCTGfNPpZlIe7USiEPpZGYDte Recordings last year]&lt;br /&gt;
&lt;br /&gt;
= Exam =&lt;br /&gt;
&lt;br /&gt;
Dec 23 at 9h30 in D203. &lt;br /&gt;
&lt;br /&gt;
5 or 6 questions with the same difficulty as the homework questions. You have 3 hours time. &lt;br /&gt;
&lt;br /&gt;
Each year, 1 of the questions is to prove that some problem is NP-complete. Do not forget to say why the problem is in NP. &lt;br /&gt;
&lt;br /&gt;
2 or 3 copies of each of the books by Sipser&#039;s, Arora&amp;amp;Barak, Mertens&amp;amp;Moore, will be available, as well as a few prints of chapters 7 &amp;amp; 8 of Sipser&#039;s book. (If you have these books or printed parts of them, please bring it.) Also, personal handwritten notes are allowed, but nothing else.  [https://www.dropbox.com/s/37gdsbv2it8omnm/tc-sample-exam.pdf?dl=0 Sample exam]. &lt;br /&gt;
&lt;br /&gt;
If you have a passing grade without attending the exam, you may skip the exam and I will mark you as present by default. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Project (for PI students) =&lt;br /&gt;
&lt;br /&gt;
During the 3rd module Januari till March 2024 there are projects where you need to implement algorithms from parameterized complexity. (For example, for the vertex cover algorithm and disjoint paths problems.) A grader will check whether your algorithm reaches certain time limits. &lt;br /&gt;
&lt;br /&gt;
There are 3 tasks: 2 of them about branching and kernelization, 1 task about linear programming bounds. See the table with lectures. The tasks have equal weight for the grade. &lt;br /&gt;
&lt;br /&gt;
Deadline March 31st, 23h59. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Additional reading = &lt;br /&gt;
&lt;br /&gt;
Recall that the most important book for our course is &#039;&#039;Sipser, Introduction to the theory of computation&#039;&#039; 3rd edition, 2013, chapters 3, 4, 7–9. This book is intended for Bachelor students. &lt;br /&gt;
&lt;br /&gt;
The following book is popular with students theoretical computer science, because it contains most materials of our course in a concise way. Moreover, it presents many important advanced topics. I find the style of some proofs rather technical, but I like the topics in this book. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;S. Arora and B. Barak, Computational Complexity: A Modern Approach, 2009&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The course materials can also be found in various chapters of the following massive book (700 pages). It starts at beginning bachelor level and ends at an advanced master level. It is written in a pleasant style with excellent examples.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;C. Moore and S. Mertens, The nature of computation, 2011.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This book gives an introduction to important recent research directions in computational hardness. It also studies specific topics (games and planar problems) in huge detail.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;E. Demaine, W Gasarch, Haijaghayi, Computational intractability: a guide to lower bounds, 2023&#039;&#039; [https://hardness.mit.edu/ current draft]&lt;br /&gt;
&lt;br /&gt;
This is an advanced textbook with background on parameterized algorithms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;M. Cygan, F. Fomin and 6 others, Parameterized algorithms, 2016&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Grading =&lt;br /&gt;
&lt;br /&gt;
For AMI students:&lt;br /&gt;
&lt;br /&gt;
 Final score = 0.35 * [score homework] + 0.35 * [score colloquium] + 0.3 * [score exam] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For PI students (the course is called &amp;quot;computational complexity&amp;quot; and takes 3 modules). There are 2 scores for this course. The first one, given in December is calculated by the above formula (but probably it does not mean anything, I will ask about it). The second score is given below, and it is the one that will be in the diploma. It includes a programming project. The assignment and grader, will be set up by the end of Februari, the deadline is the end of March.  &lt;br /&gt;
&lt;br /&gt;
 Final score = 0.3 * [score homework] + 0.3 * [score colloquium] + 0.2 * [score exam] + 0.2 * [score project] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some homework assignments contain extra problems. Each solution of an extra problem will give 0.5 extra points on the final exam (which is graded out of 10). There will be around 10 extra problems. Rounding is applied only when the final score is transferred to the official grade. Arithmetic rounding is used. Autogrades. If only 6/10 for the exam is needed to get a final score of 10/10, then this will be given automatically. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Office hours =&lt;br /&gt;
&lt;br /&gt;
Bruno Bauwens: Tuesday 15h -- 21h. Friday 15h -- 18h. &lt;br /&gt;
&lt;br /&gt;
Subin Pulari: Please contact via telegram or mail [mailto:spulari@hse.ru spulari@hse.ru]&lt;/div&gt;</summary>
		<author><name>Spulari</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2025&amp;diff=95586</id>
		<title>Theory of computation 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2025&amp;diff=95586"/>
		<updated>2026-02-27T13:44:30Z</updated>

		<summary type="html">&lt;p&gt;Spulari: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Classes =&lt;br /&gt;
&lt;br /&gt;
Lectures:  Friday 13h00 - 14h20 in Pokrovkaya room S834 and in [https://us02web.zoom.us/j/82300259484?pwd=NWxXekxBeE5yMm9UTmwvLzNNNGlnUT09 zoom] by [https://www.hse.ru/en/org/persons/160550073 Bruno Bauwens].&lt;br /&gt;
&lt;br /&gt;
Seminars: Friday 14h40 - 16h00 in [https://us06web.zoom.us/j/89836244481?pwd=oJ7zni9Iv1BNVKaJ9voOnZyzfPT4ci.1 zoom] by Prof. Subin Pulari (on 13.03 also in S834). &lt;br /&gt;
&lt;br /&gt;
Telegram group for announcements and discussions [https://t.me/+7BOrITRebjk5MTc0 invite link.] The course is similar to [http://wiki.cs.hse.ru/Theory_of_computation_2024 last year&#039;s one].&lt;br /&gt;
&lt;br /&gt;
For students programming engineering this course is called &amp;quot;computational complexity theory&amp;quot; and the course has an extra part in the 3rd module. &lt;br /&gt;
&lt;br /&gt;
All [https://docs.google.com/spreadsheets/d/1saxWb6gGXJV7VL7uQGvg8YO6xS21uIgpBk4C8wwimvE/edit?usp=sharing grades].&lt;br /&gt;
&lt;br /&gt;
= Homeworks =&lt;br /&gt;
&lt;br /&gt;
Deadlines: every 2 weeks, before the lecture. Submit in pdf or fotos of handwritten text in [https://classroom.google.com/c/ODEwMjk4NDQxMTU1?cjc=n5dttaev google class]. &lt;br /&gt;
&lt;br /&gt;
Tasks are in the problem lists from the seminar. Deadlines: problem lists 1 and 2: at the start of 3rd lecture, lists 3 and 4 at the start of the 5th lecture, etc.&lt;br /&gt;
&lt;br /&gt;
Late policy: 1 homework can be submitted at most 24h late without explanations.&lt;br /&gt;
&lt;br /&gt;
All homework scores are available in the following Google Sheet: [https://docs.google.com/spreadsheets/d/1QvyOh7kk7W-IhgMNcyFJ5NUNj9Tw-9z12ora_ZBW8eA/edit?usp=sharing link]&lt;br /&gt;
&lt;br /&gt;
= Course Materials =&lt;br /&gt;
&lt;br /&gt;
The main reference is Sipser&#039;s book &amp;quot;Introduction to the theory of computation&amp;quot;, chapters 3, 4, 7–9.&lt;br /&gt;
&lt;br /&gt;
If you need some background in math, consider&lt;br /&gt;
&amp;lt;!-- [http://www.cs.elte.hu/~lovasz/dmbook.ps Lecture notes: Discrete Mathematics], L. Lovasz, K. Vesztergombi and --&amp;gt;&lt;br /&gt;
[http://rubtsov.su/public/DM-HSE-Draft.pdf Лекции по дискретной математике].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Rec !! Summary !! Problem list&lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=-VIr385nKVk 19.09] || Turing machines, multitape Turing machines, connection between them. Universal Turing machine. Examples. Time and space complexity. Complexity classes P, PSPACE, EXP. (Recording from previous year.) [https://drive.google.com/file/d/1Xby_fNyeVwZtVY6yfVJLBYNCaZVbOP61/view?usp=drive_link Notes]|| [https://drive.google.com/file/d/1bf3hhE82uw5D0bQGajXHl1-FhhyG-XnY/view?usp=drive_link problem list 1]&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|| [https://www.youtube.com/watch?v=tnq5BkcGfk0 26.09] || Undecidability of the Halting problem. Time and space hierarchy theorems. See notes above. || [https://drive.google.com/file/d/1iyba3kM98oJCz5yvKmWRb0oOpIAhFPef/view?usp=drive_link problem list 2] &lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=VR_A62kFXH8 03.10] || Complexity class NP. Examples. Non-deterministic machines and another definition of NP. Polynomial reductions. NP-hardness and NP-completeness. [https://drive.google.com/file/d/1chzfYehNELzNkDMDjmRo9gfIXv_9FYeG/view?usp=drive_link Notes], [https://drive.google.com/file/d/1leJcc3UqC-WIGGN3G7Zm2Y0jt84q13o1/view?usp=drive_link tex]. || [https://drive.google.com/file/d/17AF1Bj5I_S0XzwXkM4IeOugxX2Kr3i2u/view?usp=drive_link problem list 3]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://rutube.ru/video/585774c956d226dde80929ca0b39f13e 10.10] ||  NP-completenes of independent-set, NAE-3SAT, 3colorability, subsetsum, knapsack problem. Notes above.  || [https://drive.google.com/file/d/1dVUT2KZ9hAyGBZITDJh3xtfLb992aX9L/view?usp=drive_link problem list 4] upd 10.10&lt;br /&gt;
|-&lt;br /&gt;
 || [https://rutube.ru/video/53f86ac57c92d812edb493b280e31a07 17.10] || Circuits 1: examples and all functions have exponential circuits. Classes P/poly, AC^i and NC^i. Some functions have exponential circuit complexity. &amp;lt;!-- NC1 = Boolean formulas of polynomial size. Addition in AC0. Multiplication is in NC1. P is in P/poly. 3SAT is NP-complete.--&amp;gt;  [https://drive.google.com/file/d/1Cqr4A6ohPLIaAVocG3jE6GYsNz4XgA4r/view?usp=drive_link Notes.pdf] upd 28.10, [https://drive.google.com/file/d/1rzL0-_fKq9ZbSu_zjTUUiM_cQNUGUX05/view?usp=drive_link tex].  || [https://drive.google.com/file/d/1uB12iMZptqzcoLpF6hZT-8X1Xh9-1nm4/view?usp=drive_link problem list 5]&lt;br /&gt;
|-&lt;br /&gt;
 || 23.10 || Circuits 2: NC0 = functions that depend on a constant number of inputs. P is in P/poly. 3SAT is NP-complete.  Seminar: addition in AC0. Multiplication is in NC1. Notes above. Last year&#039;s [https://www.youtube.com/watch?v=Jqy89FPbFj4  video]. || see list 5&lt;br /&gt;
|-&lt;br /&gt;
 || [https://drive.google.com/file/d/19vsMFBQfun7mf9URNF-F2R9JWbPlNN81/view?usp=drive_link 24.10] || Directed Reachability is in SPACE(log^2 n). TQBF problem, its PSPACE-completeness. PSPACE = NPSPACE. NSPACE(s(n)) is in SPACE(s(n)^2) for space constructible s.|| [https://drive.google.com/file/d/1j9XCMFYwsqcqIzGgKGSgDpJvmtz4-Wx8/view?usp=drive_link problem list 6] upd 28.10&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/W_uZuQXm53c 07.11] || Oracle computation definitions. There exists an oracle &#039;&#039;A&#039;&#039; for which P&amp;lt;sup&amp;gt;&#039;&#039;A&#039;&#039;&amp;lt;/sup&amp;gt; = NP&amp;lt;sup&amp;gt;&#039;&#039;A&#039;&#039;&amp;lt;/sup&amp;gt;. There is an oracle B such that P&amp;lt;sup&amp;gt;&#039;&#039;B&#039;&#039;&amp;lt;/sup&amp;gt; is not equal to NP&amp;lt;sup&amp;gt;&#039;&#039;B&#039;&#039;&amp;lt;/sup&amp;gt;. || [https://drive.google.com/file/d/1v8dh4EAeAtq1et4ya_Q1VBO77_m3a6WS/view?usp=drive_link problem list 7]&lt;br /&gt;
|- &lt;br /&gt;
|| [https://youtube.com/live/ALO6r52wuIU 14.11] ||  Probabilistic computation. Probabilistic machines, the class BPP, invariance of the definition BPP for different thresholds, RP, coRP, PP, ZPP. BPP is in P/poly. Most of it is also [https://www.youtube.com/watch?v=YSMgVbOqB-8&amp;amp;list=PLm3J0oaFux3YL5vLXpzOyJiLtqLp6dCW2&amp;amp;index=23 here] and [https://www.cs.cmu.edu/afs/cs/academic/class/15859-f04/www/scribes/lec2.pdf scribe1] [https://lucatrevisan.github.io/cs278-04/notes/lecture08.pdf scribe2] || [https://drive.google.com/file/d/1pMn1rzOKjnmjvW4X1WJA-jauQv08YFIh/view?usp=drive_link problem list 8] upd 20.11&lt;br /&gt;
|-&lt;br /&gt;
 || [https://rutube.ru/video/private/82810d471de9883b9215d0c9a3235c44/?p=8fTMLwkOD-WvpiQM1ACE0A 21.11] || Approximation algorithms. Definition c-approximation algorithm. 2-approximation for vertex cover and greedy vertex cover is not optimal. (ln n + 1)-approximation for set cover. PTAS for the makespan problem. Based on [https://www.youtube.com/watch?v=MEz1J9wY2iM&amp;amp;pp=ygUYYXBwcm94aW1hdGlvbiBhbGdvcml0aG1z MIT lecture].|| &lt;br /&gt;
[https://drive.google.com/file/d/1TPC6D_81PrklhjlTfrfnEzE4_5vm3vPS/view?usp=drive_link problem list 9]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/r9rP3ZojeqY 28.11] || Parameterized complexity: The classes FPT and XP. Kernelization. Examples for vertex cover.  [https://drive.google.com/file/d/1W9SU24HW0r5QhugzmrghpkzJUFuC8whq/view?usp=sharing Notes.] This year&#039;s [https://rutube.ru/video/private/757b101d76445586b9f5e752f6028e33/?p=enzOqSoF4YmMdI3rnqEO9A recording]. || [https://drive.google.com/file/d/12GnrF5dpVZjMsHfG4Y6jmT3P6jsc8jjm/view?usp=drive_link problem list 10] upd 8.12&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/E4aNlvbYoLQ  05.12] || Parameterized complexity: W-hierarchy, hardness from the exponential time hypothesis. [https://drive.google.com/file/d/1f-085Gr7E01HepUR-brGJDet-fXJzUwb/view?usp=sharing presentation] [https://drive.google.com/file/d/1OIw7h31N2tt-npC0NrvVgNhYGw_HlJa_/view?usp=sharing Notes] This year&#039;s [https://rutube.ru/video/fdfba34cca0e6d23b7382e883f138aa2 rec]. || [https://drive.google.com/file/d/1xhUYMsj0iV2TMZfR8FtkxWUNlcCjdS-N/view?usp=sharing problem list 11] &lt;br /&gt;
|- &lt;br /&gt;
 || 12.12 || &#039;&#039;Colloquium.&#039;&#039; Also on 19.12. [https://drive.google.com/file/d/1no8CbHKJluGRx7FROpSS7BqXdjOVgdT1/view?usp=sharing Rules and questions.] (Same as last year.) Reserve a [https://docs.google.com/spreadsheets/d/1_vO5Q0wGkM0kU1OHNiP8lz24M4i-toLC2AmQg7tuRVE/edit?usp=sharing slot]. || [https://www.dropbox.com/s/37gdsbv2it8omnm/tc-sample-exam.pdf?dl=0 Sample exam] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Artem Parfenov&#039;s [https://drive.google.com/file/d/16_ZP0X9wwza1RsrXZZGQsx5Igwk_vY9r/view?usp=sharing lecture summaries] [https://drive.google.com/drive/folders/1XsNL2B69akd3A9qaOEgC09NiZXLP8Wbz?usp=drive_link source] (Disclaimer: I did not check them):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Date !! Software engineering: parameterized complexity, FPT algorithms !! Problem list&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/xDaTpuVF0Es 27.02] || Recap from last lecture. FTP algorithms for planar graphs. More examples of kernels: linear programming kernel for vertex cover problem.   [https://www.dropbox.com/s/zzzaulpmzql7x7u/parameterizedComplexity.pdf?dl=0 presentation].|| [https://drive.google.com/file/d/1KIi6sFhS6M0BWr4xhU6v44BJyi53L7kF/view?usp=drive_link problem list 12] &lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/TBX8sWx7nO0 06.03] || Discussion of the programming project. Linear programming kernel for VC, color coding, dynamic programming. Colorcoding [https://www.dropbox.com/scl/fi/x5gwdae4ny4u3zixoy4pw/student_vc_branching.ipynb?rlkey=5oowq1u3jhy490s84ogojg1s7&amp;amp;dl=0 programming task previous year.](Will be updated.) [https://drive.google.com/file/d/1RMoIpd6p_L1XXOVeV36g0pdJdbtltbPF/view?usp=sharing from slide 39]  || [https://drive.google.com/file/d/16wjIGqbS5UvEUZCxuUfGROUxk2RlLqZl/view?usp=sharing problem list 13] &lt;br /&gt;
|-&lt;br /&gt;
 || 13.03 || Problems that are FPT on graphs with small treewidth. (Or something needed in the project.) || [https://drive.google.com/file/d/1mYkshv6q-c_5nY5qfHgosKxBd1zDDvGK/view?usp=sharing problem list 14]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Seminars (2025) !! Recording link&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 4 || [https://rutube.ru/video/private/6f4f908ef52b8af8e5bace950d8a9c0c/?p=5GnphSR3t1Jf4a9Mpqg2Zw link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 5 || Part I: [https://rutube.ru/video/private/992b26e2a8e6c95c662d8d246c7f3e0d/?p=uYcEmJungpW_YPkyLlGMOA link] &amp;lt;br&amp;gt; Part II: [https://rutube.ru/video/private/9d17a54647262d3c63187aad06fab0b8/?p=8WfJJBBJUYFfE9tQkBJ1MA link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 6 || [https://rutube.ru/video/private/6aa2f287bc39727ca82f4c713d2cc463/?p=2s6opSEa5_CjGYmJI3sOLg link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 7 || [https://rutube.ru/video/private/88af4a5c6eb2699db4475dbcf88884b7/?p=k_1vuYG_fWnOAQld9-0aCQ link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 8 || [https://rutube.ru/video/private/8978247dc6dcaaa8ef0e04ac3f4333af/?p=EGFH7-YuCIEiH2BYyKUqrg link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 9 || [https://rutube.ru/video/private/2bfd76c0422f371bc506328c35c9e670/?p=3TXJi4AYqVMD1Idt8HyFmg link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 10 || [https://rutube.ru/video/private/1ab525cc4cdeef5d66b736d6bce5887b/?p=Tvxh3q1LON2Y9O_AvXck1Q link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 11 || [https://rutube.ru/video/private/5536256c687688c3d824a0bd6daba00e/?p=0Vn3ddYFyVunqH09vaiU-A link]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL8EKo81hBCTGfNPpZlIe7USiEPpZGYDte Recordings last year]&lt;br /&gt;
&lt;br /&gt;
= Exam =&lt;br /&gt;
&lt;br /&gt;
Dec 23 at 9h30 in D203. &lt;br /&gt;
&lt;br /&gt;
5 or 6 questions with the same difficulty as the homework questions. You have 3 hours time. &lt;br /&gt;
&lt;br /&gt;
Each year, 1 of the questions is to prove that some problem is NP-complete. Do not forget to say why the problem is in NP. &lt;br /&gt;
&lt;br /&gt;
2 or 3 copies of each of the books by Sipser&#039;s, Arora&amp;amp;Barak, Mertens&amp;amp;Moore, will be available, as well as a few prints of chapters 7 &amp;amp; 8 of Sipser&#039;s book. (If you have these books or printed parts of them, please bring it.) Also, personal handwritten notes are allowed, but nothing else.  [https://www.dropbox.com/s/37gdsbv2it8omnm/tc-sample-exam.pdf?dl=0 Sample exam]. &lt;br /&gt;
&lt;br /&gt;
If you have a passing grade without attending the exam, you may skip the exam and I will mark you as present by default. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Project (for PI students) =&lt;br /&gt;
&lt;br /&gt;
During the 3rd module Januari till March 2024 there are projects where you need to implement algorithms from parameterized complexity. (For example, for the vertex cover algorithm and disjoint paths problems.) A grader will check whether your algorithm reaches certain time limits. &lt;br /&gt;
&lt;br /&gt;
There are 3 tasks: 2 of them about branching and kernelization, 1 task about linear programming bounds. See the table with lectures. The tasks have equal weight for the grade. &lt;br /&gt;
&lt;br /&gt;
Deadline March 31st, 23h59. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Additional reading = &lt;br /&gt;
&lt;br /&gt;
Recall that the most important book for our course is &#039;&#039;Sipser, Introduction to the theory of computation&#039;&#039; 3rd edition, 2013, chapters 3, 4, 7–9. This book is intended for Bachelor students. &lt;br /&gt;
&lt;br /&gt;
The following book is popular with students theoretical computer science, because it contains most materials of our course in a concise way. Moreover, it presents many important advanced topics. I find the style of some proofs rather technical, but I like the topics in this book. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;S. Arora and B. Barak, Computational Complexity: A Modern Approach, 2009&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The course materials can also be found in various chapters of the following massive book (700 pages). It starts at beginning bachelor level and ends at an advanced master level. It is written in a pleasant style with excellent examples.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;C. Moore and S. Mertens, The nature of computation, 2011.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This book gives an introduction to important recent research directions in computational hardness. It also studies specific topics (games and planar problems) in huge detail.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;E. Demaine, W Gasarch, Haijaghayi, Computational intractability: a guide to lower bounds, 2023&#039;&#039; [https://hardness.mit.edu/ current draft]&lt;br /&gt;
&lt;br /&gt;
This is an advanced textbook with background on parameterized algorithms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;M. Cygan, F. Fomin and 6 others, Parameterized algorithms, 2016&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Grading =&lt;br /&gt;
&lt;br /&gt;
For AMI students:&lt;br /&gt;
&lt;br /&gt;
 Final score = 0.35 * [score homework] + 0.35 * [score colloquium] + 0.3 * [score exam] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For PI students (the course is called &amp;quot;computational complexity&amp;quot; and takes 3 modules). There are 2 scores for this course. The first one, given in December is calculated by the above formula (but probably it does not mean anything, I will ask about it). The second score is given below, and it is the one that will be in the diploma. It includes a programming project. The assignment and grader, will be set up by the end of Februari, the deadline is the end of March.  &lt;br /&gt;
&lt;br /&gt;
 Final score = 0.3 * [score homework] + 0.3 * [score colloquium] + 0.2 * [score exam] + 0.2 * [score project] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some homework assignments contain extra problems. Each solution of an extra problem will give 0.5 extra points on the final exam (which is graded out of 10). There will be around 10 extra problems. Rounding is applied only when the final score is transferred to the official grade. Arithmetic rounding is used. Autogrades. If only 6/10 for the exam is needed to get a final score of 10/10, then this will be given automatically. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Office hours =&lt;br /&gt;
&lt;br /&gt;
Bruno Bauwens: Tuesday 15h -- 21h. Friday 15h -- 18h. &lt;br /&gt;
&lt;br /&gt;
Subin Pulari: Please contact via telegram or mail [mailto:spulari@hse.ru spulari@hse.ru]&lt;/div&gt;</summary>
		<author><name>Spulari</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2025&amp;diff=94084</id>
		<title>Theory of computation 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2025&amp;diff=94084"/>
		<updated>2025-12-05T23:55:18Z</updated>

		<summary type="html">&lt;p&gt;Spulari: /* Course Materials */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Classes =&lt;br /&gt;
&lt;br /&gt;
Lectures:  Friday 13h00 - 14h20 in Pokrovkaya, see [https://docs.google.com/spreadsheets/d/1EAbqb8wf48evEi5Bf2M0xmZXQSrpd_FJbsnevXDQxaQ/edit?gid=614347250#gid=614347250 here] for the room, and in [https://us02web.zoom.us/j/82300259484?pwd=NWxXekxBeE5yMm9UTmwvLzNNNGlnUT09 zoom] by [https://www.hse.ru/en/org/persons/160550073 Bruno Bauwens]. Starting 19.09.&lt;br /&gt;
&lt;br /&gt;
Seminars: Friday 14h40 - 16h00 in Pokrovkaya, see [https://docs.google.com/spreadsheets/d/1EAbqb8wf48evEi5Bf2M0xmZXQSrpd_FJbsnevXDQxaQ/edit?gid=614347250#gid=614347250 here] for the room, and in [https://us06web.zoom.us/j/84205097860?pwd=PQpzn1Oqf9G2fjO2vwcUVsMdCnRUuc.1 zoom] by Prof. Subin Pulari&lt;br /&gt;
&lt;br /&gt;
Telegram group for announcements and discussions [https://t.me/+7BOrITRebjk5MTc0 invite link.] The course is similar to [http://wiki.cs.hse.ru/Theory_of_computation_2024 last year&#039;s one].&lt;br /&gt;
&lt;br /&gt;
For students programming engineering this course is called &amp;quot;computational complexity theory&amp;quot; and the course has an extra part in the 3rd module. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Homeworks =&lt;br /&gt;
&lt;br /&gt;
Deadlines: every 2 weeks, before the lecture. Submit in pdf or fotos of handwritten text in [https://classroom.google.com/c/ODEwMjk4NDQxMTU1?cjc=n5dttaev google class]. &lt;br /&gt;
&lt;br /&gt;
Tasks are in the problem lists from the seminar. Deadlines: problem lists 1 and 2: at the start of 3rd lecture, lists 3 and 4 at the start of the 5th lecture, etc.&lt;br /&gt;
&lt;br /&gt;
Late policy: 1 homework can be submitted at most 24h late without explanations.&lt;br /&gt;
&lt;br /&gt;
All homework scores are available in the following Google Sheet: [https://docs.google.com/spreadsheets/d/1QvyOh7kk7W-IhgMNcyFJ5NUNj9Tw-9z12ora_ZBW8eA/edit?usp=sharing link]&lt;br /&gt;
&lt;br /&gt;
= Course Materials =&lt;br /&gt;
&lt;br /&gt;
The main reference is Sipser&#039;s book &amp;quot;Introduction to the theory of computation&amp;quot;, chapters 3, 4, 7–9.&lt;br /&gt;
&lt;br /&gt;
If you need some background in math, consider&lt;br /&gt;
&amp;lt;!-- [http://www.cs.elte.hu/~lovasz/dmbook.ps Lecture notes: Discrete Mathematics], L. Lovasz, K. Vesztergombi and --&amp;gt;&lt;br /&gt;
[http://rubtsov.su/public/DM-HSE-Draft.pdf Лекции по дискретной математике].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Rec !! Summary !! Problem list&lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=-VIr385nKVk 19.09] || Turing machines, multitape Turing machines, connection between them. Universal Turing machine. Examples. Time and space complexity. Complexity classes P, PSPACE, EXP. (Recording from previous year.) [https://drive.google.com/file/d/1Xby_fNyeVwZtVY6yfVJLBYNCaZVbOP61/view?usp=drive_link Notes]|| [https://drive.google.com/file/d/1bf3hhE82uw5D0bQGajXHl1-FhhyG-XnY/view?usp=drive_link problem list 1]&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|| [https://www.youtube.com/watch?v=tnq5BkcGfk0 26.09] || Undecidability of the Halting problem. Time and space hierarchy theorems. See notes above. || [https://drive.google.com/file/d/1iyba3kM98oJCz5yvKmWRb0oOpIAhFPef/view?usp=drive_link problem list 2] &lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=VR_A62kFXH8 03.10] || Complexity class NP. Examples. Non-deterministic machines and another definition of NP. Polynomial reductions. NP-hardness and NP-completeness. [https://drive.google.com/file/d/1chzfYehNELzNkDMDjmRo9gfIXv_9FYeG/view?usp=drive_link Notes], [https://drive.google.com/file/d/1leJcc3UqC-WIGGN3G7Zm2Y0jt84q13o1/view?usp=drive_link tex]. || [https://drive.google.com/file/d/17AF1Bj5I_S0XzwXkM4IeOugxX2Kr3i2u/view?usp=drive_link problem list 3]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://rutube.ru/video/585774c956d226dde80929ca0b39f13e 10.10] ||  NP-completenes of independent-set, NAE-3SAT, 3colorability, subsetsum, knapsack problem. Notes above.  || [https://drive.google.com/file/d/1dVUT2KZ9hAyGBZITDJh3xtfLb992aX9L/view?usp=drive_link problem list 4] upd 10.10&lt;br /&gt;
|-&lt;br /&gt;
 || [https://rutube.ru/video/53f86ac57c92d812edb493b280e31a07 17.10] || Circuits 1: examples and all functions have exponential circuits. Classes P/poly, AC^i and NC^i. Some functions have exponential circuit complexity. &amp;lt;!-- NC1 = Boolean formulas of polynomial size. Addition in AC0. Multiplication is in NC1. P is in P/poly. 3SAT is NP-complete.--&amp;gt;  [https://drive.google.com/file/d/1Cqr4A6ohPLIaAVocG3jE6GYsNz4XgA4r/view?usp=drive_link Notes.pdf] upd 28.10, [https://drive.google.com/file/d/1rzL0-_fKq9ZbSu_zjTUUiM_cQNUGUX05/view?usp=drive_link tex].  || [https://drive.google.com/file/d/1uB12iMZptqzcoLpF6hZT-8X1Xh9-1nm4/view?usp=drive_link problem list 5]&lt;br /&gt;
|-&lt;br /&gt;
 || 23.10 || Circuits 2: NC0 = functions that depend on a constant number of inputs. P is in P/poly. 3SAT is NP-complete.  Seminar: addition in AC0. Multiplication is in NC1. Notes above. Last year&#039;s [https://www.youtube.com/watch?v=Jqy89FPbFj4  video]. || see list 5&lt;br /&gt;
|-&lt;br /&gt;
 || [https://drive.google.com/file/d/19vsMFBQfun7mf9URNF-F2R9JWbPlNN81/view?usp=drive_link 24.10] || Directed Reachability is in SPACE(log^2 n). TQBF problem, its PSPACE-completeness. PSPACE = NPSPACE. NSPACE(s(n)) is in SPACE(s(n)^2) for space constructible s.|| [https://drive.google.com/file/d/1j9XCMFYwsqcqIzGgKGSgDpJvmtz4-Wx8/view?usp=drive_link problem list 6] upd 28.10&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/W_uZuQXm53c 07.11] || Oracle computation definitions. There exists an oracle &#039;&#039;A&#039;&#039; for which P&amp;lt;sup&amp;gt;&#039;&#039;A&#039;&#039;&amp;lt;/sup&amp;gt; = NP&amp;lt;sup&amp;gt;&#039;&#039;A&#039;&#039;&amp;lt;/sup&amp;gt;. There is an oracle B such that P&amp;lt;sup&amp;gt;&#039;&#039;B&#039;&#039;&amp;lt;/sup&amp;gt; is not equal to NP&amp;lt;sup&amp;gt;&#039;&#039;B&#039;&#039;&amp;lt;/sup&amp;gt;. || [https://drive.google.com/file/d/1v8dh4EAeAtq1et4ya_Q1VBO77_m3a6WS/view?usp=drive_link problem list 7]&lt;br /&gt;
|- &lt;br /&gt;
|| [https://youtube.com/live/ALO6r52wuIU 14.11] ||  Probabilistic computation. Probabilistic machines, the class BPP, invariance of the definition BPP for different thresholds, RP, coRP, PP, ZPP. BPP is in P/poly. Most of it is also [https://www.youtube.com/watch?v=YSMgVbOqB-8&amp;amp;list=PLm3J0oaFux3YL5vLXpzOyJiLtqLp6dCW2&amp;amp;index=23 here] and [https://www.cs.cmu.edu/afs/cs/academic/class/15859-f04/www/scribes/lec2.pdf scribe1] [https://lucatrevisan.github.io/cs278-04/notes/lecture08.pdf scribe2] || [https://drive.google.com/file/d/1pMn1rzOKjnmjvW4X1WJA-jauQv08YFIh/view?usp=drive_link problem list 8] upd 20.11&lt;br /&gt;
|-&lt;br /&gt;
 || [https://rutube.ru/video/private/82810d471de9883b9215d0c9a3235c44/?p=8fTMLwkOD-WvpiQM1ACE0A 21.11] || Approximation algorithms. Definition c-approximation algorithm. 2-approximation for vertex cover and greedy vertex cover is not optimal. (ln n + 1)-approximation for set cover. PTAS for the makespan problem. Based on [https://www.youtube.com/watch?v=MEz1J9wY2iM&amp;amp;pp=ygUYYXBwcm94aW1hdGlvbiBhbGdvcml0aG1z MIT lecture].|| &lt;br /&gt;
[https://drive.google.com/file/d/1TPC6D_81PrklhjlTfrfnEzE4_5vm3vPS/view?usp=drive_link problem list 9]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/r9rP3ZojeqY 28.11] || Parameterized complexity: The classes FPT and XP. Kernelization. Examples for vertex cover.  [https://drive.google.com/file/d/1W9SU24HW0r5QhugzmrghpkzJUFuC8whq/view?usp=sharing Notes.] This year&#039;s [https://rutube.ru/video/private/18c6e2b7e1222f3411afbc933f317631/?p=9KNQCTTbSP-nKD-gg6tDOw recording]. || [https://drive.google.com/file/d/12GnrF5dpVZjMsHfG4Y6jmT3P6jsc8jjm/view?usp=drive_link problem list 10] &lt;br /&gt;
|-&lt;br /&gt;
 || [https://rutube.ru/video/fdfba34cca0e6d23b7382e883f138aa2/ 05.12] || Parameterized complexity: W-hierarchy, hardness from the exponential time hypothesis. [https://drive.google.com/file/d/1f-085Gr7E01HepUR-brGJDet-fXJzUwb/view?usp=sharing presentation] [https://drive.google.com/file/d/1OIw7h31N2tt-npC0NrvVgNhYGw_HlJa_/view?usp=sharing Notes] Last year&#039;s [https://youtube.com/live/E4aNlvbYoLQ  rec]. || [https://drive.google.com/file/d/1xhUYMsj0iV2TMZfR8FtkxWUNlcCjdS-N/view?usp=sharing problem list 11] &lt;br /&gt;
|- &lt;br /&gt;
 || 12.12 || &#039;&#039;Colloquium.&#039;&#039; Also on 19.12. [https://drive.google.com/file/d/1no8CbHKJluGRx7FROpSS7BqXdjOVgdT1/view?usp=sharing Rules and questions.] (Same as last year.) Reserve a [https://docs.google.com/spreadsheets/d/1_vO5Q0wGkM0kU1OHNiP8lz24M4i-toLC2AmQg7tuRVE/edit?usp=sharing slot]. || [https://www.dropbox.com/s/37gdsbv2it8omnm/tc-sample-exam.pdf?dl=0 Sample exam] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Artem Parfenov&#039;s [https://drive.google.com/file/d/16_ZP0X9wwza1RsrXZZGQsx5Igwk_vY9r/view?usp=sharing lecture summaries] [https://drive.google.com/drive/folders/1XsNL2B69akd3A9qaOEgC09NiZXLP8Wbz?usp=drive_link source] (Disclaimer: I did not check them):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Date !! Software engineering: parameterized complexity, FPT algorithms !! Problem list&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/xDaTpuVF0Es 05.03] || Recap from last lecture. More examples of kernels: linear programming kernel for vertex cover problem.  [https://www.dropbox.com/scl/fi/x5gwdae4ny4u3zixoy4pw/student_vc_branching.ipynb?rlkey=5oowq1u3jhy490s84ogojg1s7&amp;amp;dl=0 programming task.] [https://www.dropbox.com/s/zzzaulpmzql7x7u/parameterizedComplexity.pdf?dl=0 presentation].|| [https://drive.google.com/file/d/1sXA5F4gUZ-KvigQspz0ScVLOA38ZcxHb/view?usp=sharing problem list 12] &lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/TBX8sWx7nO0 12.03] || Linear programming kernel for VC, color coding, dynamic programming. Colorcoding [https://drive.google.com/file/d/1RMoIpd6p_L1XXOVeV36g0pdJdbtltbPF/view?usp=sharing from slide 39]  || [https://drive.google.com/file/d/16wjIGqbS5UvEUZCxuUfGROUxk2RlLqZl/view?usp=sharing problem list 13] &lt;br /&gt;
|-&lt;br /&gt;
 || 19.03 || Optional: problems that are FPT on graphs with small treewidth.(No recording, sorry.) || [https://drive.google.com/file/d/1mYkshv6q-c_5nY5qfHgosKxBd1zDDvGK/view?usp=sharing problem list 14]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Seminars (2025) !! Recording link&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 4 || [https://rutube.ru/video/private/6f4f908ef52b8af8e5bace950d8a9c0c/?p=5GnphSR3t1Jf4a9Mpqg2Zw link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 5 || Part I: [https://rutube.ru/video/private/992b26e2a8e6c95c662d8d246c7f3e0d/?p=uYcEmJungpW_YPkyLlGMOA link] &amp;lt;br&amp;gt; Part II: [https://rutube.ru/video/private/9d17a54647262d3c63187aad06fab0b8/?p=8WfJJBBJUYFfE9tQkBJ1MA link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 6 || [https://rutube.ru/video/private/6aa2f287bc39727ca82f4c713d2cc463/?p=2s6opSEa5_CjGYmJI3sOLg link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 7 || [https://rutube.ru/video/private/88af4a5c6eb2699db4475dbcf88884b7/?p=k_1vuYG_fWnOAQld9-0aCQ link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 8 || [https://rutube.ru/video/private/8978247dc6dcaaa8ef0e04ac3f4333af/?p=EGFH7-YuCIEiH2BYyKUqrg link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 9 || [https://rutube.ru/video/private/2bfd76c0422f371bc506328c35c9e670/?p=3TXJi4AYqVMD1Idt8HyFmg link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 10 || [https://rutube.ru/video/private/1ab525cc4cdeef5d66b736d6bce5887b/?p=Tvxh3q1LON2Y9O_AvXck1Q link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 11 || [https://rutube.ru/video/private/5536256c687688c3d824a0bd6daba00e/?p=0Vn3ddYFyVunqH09vaiU-A link]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL8EKo81hBCTGfNPpZlIe7USiEPpZGYDte Recordings last year]&lt;br /&gt;
&lt;br /&gt;
= Exam =&lt;br /&gt;
&lt;br /&gt;
5 or 6 questions with the same difficulty as the homework questions. You have 3 hours time. &lt;br /&gt;
&lt;br /&gt;
Each year, 1 of the questions is to prove that some problem is NP-complete. Do not forget to say why the problem is in NP. &lt;br /&gt;
&lt;br /&gt;
Copies of Sipser&#039;s book, Arora&amp;amp;Barak, Mertens&amp;amp;Moore, will be available. (I you have these books or printed parts of them, please bring it.) Also, personal handwritten notes are allowed, but nothing else.  [https://www.dropbox.com/s/37gdsbv2it8omnm/tc-sample-exam.pdf?dl=0 Sample exam]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Project (for PI students) =&lt;br /&gt;
&lt;br /&gt;
During the 3rd module Januari till March 2024 there are projects where you need to implement algorithms from parameterized complexity. (For example, for the vertex cover algorithm and disjoint paths problems.) A grader will check whether your algorithm reaches certain time limits. &lt;br /&gt;
&lt;br /&gt;
There are 3 tasks: 2 of them about branching and kernelization, 1 task about linear programming bounds. See the table with lectures. The tasks have equal weight for the grade. &lt;br /&gt;
&lt;br /&gt;
Deadline March 31st, 23h59. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Additional reading = &lt;br /&gt;
&lt;br /&gt;
Recall that the most important book for our course is &#039;&#039;Sipser, Introduction to the theory of computation&#039;&#039; 3rd edition, 2013, chapters 3, 4, 7–9. This book is intended for Bachelor students. &lt;br /&gt;
&lt;br /&gt;
The following book is popular with students theoretical computer science, because it contains most materials of our course in a concise way. Moreover, it presents many important advanced topics. I find the style of some proofs rather technical, but I like the topics in this book. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;S. Arora and B. Barak, Computational Complexity: A Modern Approach, 2009&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The course materials can also be found in various chapters of the following massive book (700 pages). It starts at beginning bachelor level and ends at an advanced master level. It is written in a pleasant style with excellent examples.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;C. Moore and S. Mertens, The nature of computation, 2011.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This book gives an introduction to important recent research directions in computational hardness. It also studies specific topics (games and planar problems) in huge detail.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;E. Demaine, W Gasarch, Haijaghayi, Computational intractability: a guide to lower bounds, 2023&#039;&#039; [https://hardness.mit.edu/ current draft]&lt;br /&gt;
&lt;br /&gt;
This is an advanced textbook with background on parameterized algorithms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;M. Cygan, F. Fomin and 6 others, Parameterized algorithms, 2016&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Grading =&lt;br /&gt;
&lt;br /&gt;
For AMI students:&lt;br /&gt;
&lt;br /&gt;
 Final score = 0.35 * [score homework] + 0.35 * [score colloquium] + 0.3 * [score exam] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For PI students (the course is called &amp;quot;computational complexity&amp;quot; and takes 3 modules). There are 2 scores for this course. The first one, given in December is calculated by the above formula (but probably it does not mean anything, I will ask about it). The second score is given below, and it is the one that will be in the diploma. It includes a programming project. The assignment and grader, will be set up by the end of Februari, the deadline is the end of March.  &lt;br /&gt;
&lt;br /&gt;
 Final score = 0.3 * [score homework] + 0.3 * [score colloquium] + 0.2 * [score exam] + 0.2 * [score project] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some homework assignments contain extra problems. Each solution of an extra problem will give 0.5 extra points on the final exam (which is graded out of 10). There will be around 10 extra problems. Rounding is applied only when the final score is transferred to the official grade. Arithmetic rounding is used. Autogrades. If only 6/10 for the exam is needed to get a final score of 10/10, then this will be given automatically. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Office hours =&lt;br /&gt;
&lt;br /&gt;
Bruno Bauwens: Tuesday 15h -- 21h. Friday 15h -- 18h. &lt;br /&gt;
&lt;br /&gt;
Subin Pulari: Please contact via telegram or mail [mailto:spulari@hse.ru spulari@hse.ru]&lt;/div&gt;</summary>
		<author><name>Spulari</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2025&amp;diff=93946</id>
		<title>Theory of computation 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2025&amp;diff=93946"/>
		<updated>2025-11-28T16:21:21Z</updated>

		<summary type="html">&lt;p&gt;Spulari: /* Course Materials */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Classes =&lt;br /&gt;
&lt;br /&gt;
Lectures:  Friday 13h00 - 14h20 in Pokrovkaya, see [https://docs.google.com/spreadsheets/d/1EAbqb8wf48evEi5Bf2M0xmZXQSrpd_FJbsnevXDQxaQ/edit?gid=614347250#gid=614347250 here] for the room, and in [https://us02web.zoom.us/j/82300259484?pwd=NWxXekxBeE5yMm9UTmwvLzNNNGlnUT09 zoom] by [https://www.hse.ru/en/org/persons/160550073 Bruno Bauwens]. Starting 19.09.&lt;br /&gt;
&lt;br /&gt;
Seminars: Friday 14h40 - 16h00 in Pokrovkaya, see [https://docs.google.com/spreadsheets/d/1EAbqb8wf48evEi5Bf2M0xmZXQSrpd_FJbsnevXDQxaQ/edit?gid=614347250#gid=614347250 here] for the room, and in [https://us06web.zoom.us/j/84205097860?pwd=PQpzn1Oqf9G2fjO2vwcUVsMdCnRUuc.1 zoom] by Prof. Subin Pulari&lt;br /&gt;
&lt;br /&gt;
Telegram group for announcements and discussions [https://t.me/+7BOrITRebjk5MTc0 invite link.] The course is similar to [http://wiki.cs.hse.ru/Theory_of_computation_2024 last year&#039;s one].&lt;br /&gt;
&lt;br /&gt;
For students programming engineering this course is called &amp;quot;computational complexity theory&amp;quot; and the course has an extra part in the 3rd module. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Homeworks =&lt;br /&gt;
&lt;br /&gt;
Deadlines: every 2 weeks, before the lecture. Submit in pdf or fotos of handwritten text in [https://classroom.google.com/c/ODEwMjk4NDQxMTU1?cjc=n5dttaev google class]. &lt;br /&gt;
&lt;br /&gt;
Tasks are in the problem lists from the seminar. Deadlines: problem lists 1 and 2: at the start of 3rd lecture, lists 3 and 4 at the start of the 5th lecture, etc.&lt;br /&gt;
&lt;br /&gt;
Late policy: 1 homework can be submitted at most 24h late without explanations.&lt;br /&gt;
&lt;br /&gt;
All homework scores are available in the following Google Sheet: [https://docs.google.com/spreadsheets/d/1QvyOh7kk7W-IhgMNcyFJ5NUNj9Tw-9z12ora_ZBW8eA/edit?usp=sharing link]&lt;br /&gt;
&lt;br /&gt;
= Course Materials =&lt;br /&gt;
&lt;br /&gt;
The main reference is Sipser&#039;s book &amp;quot;Introduction to the theory of computation&amp;quot;, chapters 3, 4, 7–9.&lt;br /&gt;
&lt;br /&gt;
If you need some background in math, consider&lt;br /&gt;
&amp;lt;!-- [http://www.cs.elte.hu/~lovasz/dmbook.ps Lecture notes: Discrete Mathematics], L. Lovasz, K. Vesztergombi and --&amp;gt;&lt;br /&gt;
[http://rubtsov.su/public/DM-HSE-Draft.pdf Лекции по дискретной математике].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Rec !! Summary !! Problem list&lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=-VIr385nKVk 19.09] || Turing machines, multitape Turing machines, connection between them. Universal Turing machine. Examples. Time and space complexity. Complexity classes P, PSPACE, EXP. (Recording from previous year.) [https://drive.google.com/file/d/1Xby_fNyeVwZtVY6yfVJLBYNCaZVbOP61/view?usp=drive_link Notes]|| [https://drive.google.com/file/d/1bf3hhE82uw5D0bQGajXHl1-FhhyG-XnY/view?usp=drive_link problem list 1]&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|| [https://www.youtube.com/watch?v=tnq5BkcGfk0 26.09] || Undecidability of the Halting problem. Time and space hierarchy theorems. See notes above. || [https://drive.google.com/file/d/1iyba3kM98oJCz5yvKmWRb0oOpIAhFPef/view?usp=drive_link problem list 2] &lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=VR_A62kFXH8 03.10] || Complexity class NP. Examples. Non-deterministic machines and another definition of NP. Polynomial reductions. NP-hardness and NP-completeness. [https://drive.google.com/file/d/1chzfYehNELzNkDMDjmRo9gfIXv_9FYeG/view?usp=drive_link Notes], [https://drive.google.com/file/d/1leJcc3UqC-WIGGN3G7Zm2Y0jt84q13o1/view?usp=drive_link tex]. || [https://drive.google.com/file/d/17AF1Bj5I_S0XzwXkM4IeOugxX2Kr3i2u/view?usp=drive_link problem list 3]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://rutube.ru/video/585774c956d226dde80929ca0b39f13e 10.10] ||  NP-completenes of independent-set, NAE-3SAT, 3colorability, subsetsum, knapsack problem. Notes above.  || [https://drive.google.com/file/d/1dVUT2KZ9hAyGBZITDJh3xtfLb992aX9L/view?usp=drive_link problem list 4] upd 10.10&lt;br /&gt;
|-&lt;br /&gt;
 || [https://rutube.ru/video/53f86ac57c92d812edb493b280e31a07 17.10] || Circuits 1: examples and all functions have exponential circuits. Classes P/poly, AC^i and NC^i. Some functions have exponential circuit complexity. &amp;lt;!-- NC1 = Boolean formulas of polynomial size. Addition in AC0. Multiplication is in NC1. P is in P/poly. 3SAT is NP-complete.--&amp;gt;  [https://drive.google.com/file/d/1Cqr4A6ohPLIaAVocG3jE6GYsNz4XgA4r/view?usp=drive_link Notes.pdf] upd 28.10, [https://drive.google.com/file/d/1rzL0-_fKq9ZbSu_zjTUUiM_cQNUGUX05/view?usp=drive_link tex].  || [https://drive.google.com/file/d/1uB12iMZptqzcoLpF6hZT-8X1Xh9-1nm4/view?usp=drive_link problem list 5]&lt;br /&gt;
|-&lt;br /&gt;
 || 23.10 || Circuits 2: NC0 = functions that depend on a constant number of inputs. P is in P/poly. 3SAT is NP-complete.  Seminar: addition in AC0. Multiplication is in NC1. Notes above. Last year&#039;s [https://www.youtube.com/watch?v=Jqy89FPbFj4  video]. || see list 5&lt;br /&gt;
|-&lt;br /&gt;
 || [https://drive.google.com/file/d/19vsMFBQfun7mf9URNF-F2R9JWbPlNN81/view?usp=drive_link 24.10] || Directed Reachability is in SPACE(log^2 n). TQBF problem, its PSPACE-completeness. PSPACE = NPSPACE. NSPACE(s(n)) is in SPACE(s(n)^2) for space constructible s.|| [https://drive.google.com/file/d/1j9XCMFYwsqcqIzGgKGSgDpJvmtz4-Wx8/view?usp=drive_link problem list 6] upd 28.10&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/W_uZuQXm53c 07.11] || Oracle computation definitions. There exists an oracle &#039;&#039;A&#039;&#039; for which P&amp;lt;sup&amp;gt;&#039;&#039;A&#039;&#039;&amp;lt;/sup&amp;gt; = NP&amp;lt;sup&amp;gt;&#039;&#039;A&#039;&#039;&amp;lt;/sup&amp;gt;. There is an oracle B such that P&amp;lt;sup&amp;gt;&#039;&#039;B&#039;&#039;&amp;lt;/sup&amp;gt; is not equal to NP&amp;lt;sup&amp;gt;&#039;&#039;B&#039;&#039;&amp;lt;/sup&amp;gt;. || [https://drive.google.com/file/d/1v8dh4EAeAtq1et4ya_Q1VBO77_m3a6WS/view?usp=drive_link problem list 7]&lt;br /&gt;
|- &lt;br /&gt;
|| [https://youtube.com/live/ALO6r52wuIU 14.11] ||  Probabilistic computation. Probabilistic machines, the class BPP, invariance of the definition BPP for different thresholds, RP, coRP, PP, ZPP. BPP is in P/poly. Most of it is also [https://www.youtube.com/watch?v=YSMgVbOqB-8&amp;amp;list=PLm3J0oaFux3YL5vLXpzOyJiLtqLp6dCW2&amp;amp;index=23 here] and [https://www.cs.cmu.edu/afs/cs/academic/class/15859-f04/www/scribes/lec2.pdf scribe1] [https://lucatrevisan.github.io/cs278-04/notes/lecture08.pdf scribe2] || [https://drive.google.com/file/d/1pMn1rzOKjnmjvW4X1WJA-jauQv08YFIh/view?usp=drive_link problem list 8] upd 20.11&lt;br /&gt;
|-&lt;br /&gt;
 || [https://rutube.ru/video/private/82810d471de9883b9215d0c9a3235c44/?p=8fTMLwkOD-WvpiQM1ACE0A 21.11] || Approximation algorithms. Definition c-approximation algorithm. 2-approximation for vertex cover and greedy vertex cover is not optimal. (ln n + 1)-approximation for set cover. PTAS for the makespan problem. Based on [https://www.youtube.com/watch?v=MEz1J9wY2iM&amp;amp;pp=ygUYYXBwcm94aW1hdGlvbiBhbGdvcml0aG1z MIT lecture].|| &lt;br /&gt;
[https://drive.google.com/file/d/1TPC6D_81PrklhjlTfrfnEzE4_5vm3vPS/view?usp=drive_link problem list 9]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/r9rP3ZojeqY 28.11] || Parameterized complexity: The classes FPT and XP. Kernelization. Examples for vertex cover.  [https://drive.google.com/file/d/1W9SU24HW0r5QhugzmrghpkzJUFuC8whq/view?usp=sharing Notes.] || [https://drive.google.com/file/d/1PpRK72BtyKYR0KVi03HDCy7HXvWpzcL6/view?usp=sharing problem list 10] &amp;lt;!-- [https://www.dropbox.com/scl/fi/x5gwdae4ny4u3zixoy4pw/student_vc_branching.ipynb?rlkey=5oowq1u3jhy490s84ogojg1s7&amp;amp;dl=0 programming task.] --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/E4aNlvbYoLQ 05.12] || Parameterized complexity: W-hierarchy, hardness from the exponential time hypothesis. [https://drive.google.com/file/d/1f-085Gr7E01HepUR-brGJDet-fXJzUwb/view?usp=sharing presentation] [https://drive.google.com/file/d/1OIw7h31N2tt-npC0NrvVgNhYGw_HlJa_/view?usp=sharing Notes] || [https://drive.google.com/file/d/1xhUYMsj0iV2TMZfR8FtkxWUNlcCjdS-N/view?usp=sharing problem list 11] &lt;br /&gt;
|- &lt;br /&gt;
 || 12.12 || &#039;&#039;Colloquium.&#039;&#039; Also on 19.12. [https://drive.google.com/file/d/1no8CbHKJluGRx7FROpSS7BqXdjOVgdT1/view?usp=sharing Rules and questions.] (Same as last year.) Reserve a [https://docs.google.com/spreadsheets/d/1_vO5Q0wGkM0kU1OHNiP8lz24M4i-toLC2AmQg7tuRVE/edit?usp=sharing slot]. || [https://www.dropbox.com/s/37gdsbv2it8omnm/tc-sample-exam.pdf?dl=0 Sample exam] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Artem Parfenov&#039;s [https://drive.google.com/file/d/16_ZP0X9wwza1RsrXZZGQsx5Igwk_vY9r/view?usp=sharing lecture summaries] [https://drive.google.com/drive/folders/1XsNL2B69akd3A9qaOEgC09NiZXLP8Wbz?usp=drive_link source] (Disclaimer: I did not check them):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Date !! Software engineering: parameterized complexity, FPT algorithms !! Problem list&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/xDaTpuVF0Es 05.03] || Recap from last lecture. More examples of kernels: linear programming kernel for vertex cover problem.  [https://www.dropbox.com/scl/fi/x5gwdae4ny4u3zixoy4pw/student_vc_branching.ipynb?rlkey=5oowq1u3jhy490s84ogojg1s7&amp;amp;dl=0 programming task.] [https://www.dropbox.com/s/zzzaulpmzql7x7u/parameterizedComplexity.pdf?dl=0 presentation].|| [https://drive.google.com/file/d/1sXA5F4gUZ-KvigQspz0ScVLOA38ZcxHb/view?usp=sharing problem list 12] &lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/TBX8sWx7nO0 12.03] || Linear programming kernel for VC, color coding, dynamic programming. Colorcoding [https://drive.google.com/file/d/1RMoIpd6p_L1XXOVeV36g0pdJdbtltbPF/view?usp=sharing from slide 39]  || [https://drive.google.com/file/d/16wjIGqbS5UvEUZCxuUfGROUxk2RlLqZl/view?usp=sharing problem list 13] &lt;br /&gt;
|-&lt;br /&gt;
 || 19.03 || Optional: problems that are FPT on graphs with small treewidth.(No recording, sorry.) || [https://drive.google.com/file/d/1mYkshv6q-c_5nY5qfHgosKxBd1zDDvGK/view?usp=sharing problem list 14]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Seminars (2025) !! Recording link&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 4 || [https://rutube.ru/video/private/6f4f908ef52b8af8e5bace950d8a9c0c/?p=5GnphSR3t1Jf4a9Mpqg2Zw link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 5 || Part I: [https://rutube.ru/video/private/992b26e2a8e6c95c662d8d246c7f3e0d/?p=uYcEmJungpW_YPkyLlGMOA link] &amp;lt;br&amp;gt; Part II: [https://rutube.ru/video/private/9d17a54647262d3c63187aad06fab0b8/?p=8WfJJBBJUYFfE9tQkBJ1MA link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 6 || [https://rutube.ru/video/private/6aa2f287bc39727ca82f4c713d2cc463/?p=2s6opSEa5_CjGYmJI3sOLg link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 7 || [https://rutube.ru/video/private/88af4a5c6eb2699db4475dbcf88884b7/?p=k_1vuYG_fWnOAQld9-0aCQ link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 8 || [https://rutube.ru/video/private/8978247dc6dcaaa8ef0e04ac3f4333af/?p=EGFH7-YuCIEiH2BYyKUqrg link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 9 || [https://rutube.ru/video/private/2bfd76c0422f371bc506328c35c9e670/?p=3TXJi4AYqVMD1Idt8HyFmg link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 10 || [https://rutube.ru/video/private/1ab525cc4cdeef5d66b736d6bce5887b/?p=Tvxh3q1LON2Y9O_AvXck1Q link]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL8EKo81hBCTGfNPpZlIe7USiEPpZGYDte Recordings last year]&lt;br /&gt;
&lt;br /&gt;
= Exam =&lt;br /&gt;
&lt;br /&gt;
5 or 6 questions with the same difficulty as the homework questions. You have 3 hours time. &lt;br /&gt;
&lt;br /&gt;
Each year, 1 of the questions is to prove that some problem is NP-complete. Do not forget to say why the problem is in NP. &lt;br /&gt;
&lt;br /&gt;
Copies of Sipser&#039;s book, Arora&amp;amp;Barak, Mertens&amp;amp;Moore, will be available. (I you have these books or printed parts of them, please bring it.) Also, personal handwritten notes are allowed, but nothing else.  [https://www.dropbox.com/s/37gdsbv2it8omnm/tc-sample-exam.pdf?dl=0 Sample exam]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Project (for PI students) =&lt;br /&gt;
&lt;br /&gt;
During the 3rd module Januari till March 2024 there are projects where you need to implement algorithms from parameterized complexity. (For example, for the vertex cover algorithm and disjoint paths problems.) A grader will check whether your algorithm reaches certain time limits. &lt;br /&gt;
&lt;br /&gt;
There are 3 tasks: 2 of them about branching and kernelization, 1 task about linear programming bounds. See the table with lectures. The tasks have equal weight for the grade. &lt;br /&gt;
&lt;br /&gt;
Deadline March 31st, 23h59. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Additional reading = &lt;br /&gt;
&lt;br /&gt;
Recall that the most important book for our course is &#039;&#039;Sipser, Introduction to the theory of computation&#039;&#039; 3rd edition, 2013, chapters 3, 4, 7–9. This book is intended for Bachelor students. &lt;br /&gt;
&lt;br /&gt;
The following book is popular with students theoretical computer science, because it contains most materials of our course in a concise way. Moreover, it presents many important advanced topics. I find the style of some proofs rather technical, but I like the topics in this book. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;S. Arora and B. Barak, Computational Complexity: A Modern Approach, 2009&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The course materials can also be found in various chapters of the following massive book (700 pages). It starts at beginning bachelor level and ends at an advanced master level. It is written in a pleasant style with excellent examples.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;C. Moore and S. Mertens, The nature of computation, 2011.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This book gives an introduction to important recent research directions in computational hardness. It also studies specific topics (games and planar problems) in huge detail.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;E. Demaine, W Gasarch, Haijaghayi, Computational intractability: a guide to lower bounds, 2023&#039;&#039; [https://hardness.mit.edu/ current draft]&lt;br /&gt;
&lt;br /&gt;
This is an advanced textbook with background on parameterized algorithms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;M. Cygan, F. Fomin and 6 others, Parameterized algorithms, 2016&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Grading =&lt;br /&gt;
&lt;br /&gt;
For AMI students:&lt;br /&gt;
&lt;br /&gt;
 Final score = 0.35 * [score homework] + 0.35 * [score colloquium] + 0.3 * [score exam] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For PI students (the course is called &amp;quot;computational complexity&amp;quot; and takes 3 modules). There are 2 scores for this course. The first one, given in December is calculated by the above formula (but probably it does not mean anything, I will ask about it). The second score is given below, and it is the one that will be in the diploma. It includes a programming project. The assignment and grader, will be set up by the end of Februari, the deadline is the end of March.  &lt;br /&gt;
&lt;br /&gt;
 Final score = 0.3 * [score homework] + 0.3 * [score colloquium] + 0.2 * [score exam] + 0.2 * [score project] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some homework assignments contain extra problems. Each solution of an extra problem will give 0.5 extra points on the final exam (which is graded out of 10). There will be around 10 extra problems. Rounding is applied only when the final score is transferred to the official grade. Arithmetic rounding is used. Autogrades. If only 6/10 for the exam is needed to get a final score of 10/10, then this will be given automatically. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Office hours =&lt;br /&gt;
&lt;br /&gt;
Bruno Bauwens: Tuesday 15h -- 21h. Friday 15h -- 18h. &lt;br /&gt;
&lt;br /&gt;
Subin Pulari: Please contact via telegram or mail [mailto:spulari@hse.ru spulari@hse.ru]&lt;/div&gt;</summary>
		<author><name>Spulari</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2025&amp;diff=93811</id>
		<title>Theory of computation 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2025&amp;diff=93811"/>
		<updated>2025-11-21T19:03:12Z</updated>

		<summary type="html">&lt;p&gt;Spulari: /* Course Materials */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Classes =&lt;br /&gt;
&lt;br /&gt;
Lectures:  Friday 13h00 - 14h20 in Pokrovkaya, see [https://docs.google.com/spreadsheets/d/1EAbqb8wf48evEi5Bf2M0xmZXQSrpd_FJbsnevXDQxaQ/edit?gid=614347250#gid=614347250 here] for the room, and in [https://us02web.zoom.us/j/82300259484?pwd=NWxXekxBeE5yMm9UTmwvLzNNNGlnUT09 zoom] by [https://www.hse.ru/en/org/persons/160550073 Bruno Bauwens]. Starting 19.09.&lt;br /&gt;
&lt;br /&gt;
Seminars: Friday 14h40 - 16h00 in Pokrovkaya, see [https://docs.google.com/spreadsheets/d/1EAbqb8wf48evEi5Bf2M0xmZXQSrpd_FJbsnevXDQxaQ/edit?gid=614347250#gid=614347250 here] for the room, and in [https://us06web.zoom.us/j/84205097860?pwd=PQpzn1Oqf9G2fjO2vwcUVsMdCnRUuc.1 zoom] by Prof. Subin Pulari&lt;br /&gt;
&lt;br /&gt;
Telegram group for announcements and discussions [https://t.me/+7BOrITRebjk5MTc0 invite link.] The course is similar to [http://wiki.cs.hse.ru/Theory_of_computation_2024 last year&#039;s one].&lt;br /&gt;
&lt;br /&gt;
For students programming engineering this course is called &amp;quot;computational complexity theory&amp;quot; and the course has an extra part in the 3rd module. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Homeworks =&lt;br /&gt;
&lt;br /&gt;
Deadlines: every 2 weeks, before the lecture. Submit in pdf or fotos of handwritten text in [https://classroom.google.com/c/ODEwMjk4NDQxMTU1?cjc=n5dttaev google class]. &lt;br /&gt;
&lt;br /&gt;
Tasks are in the problem lists from the seminar. Deadlines: problem lists 1 and 2: at the start of 3rd lecture, lists 3 and 4 at the start of the 5th lecture, etc.&lt;br /&gt;
&lt;br /&gt;
Late policy: 1 homework can be submitted at most 24h late without explanations.&lt;br /&gt;
&lt;br /&gt;
All homework scores are available in the following Google Sheet: [https://docs.google.com/spreadsheets/d/1QvyOh7kk7W-IhgMNcyFJ5NUNj9Tw-9z12ora_ZBW8eA/edit?usp=sharing link]&lt;br /&gt;
&lt;br /&gt;
= Course Materials =&lt;br /&gt;
&lt;br /&gt;
The main reference is Sipser&#039;s book &amp;quot;Introduction to the theory of computation&amp;quot;, chapters 3, 4, 7–9.&lt;br /&gt;
&lt;br /&gt;
If you need some background in math, consider&lt;br /&gt;
&amp;lt;!-- [http://www.cs.elte.hu/~lovasz/dmbook.ps Lecture notes: Discrete Mathematics], L. Lovasz, K. Vesztergombi and --&amp;gt;&lt;br /&gt;
[http://rubtsov.su/public/DM-HSE-Draft.pdf Лекции по дискретной математике].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Rec !! Summary !! Problem list&lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=-VIr385nKVk 19.09] || Turing machines, multitape Turing machines, connection between them. Universal Turing machine. Examples. Time and space complexity. Complexity classes P, PSPACE, EXP. (Recording from previous year.) [https://drive.google.com/file/d/1Xby_fNyeVwZtVY6yfVJLBYNCaZVbOP61/view?usp=drive_link Notes]|| [https://drive.google.com/file/d/1bf3hhE82uw5D0bQGajXHl1-FhhyG-XnY/view?usp=drive_link problem list 1]&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|| [https://www.youtube.com/watch?v=tnq5BkcGfk0 26.09] || Undecidability of the Halting problem. Time and space hierarchy theorems. See notes above. || [https://drive.google.com/file/d/1iyba3kM98oJCz5yvKmWRb0oOpIAhFPef/view?usp=drive_link problem list 2] &lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=VR_A62kFXH8 03.10] || Complexity class NP. Examples. Non-deterministic machines and another definition of NP. Polynomial reductions. NP-hardness and NP-completeness. [https://drive.google.com/file/d/1chzfYehNELzNkDMDjmRo9gfIXv_9FYeG/view?usp=drive_link Notes], [https://drive.google.com/file/d/1leJcc3UqC-WIGGN3G7Zm2Y0jt84q13o1/view?usp=drive_link tex]. || [https://drive.google.com/file/d/17AF1Bj5I_S0XzwXkM4IeOugxX2Kr3i2u/view?usp=drive_link problem list 3]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://rutube.ru/video/585774c956d226dde80929ca0b39f13e 10.10] ||  NP-completenes of independent-set, NAE-3SAT, 3colorability, subsetsum, knapsack problem. Notes above.  || [https://drive.google.com/file/d/1dVUT2KZ9hAyGBZITDJh3xtfLb992aX9L/view?usp=drive_link problem list 4] upd 10.10&lt;br /&gt;
|-&lt;br /&gt;
 || [https://rutube.ru/video/53f86ac57c92d812edb493b280e31a07 17.10] || Circuits 1: examples and all functions have exponential circuits. Classes P/poly, AC^i and NC^i. Some functions have exponential circuit complexity. &amp;lt;!-- NC1 = Boolean formulas of polynomial size. Addition in AC0. Multiplication is in NC1. P is in P/poly. 3SAT is NP-complete.--&amp;gt;  [https://drive.google.com/file/d/1Cqr4A6ohPLIaAVocG3jE6GYsNz4XgA4r/view?usp=drive_link Notes.pdf] upd 28.10, [https://drive.google.com/file/d/1rzL0-_fKq9ZbSu_zjTUUiM_cQNUGUX05/view?usp=drive_link tex].  || [https://drive.google.com/file/d/1uB12iMZptqzcoLpF6hZT-8X1Xh9-1nm4/view?usp=drive_link problem list 5]&lt;br /&gt;
|-&lt;br /&gt;
 || 23.10 || Circuits 2: NC0 = functions that depend on a constant number of inputs. P is in P/poly. 3SAT is NP-complete.  Seminar: addition in AC0. Multiplication is in NC1. Notes above. Last year&#039;s [https://www.youtube.com/watch?v=Jqy89FPbFj4  video]. || see list 5&lt;br /&gt;
|-&lt;br /&gt;
 || [https://drive.google.com/file/d/19vsMFBQfun7mf9URNF-F2R9JWbPlNN81/view?usp=drive_link 24.10] || Directed Reachability is in SPACE(log^2 n). TQBF problem, its PSPACE-completeness. PSPACE = NPSPACE. NSPACE(s(n)) is in SPACE(s(n)^2) for space constructible s.|| [https://drive.google.com/file/d/1j9XCMFYwsqcqIzGgKGSgDpJvmtz4-Wx8/view?usp=drive_link problem list 6] upd 28.10&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/W_uZuQXm53c 07.11] || Oracle computation definitions. There exists an oracle &#039;&#039;A&#039;&#039; for which P&amp;lt;sup&amp;gt;&#039;&#039;A&#039;&#039;&amp;lt;/sup&amp;gt; = NP&amp;lt;sup&amp;gt;&#039;&#039;A&#039;&#039;&amp;lt;/sup&amp;gt;. There is an oracle B such that P&amp;lt;sup&amp;gt;&#039;&#039;B&#039;&#039;&amp;lt;/sup&amp;gt; is not equal to NP&amp;lt;sup&amp;gt;&#039;&#039;B&#039;&#039;&amp;lt;/sup&amp;gt;. || [https://drive.google.com/file/d/1v8dh4EAeAtq1et4ya_Q1VBO77_m3a6WS/view?usp=drive_link problem list 7]&lt;br /&gt;
|- &lt;br /&gt;
|| [https://youtube.com/live/ALO6r52wuIU 14.11] ||  Probabilistic computation. Probabilistic machines, the class BPP, invariance of the definition BPP for different thresholds, RP, coRP, PP, ZPP. BPP is in P/poly. Most of it is also [https://www.youtube.com/watch?v=YSMgVbOqB-8&amp;amp;list=PLm3J0oaFux3YL5vLXpzOyJiLtqLp6dCW2&amp;amp;index=23 here] and [https://www.cs.cmu.edu/afs/cs/academic/class/15859-f04/www/scribes/lec2.pdf scribe1] [https://lucatrevisan.github.io/cs278-04/notes/lecture08.pdf scribe2] || [https://drive.google.com/file/d/1pMn1rzOKjnmjvW4X1WJA-jauQv08YFIh/view?usp=drive_link problem list 8] upd 20.11&lt;br /&gt;
|-&lt;br /&gt;
 || [https://rutube.ru/video/private/82810d471de9883b9215d0c9a3235c44/?p=8fTMLwkOD-WvpiQM1ACE0A 21.11] || Approximation algorithms. Definition c-approximation algorithm. 2-approximation for vertex cover and greedy vertex cover is not optimal. (ln n + 1)-approximation for set cover. PTAS for the makespan problem. Based on [https://www.youtube.com/watch?v=MEz1J9wY2iM&amp;amp;pp=ygUYYXBwcm94aW1hdGlvbiBhbGdvcml0aG1z MIT lecture].|| &lt;br /&gt;
[https://drive.google.com/file/d/1TPC6D_81PrklhjlTfrfnEzE4_5vm3vPS/view?usp=drive_link problem list 9]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/r9rP3ZojeqY 28.11] || Parameterized complexity: The classes FPT and XP. Kernelization. Examples for vertex cover.  [https://drive.google.com/file/d/1W9SU24HW0r5QhugzmrghpkzJUFuC8whq/view?usp=sharing Notes.] || [https://drive.google.com/file/d/1PpRK72BtyKYR0KVi03HDCy7HXvWpzcL6/view?usp=sharing problem list 10] &amp;lt;!-- [https://www.dropbox.com/scl/fi/x5gwdae4ny4u3zixoy4pw/student_vc_branching.ipynb?rlkey=5oowq1u3jhy490s84ogojg1s7&amp;amp;dl=0 programming task.] --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/E4aNlvbYoLQ 05.12] || Parameterized complexity: W-hierarchy, hardness from the exponential time hypothesis. [https://drive.google.com/file/d/1f-085Gr7E01HepUR-brGJDet-fXJzUwb/view?usp=sharing presentation] [https://drive.google.com/file/d/1OIw7h31N2tt-npC0NrvVgNhYGw_HlJa_/view?usp=sharing Notes] || [https://drive.google.com/file/d/1xhUYMsj0iV2TMZfR8FtkxWUNlcCjdS-N/view?usp=sharing problem list 11] &lt;br /&gt;
|- &lt;br /&gt;
 || 12.12 || &#039;&#039;Colloquium.&#039;&#039; Also on 19.12. [https://drive.google.com/file/d/1no8CbHKJluGRx7FROpSS7BqXdjOVgdT1/view?usp=sharing Rules and questions.] (Same as last year.) Reserve a [https://docs.google.com/spreadsheets/d/1_vO5Q0wGkM0kU1OHNiP8lz24M4i-toLC2AmQg7tuRVE/edit?usp=sharing slot]. || [https://www.dropbox.com/s/37gdsbv2it8omnm/tc-sample-exam.pdf?dl=0 Sample exam] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Artem Parfenov&#039;s [https://drive.google.com/file/d/16_ZP0X9wwza1RsrXZZGQsx5Igwk_vY9r/view?usp=sharing lecture summaries] [https://drive.google.com/drive/folders/1XsNL2B69akd3A9qaOEgC09NiZXLP8Wbz?usp=drive_link source] (Disclaimer: I did not check them):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Date !! Software engineering: parameterized complexity, FPT algorithms !! Problem list&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/xDaTpuVF0Es 05.03] || Recap from last lecture. More examples of kernels: linear programming kernel for vertex cover problem.  [https://www.dropbox.com/scl/fi/x5gwdae4ny4u3zixoy4pw/student_vc_branching.ipynb?rlkey=5oowq1u3jhy490s84ogojg1s7&amp;amp;dl=0 programming task.] [https://www.dropbox.com/s/zzzaulpmzql7x7u/parameterizedComplexity.pdf?dl=0 presentation].|| [https://drive.google.com/file/d/1sXA5F4gUZ-KvigQspz0ScVLOA38ZcxHb/view?usp=sharing problem list 12] &lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/TBX8sWx7nO0 12.03] || Linear programming kernel for VC, color coding, dynamic programming. Colorcoding [https://drive.google.com/file/d/1RMoIpd6p_L1XXOVeV36g0pdJdbtltbPF/view?usp=sharing from slide 39]  || [https://drive.google.com/file/d/16wjIGqbS5UvEUZCxuUfGROUxk2RlLqZl/view?usp=sharing problem list 13] &lt;br /&gt;
|-&lt;br /&gt;
 || 19.03 || Optional: problems that are FPT on graphs with small treewidth.(No recording, sorry.) || [https://drive.google.com/file/d/1mYkshv6q-c_5nY5qfHgosKxBd1zDDvGK/view?usp=sharing problem list 14]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Seminars (2025) !! Recording link&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 4 || [https://rutube.ru/video/private/6f4f908ef52b8af8e5bace950d8a9c0c/?p=5GnphSR3t1Jf4a9Mpqg2Zw link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 5 || Part I: [https://rutube.ru/video/private/992b26e2a8e6c95c662d8d246c7f3e0d/?p=uYcEmJungpW_YPkyLlGMOA link] &amp;lt;br&amp;gt; Part II: [https://rutube.ru/video/private/9d17a54647262d3c63187aad06fab0b8/?p=8WfJJBBJUYFfE9tQkBJ1MA link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 6 || [https://rutube.ru/video/private/6aa2f287bc39727ca82f4c713d2cc463/?p=2s6opSEa5_CjGYmJI3sOLg link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 7 || [https://rutube.ru/video/private/88af4a5c6eb2699db4475dbcf88884b7/?p=k_1vuYG_fWnOAQld9-0aCQ link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 8 || [https://rutube.ru/video/private/8978247dc6dcaaa8ef0e04ac3f4333af/?p=EGFH7-YuCIEiH2BYyKUqrg link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 9 || [https://rutube.ru/video/private/2bfd76c0422f371bc506328c35c9e670/?p=3TXJi4AYqVMD1Idt8HyFmg link]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL8EKo81hBCTGfNPpZlIe7USiEPpZGYDte Recordings last year]&lt;br /&gt;
&lt;br /&gt;
= Exam =&lt;br /&gt;
&lt;br /&gt;
5 or 6 questions with the same difficulty as the homework questions. You have 3 hours time. &lt;br /&gt;
&lt;br /&gt;
Each year, 1 of the questions is to prove that some problem is NP-complete. Do not forget to say why the problem is in NP. &lt;br /&gt;
&lt;br /&gt;
Copies of Sipser&#039;s book, Arora&amp;amp;Barak, Mertens&amp;amp;Moore, will be available. (I you have these books or printed parts of them, please bring it.) Also, personal handwritten notes are allowed, but nothing else.  [https://www.dropbox.com/s/37gdsbv2it8omnm/tc-sample-exam.pdf?dl=0 Sample exam]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Project (for PI students) =&lt;br /&gt;
&lt;br /&gt;
During the 3rd module Januari till March 2024 there are projects where you need to implement algorithms from parameterized complexity. (For example, for the vertex cover algorithm and disjoint paths problems.) A grader will check whether your algorithm reaches certain time limits. &lt;br /&gt;
&lt;br /&gt;
There are 3 tasks: 2 of them about branching and kernelization, 1 task about linear programming bounds. See the table with lectures. The tasks have equal weight for the grade. &lt;br /&gt;
&lt;br /&gt;
Deadline March 31st, 23h59. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Additional reading = &lt;br /&gt;
&lt;br /&gt;
Recall that the most important book for our course is &#039;&#039;Sipser, Introduction to the theory of computation&#039;&#039; 3rd edition, 2013, chapters 3, 4, 7–9. This book is intended for Bachelor students. &lt;br /&gt;
&lt;br /&gt;
The following book is popular with students theoretical computer science, because it contains most materials of our course in a concise way. Moreover, it presents many important advanced topics. I find the style of some proofs rather technical, but I like the topics in this book. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;S. Arora and B. Barak, Computational Complexity: A Modern Approach, 2009&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The course materials can also be found in various chapters of the following massive book (700 pages). It starts at beginning bachelor level and ends at an advanced master level. It is written in a pleasant style with excellent examples.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;C. Moore and S. Mertens, The nature of computation, 2011.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This book gives an introduction to important recent research directions in computational hardness. It also studies specific topics (games and planar problems) in huge detail.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;E. Demaine, W Gasarch, Haijaghayi, Computational intractability: a guide to lower bounds, 2023&#039;&#039; [https://hardness.mit.edu/ current draft]&lt;br /&gt;
&lt;br /&gt;
This is an advanced textbook with background on parameterized algorithms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;M. Cygan, F. Fomin and 6 others, Parameterized algorithms, 2016&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Grading =&lt;br /&gt;
&lt;br /&gt;
For AMI students:&lt;br /&gt;
&lt;br /&gt;
 Final score = 0.35 * [score homework] + 0.35 * [score colloquium] + 0.3 * [score exam] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For PI students (the course is called &amp;quot;computational complexity&amp;quot; and takes 3 modules). There are 2 scores for this course. The first one, given in December is calculated by the above formula (but probably it does not mean anything, I will ask about it). The second score is given below, and it is the one that will be in the diploma. It includes a programming project. The assignment and grader, will be set up by the end of Februari, the deadline is the end of March.  &lt;br /&gt;
&lt;br /&gt;
 Final score = 0.3 * [score homework] + 0.3 * [score colloquium] + 0.2 * [score exam] + 0.2 * [score project] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some homework assignments contain extra problems. Each solution of an extra problem will give 0.5 extra points on the final exam (which is graded out of 10). There will be around 10 extra problems. Rounding is applied only when the final score is transferred to the official grade. Arithmetic rounding is used. Autogrades. If only 6/10 for the exam is needed to get a final score of 10/10, then this will be given automatically. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Office hours =&lt;br /&gt;
&lt;br /&gt;
Bruno Bauwens: Tuesday 15h -- 21h. Friday 15h -- 18h. &lt;br /&gt;
&lt;br /&gt;
Subin Pulari: Please contact via telegram or mail [mailto:spulari@hse.ru spulari@hse.ru]&lt;/div&gt;</summary>
		<author><name>Spulari</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2025&amp;diff=93793</id>
		<title>Theory of computation 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2025&amp;diff=93793"/>
		<updated>2025-11-21T00:51:36Z</updated>

		<summary type="html">&lt;p&gt;Spulari: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Classes =&lt;br /&gt;
&lt;br /&gt;
Lectures:  Friday 13h00 - 14h20 in Pokrovkaya, see [https://docs.google.com/spreadsheets/d/1EAbqb8wf48evEi5Bf2M0xmZXQSrpd_FJbsnevXDQxaQ/edit?gid=614347250#gid=614347250 here] for the room, and in [https://us02web.zoom.us/j/82300259484?pwd=NWxXekxBeE5yMm9UTmwvLzNNNGlnUT09 zoom] by [https://www.hse.ru/en/org/persons/160550073 Bruno Bauwens]. Starting 19.09.&lt;br /&gt;
&lt;br /&gt;
Seminars: Friday 14h40 - 16h00 in Pokrovkaya, see [https://docs.google.com/spreadsheets/d/1EAbqb8wf48evEi5Bf2M0xmZXQSrpd_FJbsnevXDQxaQ/edit?gid=614347250#gid=614347250 here] for the room, and in [https://us06web.zoom.us/j/84205097860?pwd=PQpzn1Oqf9G2fjO2vwcUVsMdCnRUuc.1 zoom] by Prof. Subin Pulari&lt;br /&gt;
&lt;br /&gt;
Telegram group for announcements and discussions [https://t.me/+7BOrITRebjk5MTc0 invite link.] The course is similar to [http://wiki.cs.hse.ru/Theory_of_computation_2024 last year&#039;s one].&lt;br /&gt;
&lt;br /&gt;
For students programming engineering this course is called &amp;quot;computational complexity theory&amp;quot; and the course has an extra part in the 3rd module. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Homeworks =&lt;br /&gt;
&lt;br /&gt;
Deadlines: every 2 weeks, before the lecture. Submit in pdf or fotos of handwritten text in [https://classroom.google.com/c/ODEwMjk4NDQxMTU1?cjc=n5dttaev google class]. &lt;br /&gt;
&lt;br /&gt;
Tasks are in the problem lists from the seminar. Deadlines: problem lists 1 and 2: at the start of 3rd lecture, lists 3 and 4 at the start of the 5th lecture, etc.&lt;br /&gt;
&lt;br /&gt;
Late policy: 1 homework can be submitted at most 24h late without explanations.&lt;br /&gt;
&lt;br /&gt;
All homework scores are available in the following Google Sheet: [https://docs.google.com/spreadsheets/d/1QvyOh7kk7W-IhgMNcyFJ5NUNj9Tw-9z12ora_ZBW8eA/edit?usp=sharing link]&lt;br /&gt;
&lt;br /&gt;
= Course Materials =&lt;br /&gt;
&lt;br /&gt;
The main reference is Sipser&#039;s book &amp;quot;Introduction to the theory of computation&amp;quot;, chapters 3, 4, 7–9.&lt;br /&gt;
&lt;br /&gt;
If you need some background in math, consider&lt;br /&gt;
&amp;lt;!-- [http://www.cs.elte.hu/~lovasz/dmbook.ps Lecture notes: Discrete Mathematics], L. Lovasz, K. Vesztergombi and --&amp;gt;&lt;br /&gt;
[http://rubtsov.su/public/DM-HSE-Draft.pdf Лекции по дискретной математике].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Rec !! Summary !! Problem list&lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=-VIr385nKVk 19.09] || Turing machines, multitape Turing machines, connection between them. Universal Turing machine. Examples. Time and space complexity. Complexity classes P, PSPACE, EXP. (Recording from previous year.) [https://drive.google.com/file/d/1Xby_fNyeVwZtVY6yfVJLBYNCaZVbOP61/view?usp=drive_link Notes]|| [https://drive.google.com/file/d/1bf3hhE82uw5D0bQGajXHl1-FhhyG-XnY/view?usp=drive_link problem list 1]&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|| [https://www.youtube.com/watch?v=tnq5BkcGfk0 26.09] || Undecidability of the Halting problem. Time and space hierarchy theorems. See notes above. || [https://drive.google.com/file/d/1iyba3kM98oJCz5yvKmWRb0oOpIAhFPef/view?usp=drive_link problem list 2] &lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=VR_A62kFXH8 03.10] || Complexity class NP. Examples. Non-deterministic machines and another definition of NP. Polynomial reductions. NP-hardness and NP-completeness. [https://drive.google.com/file/d/1chzfYehNELzNkDMDjmRo9gfIXv_9FYeG/view?usp=drive_link Notes], [https://drive.google.com/file/d/1leJcc3UqC-WIGGN3G7Zm2Y0jt84q13o1/view?usp=drive_link tex]. || [https://drive.google.com/file/d/17AF1Bj5I_S0XzwXkM4IeOugxX2Kr3i2u/view?usp=drive_link problem list 3]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://rutube.ru/video/585774c956d226dde80929ca0b39f13e 10.10] ||  NP-completenes of independent-set, NAE-3SAT, 3colorability, subsetsum, knapsack problem. Notes above.  || [https://drive.google.com/file/d/1dVUT2KZ9hAyGBZITDJh3xtfLb992aX9L/view?usp=drive_link problem list 4] upd 10.10&lt;br /&gt;
|-&lt;br /&gt;
 || [https://rutube.ru/video/53f86ac57c92d812edb493b280e31a07 17.10] || Circuits 1: examples and all functions have exponential circuits. Classes P/poly, AC^i and NC^i. Some functions have exponential circuit complexity. &amp;lt;!-- NC1 = Boolean formulas of polynomial size. Addition in AC0. Multiplication is in NC1. P is in P/poly. 3SAT is NP-complete.--&amp;gt;  [https://drive.google.com/file/d/1Cqr4A6ohPLIaAVocG3jE6GYsNz4XgA4r/view?usp=drive_link Notes.pdf] upd 28.10, [https://drive.google.com/file/d/1rzL0-_fKq9ZbSu_zjTUUiM_cQNUGUX05/view?usp=drive_link tex].  || [https://drive.google.com/file/d/1uB12iMZptqzcoLpF6hZT-8X1Xh9-1nm4/view?usp=drive_link problem list 5]&lt;br /&gt;
|-&lt;br /&gt;
 || 23.10 || Circuits 2: NC0 = functions that depend on a constant number of inputs. P is in P/poly. 3SAT is NP-complete.  Seminar: addition in AC0. Multiplication is in NC1. Notes above. Last year&#039;s [https://www.youtube.com/watch?v=Jqy89FPbFj4  video]. || see list 5&lt;br /&gt;
|-&lt;br /&gt;
 || [https://drive.google.com/file/d/19vsMFBQfun7mf9URNF-F2R9JWbPlNN81/view?usp=drive_link 24.10] || Directed Reachability is in SPACE(log^2 n). TQBF problem, its PSPACE-completeness. PSPACE = NPSPACE. NSPACE(s(n)) is in SPACE(s(n)^2) for space constructible s.|| [https://drive.google.com/file/d/1j9XCMFYwsqcqIzGgKGSgDpJvmtz4-Wx8/view?usp=drive_link problem list 6] upd 28.10&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/W_uZuQXm53c 07.11] || Oracle computation definitions. There exists an oracle &#039;&#039;A&#039;&#039; for which P&amp;lt;sup&amp;gt;&#039;&#039;A&#039;&#039;&amp;lt;/sup&amp;gt; = NP&amp;lt;sup&amp;gt;&#039;&#039;A&#039;&#039;&amp;lt;/sup&amp;gt;. There is an oracle B such that P&amp;lt;sup&amp;gt;&#039;&#039;B&#039;&#039;&amp;lt;/sup&amp;gt; is not equal to NP&amp;lt;sup&amp;gt;&#039;&#039;B&#039;&#039;&amp;lt;/sup&amp;gt;. || [https://drive.google.com/file/d/1v8dh4EAeAtq1et4ya_Q1VBO77_m3a6WS/view?usp=drive_link problem list 7]&lt;br /&gt;
|- &lt;br /&gt;
|| [https://youtube.com/live/ALO6r52wuIU 14.11] ||  Probabilistic computation. Probabilistic machines, the class BPP, invariance of the definition BPP for different thresholds, RP, coRP, PP, ZPP. BPP is in P/poly. Most of it is also [https://www.youtube.com/watch?v=YSMgVbOqB-8&amp;amp;list=PLm3J0oaFux3YL5vLXpzOyJiLtqLp6dCW2&amp;amp;index=23 here] and [https://www.cs.cmu.edu/afs/cs/academic/class/15859-f04/www/scribes/lec2.pdf scribe1] [https://lucatrevisan.github.io/cs278-04/notes/lecture08.pdf scribe2] || [https://drive.google.com/file/d/1pMn1rzOKjnmjvW4X1WJA-jauQv08YFIh/view?usp=drive_link problem list 8] upd 20.11&lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=X67F8P0dcAA 21.11] || Approximation algorithms. Definition c-approximation algorithm. 2-approximation for vertex cover and greedy vertex cover is not optimal. (ln n + 1)-approximation for set cover. PTAS for the makespan problem. Based on [https://www.youtube.com/watch?v=MEz1J9wY2iM&amp;amp;pp=ygUYYXBwcm94aW1hdGlvbiBhbGdvcml0aG1z MIT lecture].|| &lt;br /&gt;
[https://drive.google.com/file/d/13hfO-2KUxpMnk8o0aLsJ8xO9IYfLzCHK/view?usp=sharing problem list 9]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/r9rP3ZojeqY 28.11] || Parameterized complexity: The classes FPT and XP. Kernelization. Examples for vertex cover.  [https://drive.google.com/file/d/1W9SU24HW0r5QhugzmrghpkzJUFuC8whq/view?usp=sharing Notes.] || [https://drive.google.com/file/d/1PpRK72BtyKYR0KVi03HDCy7HXvWpzcL6/view?usp=sharing problem list 10] &amp;lt;!-- [https://www.dropbox.com/scl/fi/x5gwdae4ny4u3zixoy4pw/student_vc_branching.ipynb?rlkey=5oowq1u3jhy490s84ogojg1s7&amp;amp;dl=0 programming task.] --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/E4aNlvbYoLQ 05.12] || Parameterized complexity: W-hierarchy, hardness from the exponential time hypothesis. [https://drive.google.com/file/d/1f-085Gr7E01HepUR-brGJDet-fXJzUwb/view?usp=sharing presentation] [https://drive.google.com/file/d/1OIw7h31N2tt-npC0NrvVgNhYGw_HlJa_/view?usp=sharing Notes] || [https://drive.google.com/file/d/1xhUYMsj0iV2TMZfR8FtkxWUNlcCjdS-N/view?usp=sharing problem list 11] &lt;br /&gt;
|- &lt;br /&gt;
 || 12.12 || &#039;&#039;Colloquium.&#039;&#039; [https://drive.google.com/file/d/1no8CbHKJluGRx7FROpSS7BqXdjOVgdT1/view?usp=sharing Rules and questions.] Version Dec 8th.  || [https://www.dropbox.com/s/37gdsbv2it8omnm/tc-sample-exam.pdf?dl=0 Sample exam] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Artem Perfanov&#039;s [https://drive.google.com/file/d/16_ZP0X9wwza1RsrXZZGQsx5Igwk_vY9r/view?usp=sharing lecture summaries] [https://drive.google.com/drive/folders/1XsNL2B69akd3A9qaOEgC09NiZXLP8Wbz?usp=drive_link source] (Disclaimer: I did not check them):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Date !! Software engineering: parameterized complexity, FPT algorithms !! Problem list&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/xDaTpuVF0Es 05.03] || Recap from last lecture. More examples of kernels: linear programming kernel for vertex cover problem.  [https://www.dropbox.com/scl/fi/x5gwdae4ny4u3zixoy4pw/student_vc_branching.ipynb?rlkey=5oowq1u3jhy490s84ogojg1s7&amp;amp;dl=0 programming task.] [https://www.dropbox.com/s/zzzaulpmzql7x7u/parameterizedComplexity.pdf?dl=0 presentation].|| [https://drive.google.com/file/d/1sXA5F4gUZ-KvigQspz0ScVLOA38ZcxHb/view?usp=sharing problem list 12] &lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/TBX8sWx7nO0 12.03] || Linear programming kernel for VC, color coding, dynamic programming. Colorcoding [https://drive.google.com/file/d/1RMoIpd6p_L1XXOVeV36g0pdJdbtltbPF/view?usp=sharing from slide 39]  || [https://drive.google.com/file/d/16wjIGqbS5UvEUZCxuUfGROUxk2RlLqZl/view?usp=sharing problem list 13] &lt;br /&gt;
|-&lt;br /&gt;
 || 19.03 || Optional: problems that are FPT on graphs with small treewidth.(No recording, sorry.) || [https://drive.google.com/file/d/1mYkshv6q-c_5nY5qfHgosKxBd1zDDvGK/view?usp=sharing problem list 14]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Seminars (2025) !! Recording link&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 4 || [https://rutube.ru/video/private/6f4f908ef52b8af8e5bace950d8a9c0c/?p=5GnphSR3t1Jf4a9Mpqg2Zw link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 5 || Part I: [https://rutube.ru/video/private/992b26e2a8e6c95c662d8d246c7f3e0d/?p=uYcEmJungpW_YPkyLlGMOA link] &amp;lt;br&amp;gt; Part II: [https://rutube.ru/video/private/9d17a54647262d3c63187aad06fab0b8/?p=8WfJJBBJUYFfE9tQkBJ1MA link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 6 || [https://rutube.ru/video/private/6aa2f287bc39727ca82f4c713d2cc463/?p=2s6opSEa5_CjGYmJI3sOLg link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 7 || [https://rutube.ru/video/private/88af4a5c6eb2699db4475dbcf88884b7/?p=k_1vuYG_fWnOAQld9-0aCQ link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 8 || [https://rutube.ru/video/private/8978247dc6dcaaa8ef0e04ac3f4333af/?p=EGFH7-YuCIEiH2BYyKUqrg link]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL8EKo81hBCTGfNPpZlIe7USiEPpZGYDte Recordings last year]&lt;br /&gt;
&lt;br /&gt;
= Exam =&lt;br /&gt;
&lt;br /&gt;
5 or 6 questions with the same difficulty as the homework questions. You have 3 hours time. &lt;br /&gt;
&lt;br /&gt;
Each year, 1 of the questions is to prove that some problem is NP-complete. Do not forget to say why the problem is in NP. &lt;br /&gt;
&lt;br /&gt;
Copies of Sipser&#039;s book, Arora&amp;amp;Barak, Mertens&amp;amp;Moore, will be available. (I you have these books or printed parts of them, please bring it.) Also, personal handwritten notes are allowed, but nothing else.  [https://www.dropbox.com/s/37gdsbv2it8omnm/tc-sample-exam.pdf?dl=0 Sample exam]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Project (for PI students) =&lt;br /&gt;
&lt;br /&gt;
During the 3rd module Januari till March 2024 there are projects where you need to implement algorithms from parameterized complexity. (For example, for the vertex cover algorithm and disjoint paths problems.) A grader will check whether your algorithm reaches certain time limits. &lt;br /&gt;
&lt;br /&gt;
There are 3 tasks: 2 of them about branching and kernelization, 1 task about linear programming bounds. See the table with lectures. The tasks have equal weight for the grade. &lt;br /&gt;
&lt;br /&gt;
Deadline March 31st, 23h59. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Additional reading = &lt;br /&gt;
&lt;br /&gt;
Recall that the most important book for our course is &#039;&#039;Sipser, Introduction to the theory of computation&#039;&#039; 3rd edition, 2013, chapters 3, 4, 7–9. This book is intended for Bachelor students. &lt;br /&gt;
&lt;br /&gt;
The following book is popular with students theoretical computer science, because it contains most materials of our course in a concise way. Moreover, it presents many important advanced topics. I find the style of some proofs rather technical, but I like the topics in this book. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;S. Arora and B. Barak, Computational Complexity: A Modern Approach, 2009&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The course materials can also be found in various chapters of the following massive book (700 pages). It starts at beginning bachelor level and ends at an advanced master level. It is written in a pleasant style with excellent examples.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;C. Moore and S. Mertens, The nature of computation, 2011.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This book gives an introduction to important recent research directions in computational hardness. It also studies specific topics (games and planar problems) in huge detail.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;E. Demaine, W Gasarch, Haijaghayi, Computational intractability: a guide to lower bounds, 2023&#039;&#039; [https://hardness.mit.edu/ current draft]&lt;br /&gt;
&lt;br /&gt;
This is an advanced textbook with background on parameterized algorithms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;M. Cygan, F. Fomin and 6 others, Parameterized algorithms, 2016&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Grading =&lt;br /&gt;
&lt;br /&gt;
For AMI students:&lt;br /&gt;
&lt;br /&gt;
 Final score = 0.35 * [score homework] + 0.35 * [score colloquium] + 0.3 * [score exam] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For PI students (the course is called &amp;quot;computational complexity&amp;quot; and takes 3 modules). There are 2 scores for this course. The first one, given in December is calculated by the above formula (but probably it does not mean anything, I will ask about it). The second score is given below, and it is the one that will be in the diploma. It includes a programming project. The assignment and grader, will be set up by the end of Februari, the deadline is the end of March.  &lt;br /&gt;
&lt;br /&gt;
 Final score = 0.3 * [score homework] + 0.3 * [score colloquium] + 0.2 * [score exam] + 0.2 * [score project] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some homework assignments contain extra problems. Each solution of an extra problem will give 0.5 extra points on the final exam (which is graded out of 10). There will be around 10 extra problems. Rounding is applied only when the final score is transferred to the official grade. Arithmetic rounding is used. Autogrades. If only 6/10 for the exam is needed to get a final score of 10/10, then this will be given automatically. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Office hours =&lt;br /&gt;
&lt;br /&gt;
Bruno Bauwens: Tuesday 15h -- 21h. Friday 15h -- 18h. &lt;br /&gt;
&lt;br /&gt;
Subin Pulari: Please contact via telegram or mail [mailto:spulari@hse.ru spulari@hse.ru]&lt;/div&gt;</summary>
		<author><name>Spulari</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2025&amp;diff=93638</id>
		<title>Theory of computation 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2025&amp;diff=93638"/>
		<updated>2025-11-14T20:35:54Z</updated>

		<summary type="html">&lt;p&gt;Spulari: seminar 8 link added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Classes =&lt;br /&gt;
&lt;br /&gt;
Lectures:  Friday 13h00 - 14h20 in Pokrovkaya, see [https://docs.google.com/spreadsheets/d/1EAbqb8wf48evEi5Bf2M0xmZXQSrpd_FJbsnevXDQxaQ/edit?gid=614347250#gid=614347250 here] for the room, and in [https://us02web.zoom.us/j/82300259484?pwd=NWxXekxBeE5yMm9UTmwvLzNNNGlnUT09 zoom] by [https://www.hse.ru/en/org/persons/160550073 Bruno Bauwens]. Starting 19.09.&lt;br /&gt;
&lt;br /&gt;
Seminars: Friday 14h40 - 16h00 in Pokrovkaya, see [https://docs.google.com/spreadsheets/d/1EAbqb8wf48evEi5Bf2M0xmZXQSrpd_FJbsnevXDQxaQ/edit?gid=614347250#gid=614347250 here] for the room, and in [https://us06web.zoom.us/j/84205097860?pwd=PQpzn1Oqf9G2fjO2vwcUVsMdCnRUuc.1 zoom] by Prof. Subin Pulari&lt;br /&gt;
&lt;br /&gt;
Telegram group for announcements and discussions [https://t.me/+7BOrITRebjk5MTc0 invite link.] The course is similar to [http://wiki.cs.hse.ru/Theory_of_computation_2024 last year&#039;s one].&lt;br /&gt;
&lt;br /&gt;
For students programming engineering this course is called &amp;quot;computational complexity theory&amp;quot; and the course has an extra part in the 3rd module. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Homeworks =&lt;br /&gt;
&lt;br /&gt;
Deadlines: every 2 weeks, before the lecture. Submit in pdf or fotos of handwritten text in [https://classroom.google.com/c/ODEwMjk4NDQxMTU1?cjc=n5dttaev google class]. &lt;br /&gt;
&lt;br /&gt;
Tasks are in the problem lists from the seminar. Deadlines: problem lists 1 and 2: at the start of 3rd lecture, lists 3 and 4 at the start of the 5th lecture, etc.&lt;br /&gt;
&lt;br /&gt;
Late policy: 1 homework can be submitted at most 24h late without explanations. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Course Materials =&lt;br /&gt;
&lt;br /&gt;
The main reference is Sipser&#039;s book &amp;quot;Introduction to the theory of computation&amp;quot;, chapters 3, 4, 7–9.&lt;br /&gt;
&lt;br /&gt;
If you need some background in math, consider&lt;br /&gt;
&amp;lt;!-- [http://www.cs.elte.hu/~lovasz/dmbook.ps Lecture notes: Discrete Mathematics], L. Lovasz, K. Vesztergombi and --&amp;gt;&lt;br /&gt;
[http://rubtsov.su/public/DM-HSE-Draft.pdf Лекции по дискретной математике].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Rec !! Summary !! Problem list&lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=-VIr385nKVk 19.09] || Turing machines, multitape Turing machines, connection between them. Universal Turing machine. Examples. Time and space complexity. Complexity classes P, PSPACE, EXP. (Recording from previous year.) [https://drive.google.com/file/d/1Xby_fNyeVwZtVY6yfVJLBYNCaZVbOP61/view?usp=drive_link Notes]|| [https://drive.google.com/file/d/1bf3hhE82uw5D0bQGajXHl1-FhhyG-XnY/view?usp=drive_link problem list 1]&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|| [https://www.youtube.com/watch?v=tnq5BkcGfk0 26.09] || Undecidability of the Halting problem. Time and space hierarchy theorems. See notes above. || [https://drive.google.com/file/d/1iyba3kM98oJCz5yvKmWRb0oOpIAhFPef/view?usp=drive_link problem list 2] &lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=VR_A62kFXH8 03.10] || Complexity class NP. Examples. Non-deterministic machines and another definition of NP. Polynomial reductions. NP-hardness and NP-completeness. [https://drive.google.com/file/d/1chzfYehNELzNkDMDjmRo9gfIXv_9FYeG/view?usp=drive_link Notes], [https://drive.google.com/file/d/1leJcc3UqC-WIGGN3G7Zm2Y0jt84q13o1/view?usp=drive_link tex]. || [https://drive.google.com/file/d/17AF1Bj5I_S0XzwXkM4IeOugxX2Kr3i2u/view?usp=drive_link problem list 3]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://rutube.ru/video/585774c956d226dde80929ca0b39f13e 10.10] ||  NP-completenes of independent-set, NAE-3SAT, 3colorability, subsetsum, knapsack problem. Notes above.  || [https://drive.google.com/file/d/1dVUT2KZ9hAyGBZITDJh3xtfLb992aX9L/view?usp=drive_link problem list 4] upd 10.10&lt;br /&gt;
|-&lt;br /&gt;
 || [https://rutube.ru/video/53f86ac57c92d812edb493b280e31a07 17.10] || Circuits 1: examples and all functions have exponential circuits. Classes P/poly, AC^i and NC^i. Some functions have exponential circuit complexity. &amp;lt;!-- NC1 = Boolean formulas of polynomial size. Addition in AC0. Multiplication is in NC1. P is in P/poly. 3SAT is NP-complete.--&amp;gt;  [https://drive.google.com/file/d/1Cqr4A6ohPLIaAVocG3jE6GYsNz4XgA4r/view?usp=drive_link Notes.pdf] upd 28.10, [https://drive.google.com/file/d/1rzL0-_fKq9ZbSu_zjTUUiM_cQNUGUX05/view?usp=drive_link tex].  || [https://drive.google.com/file/d/1uB12iMZptqzcoLpF6hZT-8X1Xh9-1nm4/view?usp=drive_link problem list 5]&lt;br /&gt;
|-&lt;br /&gt;
 || 23.10 || Circuits 2: NC0 = functions that depend on a constant number of inputs. P is in P/poly. 3SAT is NP-complete.  Seminar: addition in AC0. Multiplication is in NC1. Notes above. Last year&#039;s [https://www.youtube.com/watch?v=Jqy89FPbFj4  video]. || see list 5&lt;br /&gt;
|-&lt;br /&gt;
 || [https://drive.google.com/file/d/19vsMFBQfun7mf9URNF-F2R9JWbPlNN81/view?usp=drive_link 24.10] || Directed Reachability is in SPACE(log^2 n). TQBF problem, its PSPACE-completeness. PSPACE = NPSPACE. NSPACE(s(n)) is in SPACE(s(n)^2) for space constructible s.|| [https://drive.google.com/file/d/1j9XCMFYwsqcqIzGgKGSgDpJvmtz4-Wx8/view?usp=drive_link problem list 6] upd 28.10&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/W_uZuQXm53c 07.11] || Oracle computation definitions. There exists an oracle &#039;&#039;A&#039;&#039; for which P&amp;lt;sup&amp;gt;&#039;&#039;A&#039;&#039;&amp;lt;/sup&amp;gt; = NP&amp;lt;sup&amp;gt;&#039;&#039;A&#039;&#039;&amp;lt;/sup&amp;gt;. There is an oracle B such that P&amp;lt;sup&amp;gt;&#039;&#039;B&#039;&#039;&amp;lt;/sup&amp;gt; is not equal to NP&amp;lt;sup&amp;gt;&#039;&#039;B&#039;&#039;&amp;lt;/sup&amp;gt;. || [https://drive.google.com/file/d/1v8dh4EAeAtq1et4ya_Q1VBO77_m3a6WS/view?usp=drive_link problem list 7]&lt;br /&gt;
|- &lt;br /&gt;
|| [https://youtube.com/live/ALO6r52wuIU 14.11] ||  Probabilistic computation. Probabilistic machines, the class BPP, invariance of the definition BPP for different thresholds, RP, coRP, PP, ZPP. BPP is in P/poly. Most of it is also [https://www.youtube.com/watch?v=YSMgVbOqB-8&amp;amp;list=PLm3J0oaFux3YL5vLXpzOyJiLtqLp6dCW2&amp;amp;index=23 here] and [https://www.cs.cmu.edu/afs/cs/academic/class/15859-f04/www/scribes/lec2.pdf scribe1] [https://lucatrevisan.github.io/cs278-04/notes/lecture08.pdf scribe2] || [https://drive.google.com/file/d/1pMn1rzOKjnmjvW4X1WJA-jauQv08YFIh/view?usp=drive_link problem list 8]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=X67F8P0dcAA 21.11] || Approximation algorithms. Definition c-approximation algorithm. 2-approximation for vertex cover and greedy vertex cover is not optimal. (ln n + 1)-approximation for set cover. PTAS for the makespan problem. Based on [https://www.youtube.com/watch?v=MEz1J9wY2iM&amp;amp;pp=ygUYYXBwcm94aW1hdGlvbiBhbGdvcml0aG1z MIT lecture].|| &lt;br /&gt;
[https://drive.google.com/file/d/13hfO-2KUxpMnk8o0aLsJ8xO9IYfLzCHK/view?usp=sharing problem list 9]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/r9rP3ZojeqY 28.11] || Parameterized complexity: The classes FPT and XP. Kernelization. Examples for vertex cover.  [https://drive.google.com/file/d/1W9SU24HW0r5QhugzmrghpkzJUFuC8whq/view?usp=sharing Notes.] || [https://drive.google.com/file/d/1PpRK72BtyKYR0KVi03HDCy7HXvWpzcL6/view?usp=sharing problem list 10] &amp;lt;!-- [https://www.dropbox.com/scl/fi/x5gwdae4ny4u3zixoy4pw/student_vc_branching.ipynb?rlkey=5oowq1u3jhy490s84ogojg1s7&amp;amp;dl=0 programming task.] --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/E4aNlvbYoLQ 05.12] || Parameterized complexity: W-hierarchy, hardness from the exponential time hypothesis. [https://drive.google.com/file/d/1f-085Gr7E01HepUR-brGJDet-fXJzUwb/view?usp=sharing presentation] [https://drive.google.com/file/d/1OIw7h31N2tt-npC0NrvVgNhYGw_HlJa_/view?usp=sharing Notes] || [https://drive.google.com/file/d/1xhUYMsj0iV2TMZfR8FtkxWUNlcCjdS-N/view?usp=sharing problem list 11] &lt;br /&gt;
|- &lt;br /&gt;
 || 12.12 || &#039;&#039;Colloquium.&#039;&#039; [https://drive.google.com/file/d/1no8CbHKJluGRx7FROpSS7BqXdjOVgdT1/view?usp=sharing Rules and questions.] Version Dec 8th.  || [https://www.dropbox.com/s/37gdsbv2it8omnm/tc-sample-exam.pdf?dl=0 Sample exam] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Artem Perfanov&#039;s [https://drive.google.com/file/d/16_ZP0X9wwza1RsrXZZGQsx5Igwk_vY9r/view?usp=sharing lecture summaries] [https://drive.google.com/drive/folders/1XsNL2B69akd3A9qaOEgC09NiZXLP8Wbz?usp=drive_link source] (Disclaimer: I did not check them):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Date !! Software engineering: parameterized complexity, FPT algorithms !! Problem list&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/xDaTpuVF0Es 05.03] || Recap from last lecture. More examples of kernels: linear programming kernel for vertex cover problem.  [https://www.dropbox.com/scl/fi/x5gwdae4ny4u3zixoy4pw/student_vc_branching.ipynb?rlkey=5oowq1u3jhy490s84ogojg1s7&amp;amp;dl=0 programming task.] [https://www.dropbox.com/s/zzzaulpmzql7x7u/parameterizedComplexity.pdf?dl=0 presentation].|| [https://drive.google.com/file/d/1sXA5F4gUZ-KvigQspz0ScVLOA38ZcxHb/view?usp=sharing problem list 12] &lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/TBX8sWx7nO0 12.03] || Linear programming kernel for VC, color coding, dynamic programming. Colorcoding [https://drive.google.com/file/d/1RMoIpd6p_L1XXOVeV36g0pdJdbtltbPF/view?usp=sharing from slide 39]  || [https://drive.google.com/file/d/16wjIGqbS5UvEUZCxuUfGROUxk2RlLqZl/view?usp=sharing problem list 13] &lt;br /&gt;
|-&lt;br /&gt;
 || 19.03 || Optional: problems that are FPT on graphs with small treewidth.(No recording, sorry.) || [https://drive.google.com/file/d/1mYkshv6q-c_5nY5qfHgosKxBd1zDDvGK/view?usp=sharing problem list 14]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Seminars (2025) !! Recording link&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 4 || [https://rutube.ru/video/private/6f4f908ef52b8af8e5bace950d8a9c0c/?p=5GnphSR3t1Jf4a9Mpqg2Zw link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 5 || Part I: [https://rutube.ru/video/private/992b26e2a8e6c95c662d8d246c7f3e0d/?p=uYcEmJungpW_YPkyLlGMOA link] &amp;lt;br&amp;gt; Part II: [https://rutube.ru/video/private/9d17a54647262d3c63187aad06fab0b8/?p=8WfJJBBJUYFfE9tQkBJ1MA link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 6 || [https://rutube.ru/video/private/6aa2f287bc39727ca82f4c713d2cc463/?p=2s6opSEa5_CjGYmJI3sOLg link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 7 || [https://rutube.ru/video/private/88af4a5c6eb2699db4475dbcf88884b7/?p=k_1vuYG_fWnOAQld9-0aCQ link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 8 || [https://rutube.ru/video/private/8978247dc6dcaaa8ef0e04ac3f4333af/?p=EGFH7-YuCIEiH2BYyKUqrg link]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL8EKo81hBCTGfNPpZlIe7USiEPpZGYDte Recordings last year]&lt;br /&gt;
&lt;br /&gt;
= Exam =&lt;br /&gt;
&lt;br /&gt;
5 or 6 questions with the same difficulty as the homework questions. You have 3 hours time. &lt;br /&gt;
&lt;br /&gt;
Each year, 1 of the questions is to prove that some problem is NP-complete. Do not forget to say why the problem is in NP. &lt;br /&gt;
&lt;br /&gt;
Copies of Sipser&#039;s book, Arora&amp;amp;Barak, Mertens&amp;amp;Moore, will be available. (I you have these books or printed parts of them, please bring it.) Also, personal handwritten notes are allowed, but nothing else.  [https://www.dropbox.com/s/37gdsbv2it8omnm/tc-sample-exam.pdf?dl=0 Sample exam]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Project (for PI students) =&lt;br /&gt;
&lt;br /&gt;
During the 3rd module Januari till March 2024 there are projects where you need to implement algorithms from parameterized complexity. (For example, for the vertex cover algorithm and disjoint paths problems.) A grader will check whether your algorithm reaches certain time limits. &lt;br /&gt;
&lt;br /&gt;
There are 3 tasks: 2 of them about branching and kernelization, 1 task about linear programming bounds. See the table with lectures. The tasks have equal weight for the grade. &lt;br /&gt;
&lt;br /&gt;
Deadline March 31st, 23h59. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Additional reading = &lt;br /&gt;
&lt;br /&gt;
Recall that the most important book for our course is &#039;&#039;Sipser, Introduction to the theory of computation&#039;&#039; 3rd edition, 2013, chapters 3, 4, 7–9. This book is intended for Bachelor students. &lt;br /&gt;
&lt;br /&gt;
The following book is popular with students theoretical computer science, because it contains most materials of our course in a concise way. Moreover, it presents many important advanced topics. I find the style of some proofs rather technical, but I like the topics in this book. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;S. Arora and B. Barak, Computational Complexity: A Modern Approach, 2009&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The course materials can also be found in various chapters of the following massive book (700 pages). It starts at beginning bachelor level and ends at an advanced master level. It is written in a pleasant style with excellent examples.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;C. Moore and S. Mertens, The nature of computation, 2011.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This book gives an introduction to important recent research directions in computational hardness. It also studies specific topics (games and planar problems) in huge detail.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;E. Demaine, W Gasarch, Haijaghayi, Computational intractability: a guide to lower bounds, 2023&#039;&#039; [https://hardness.mit.edu/ current draft]&lt;br /&gt;
&lt;br /&gt;
This is an advanced textbook with background on parameterized algorithms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;M. Cygan, F. Fomin and 6 others, Parameterized algorithms, 2016&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Grading =&lt;br /&gt;
&lt;br /&gt;
For AMI students:&lt;br /&gt;
&lt;br /&gt;
 Final score = 0.35 * [score homework] + 0.35 * [score colloquium] + 0.3 * [score exam] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For PI students (the course is called &amp;quot;computational complexity&amp;quot; and takes 3 modules). There are 2 scores for this course. The first one, given in December is calculated by the above formula (but probably it does not mean anything, I will ask about it). The second score is given below, and it is the one that will be in the diploma. It includes a programming project. The assignment and grader, will be set up by the end of Februari, the deadline is the end of March.  &lt;br /&gt;
&lt;br /&gt;
 Final score = 0.3 * [score homework] + 0.3 * [score colloquium] + 0.2 * [score exam] + 0.2 * [score project] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some homework assignments contain extra problems. Each solution of an extra problem will give 0.5 extra points on the final exam (which is graded out of 10). There will be around 10 extra problems. Rounding is applied only when the final score is transferred to the official grade. Arithmetic rounding is used. Autogrades. If only 6/10 for the exam is needed to get a final score of 10/10, then this will be given automatically. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Office hours =&lt;br /&gt;
&lt;br /&gt;
Bruno Bauwens: Tuesday 15h -- 21h. Friday 15h -- 18h. &lt;br /&gt;
&lt;br /&gt;
Subin Pulari: Please contact via telegram or mail [mailto:spulari@hse.ru spulari@hse.ru]&lt;/div&gt;</summary>
		<author><name>Spulari</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2025&amp;diff=93479</id>
		<title>Theory of computation 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2025&amp;diff=93479"/>
		<updated>2025-11-07T16:04:25Z</updated>

		<summary type="html">&lt;p&gt;Spulari: seminar 7 link added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Classes =&lt;br /&gt;
&lt;br /&gt;
Lectures:  Friday 13h00 - 14h20 in Pokrovkaya, see [https://docs.google.com/spreadsheets/d/1EAbqb8wf48evEi5Bf2M0xmZXQSrpd_FJbsnevXDQxaQ/edit?gid=614347250#gid=614347250 here] for the room, and in [https://us02web.zoom.us/j/82300259484?pwd=NWxXekxBeE5yMm9UTmwvLzNNNGlnUT09 zoom] by [https://www.hse.ru/en/org/persons/160550073 Bruno Bauwens]. Starting 19.09.&lt;br /&gt;
&lt;br /&gt;
Seminars: Friday 14h40 - 16h00 in Pokrovkaya, see [https://docs.google.com/spreadsheets/d/1EAbqb8wf48evEi5Bf2M0xmZXQSrpd_FJbsnevXDQxaQ/edit?gid=614347250#gid=614347250 here] for the room, and in [https://us06web.zoom.us/j/84205097860?pwd=PQpzn1Oqf9G2fjO2vwcUVsMdCnRUuc.1 zoom] by Prof. Subin Pulari&lt;br /&gt;
&lt;br /&gt;
Telegram group for announcements and discussions [https://t.me/+7BOrITRebjk5MTc0 invite link.] The course is similar to [http://wiki.cs.hse.ru/Theory_of_computation_2024 last year&#039;s one].&lt;br /&gt;
&lt;br /&gt;
For students programming engineering this course is called &amp;quot;computational complexity theory&amp;quot; and the course has an extra part in the 3rd module. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Homeworks =&lt;br /&gt;
&lt;br /&gt;
Deadlines: every 2 weeks, before the lecture. Submit in pdf or fotos of handwritten text in [https://classroom.google.com/c/ODEwMjk4NDQxMTU1?cjc=n5dttaev google class]. &lt;br /&gt;
&lt;br /&gt;
Tasks are in the problem lists from the seminar. Deadlines: problem lists 1 and 2: at the start of 3rd lecture, lists 3 and 4 at the start of the 5th lecture, etc.&lt;br /&gt;
&lt;br /&gt;
Late policy: 1 homework can be submitted at most 24h late without explanations. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Course Materials =&lt;br /&gt;
&lt;br /&gt;
The main reference is Sipser&#039;s book &amp;quot;Introduction to the theory of computation&amp;quot;, chapters 3, 4, 7–9.&lt;br /&gt;
&lt;br /&gt;
If you need some background in math, consider&lt;br /&gt;
&amp;lt;!-- [http://www.cs.elte.hu/~lovasz/dmbook.ps Lecture notes: Discrete Mathematics], L. Lovasz, K. Vesztergombi and --&amp;gt;&lt;br /&gt;
[http://rubtsov.su/public/DM-HSE-Draft.pdf Лекции по дискретной математике].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Rec !! Summary !! Problem list&lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=-VIr385nKVk 19.09] || Turing machines, multitape Turing machines, connection between them. Universal Turing machine. Examples. Time and space complexity. Complexity classes P, PSPACE, EXP. (Recording from previous year.) [https://drive.google.com/file/d/1Xby_fNyeVwZtVY6yfVJLBYNCaZVbOP61/view?usp=drive_link Notes]|| [https://drive.google.com/file/d/1bf3hhE82uw5D0bQGajXHl1-FhhyG-XnY/view?usp=drive_link problem list 1]&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|| [https://www.youtube.com/watch?v=tnq5BkcGfk0 26.09] || Undecidability of the Halting problem. Time and space hierarchy theorems. See notes above. || [https://drive.google.com/file/d/1iyba3kM98oJCz5yvKmWRb0oOpIAhFPef/view?usp=drive_link problem list 2] &lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=VR_A62kFXH8 03.10] || Complexity class NP. Examples. Non-deterministic machines and another definition of NP. Polynomial reductions. NP-hardness and NP-completeness. [https://drive.google.com/file/d/1chzfYehNELzNkDMDjmRo9gfIXv_9FYeG/view?usp=drive_link Notes], [https://drive.google.com/file/d/1leJcc3UqC-WIGGN3G7Zm2Y0jt84q13o1/view?usp=drive_link tex]. || [https://drive.google.com/file/d/17AF1Bj5I_S0XzwXkM4IeOugxX2Kr3i2u/view?usp=drive_link problem list 3]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://rutube.ru/video/585774c956d226dde80929ca0b39f13e 10.10] ||  NP-completenes of independent-set, NAE-3SAT, 3colorability, subsetsum, knapsack problem. Notes above.  || [https://drive.google.com/file/d/1dVUT2KZ9hAyGBZITDJh3xtfLb992aX9L/view?usp=drive_link problem list 4] upd 10.10&lt;br /&gt;
|-&lt;br /&gt;
 || [https://rutube.ru/video/53f86ac57c92d812edb493b280e31a07 17.10] || Circuits 1: examples and all functions have exponential circuits. Classes P/poly, AC^i and NC^i. Some functions have exponential circuit complexity. &amp;lt;!-- NC1 = Boolean formulas of polynomial size. Addition in AC0. Multiplication is in NC1. P is in P/poly. 3SAT is NP-complete.--&amp;gt;  [https://drive.google.com/file/d/1Cqr4A6ohPLIaAVocG3jE6GYsNz4XgA4r/view?usp=drive_link Notes.pdf] upd 28.10, [https://drive.google.com/file/d/1rzL0-_fKq9ZbSu_zjTUUiM_cQNUGUX05/view?usp=drive_link tex].  || [https://drive.google.com/file/d/1uB12iMZptqzcoLpF6hZT-8X1Xh9-1nm4/view?usp=drive_link problem list 5]&lt;br /&gt;
|-&lt;br /&gt;
 || 23.10 || Circuits 2: NC0 = functions that depend on a constant number of inputs. P is in P/poly. 3SAT is NP-complete.  Seminar: addition in AC0. Multiplication is in NC1. Notes above. Last year&#039;s [https://www.youtube.com/watch?v=Jqy89FPbFj4  video]. || see list 5&lt;br /&gt;
|-&lt;br /&gt;
 || [https://drive.google.com/file/d/19vsMFBQfun7mf9URNF-F2R9JWbPlNN81/view?usp=drive_link 24.10] || Directed Reachability is in SPACE(log^2 n). TQBF problem, its PSPACE-completeness. PSPACE = NPSPACE. NSPACE(s(n)) is in SPACE(s(n)^2) for space constructible s.|| [https://drive.google.com/file/d/1j9XCMFYwsqcqIzGgKGSgDpJvmtz4-Wx8/view?usp=drive_link problem list 6] upd 28.10&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/W_uZuQXm53c 07.11] || Oracle computation definitions. There exists an oracle &#039;&#039;A&#039;&#039; for which P&amp;lt;sup&amp;gt;&#039;&#039;A&#039;&#039;&amp;lt;/sup&amp;gt; = NP&amp;lt;sup&amp;gt;&#039;&#039;A&#039;&#039;&amp;lt;/sup&amp;gt;. There is an oracle B such that P&amp;lt;sup&amp;gt;&#039;&#039;B&#039;&#039;&amp;lt;/sup&amp;gt; is not equal to NP&amp;lt;sup&amp;gt;&#039;&#039;B&#039;&#039;&amp;lt;/sup&amp;gt;. || [https://drive.google.com/file/d/1v8dh4EAeAtq1et4ya_Q1VBO77_m3a6WS/view?usp=drive_link problem list 7]&lt;br /&gt;
|- &lt;br /&gt;
|| [https://youtube.com/live/ALO6r52wuIU 14.11] ||  Probabilistic computation. Probabilistic machines, the class BPP, invariance of the definition BPP for different thresholds, RP, coRP, PP, ZPP. BPP is in P/poly. Most of it is also [https://www.youtube.com/watch?v=YSMgVbOqB-8&amp;amp;list=PLm3J0oaFux3YL5vLXpzOyJiLtqLp6dCW2&amp;amp;index=23 here] and [https://www.cs.cmu.edu/afs/cs/academic/class/15859-f04/www/scribes/lec2.pdf scribe1] [https://lucatrevisan.github.io/cs278-04/notes/lecture08.pdf scribe2] || [https://drive.google.com/file/d/1RlrxybN_p9X1WswJet9jpp9jPQLDYdpy/view?usp=sharing problem list 8]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=X67F8P0dcAA 21.11] || Approximation algorithms. Definition c-approximation algorithm. 2-approximation for vertex cover and greedy vertex cover is not optimal. (ln n + 1)-approximation for set cover. PTAS for the makespan problem. Based on [https://www.youtube.com/watch?v=MEz1J9wY2iM&amp;amp;pp=ygUYYXBwcm94aW1hdGlvbiBhbGdvcml0aG1z MIT lecture].|| &lt;br /&gt;
[https://drive.google.com/file/d/13hfO-2KUxpMnk8o0aLsJ8xO9IYfLzCHK/view?usp=sharing problem list 9]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/r9rP3ZojeqY 28.11] || Parameterized complexity: The classes FPT and XP. Kernelization. Examples for vertex cover.  [https://drive.google.com/file/d/1W9SU24HW0r5QhugzmrghpkzJUFuC8whq/view?usp=sharing Notes.] || [https://drive.google.com/file/d/1PpRK72BtyKYR0KVi03HDCy7HXvWpzcL6/view?usp=sharing problem list 10] &amp;lt;!-- [https://www.dropbox.com/scl/fi/x5gwdae4ny4u3zixoy4pw/student_vc_branching.ipynb?rlkey=5oowq1u3jhy490s84ogojg1s7&amp;amp;dl=0 programming task.] --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/E4aNlvbYoLQ 05.12] || Parameterized complexity: W-hierarchy, hardness from the exponential time hypothesis. [https://drive.google.com/file/d/1f-085Gr7E01HepUR-brGJDet-fXJzUwb/view?usp=sharing presentation] [https://drive.google.com/file/d/1OIw7h31N2tt-npC0NrvVgNhYGw_HlJa_/view?usp=sharing Notes] || [https://drive.google.com/file/d/1xhUYMsj0iV2TMZfR8FtkxWUNlcCjdS-N/view?usp=sharing problem list 11] &lt;br /&gt;
|- &lt;br /&gt;
 || 12.12 || &#039;&#039;Colloquium.&#039;&#039; [https://drive.google.com/file/d/1no8CbHKJluGRx7FROpSS7BqXdjOVgdT1/view?usp=sharing Rules and questions.] Version Dec 8th.  || [https://www.dropbox.com/s/37gdsbv2it8omnm/tc-sample-exam.pdf?dl=0 Sample exam] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Artem Perfanov&#039;s [https://drive.google.com/file/d/16_ZP0X9wwza1RsrXZZGQsx5Igwk_vY9r/view?usp=sharing lecture summaries] [https://drive.google.com/drive/folders/1XsNL2B69akd3A9qaOEgC09NiZXLP8Wbz?usp=drive_link source] (Disclaimer: I did not check them):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Date !! Software engineering: parameterized complexity, FPT algorithms !! Problem list&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/xDaTpuVF0Es 05.03] || Recap from last lecture. More examples of kernels: linear programming kernel for vertex cover problem.  [https://www.dropbox.com/scl/fi/x5gwdae4ny4u3zixoy4pw/student_vc_branching.ipynb?rlkey=5oowq1u3jhy490s84ogojg1s7&amp;amp;dl=0 programming task.] [https://www.dropbox.com/s/zzzaulpmzql7x7u/parameterizedComplexity.pdf?dl=0 presentation].|| [https://drive.google.com/file/d/1sXA5F4gUZ-KvigQspz0ScVLOA38ZcxHb/view?usp=sharing problem list 12] &lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/TBX8sWx7nO0 12.03] || Linear programming kernel for VC, color coding, dynamic programming. Colorcoding [https://drive.google.com/file/d/1RMoIpd6p_L1XXOVeV36g0pdJdbtltbPF/view?usp=sharing from slide 39]  || [https://drive.google.com/file/d/16wjIGqbS5UvEUZCxuUfGROUxk2RlLqZl/view?usp=sharing problem list 13] &lt;br /&gt;
|-&lt;br /&gt;
 || 19.03 || Optional: problems that are FPT on graphs with small treewidth.(No recording, sorry.) || [https://drive.google.com/file/d/1mYkshv6q-c_5nY5qfHgosKxBd1zDDvGK/view?usp=sharing problem list 14]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Seminars (2025) !! Recording link&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 4 || [https://rutube.ru/video/private/6f4f908ef52b8af8e5bace950d8a9c0c/?p=5GnphSR3t1Jf4a9Mpqg2Zw link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 5 || Part I: [https://rutube.ru/video/private/992b26e2a8e6c95c662d8d246c7f3e0d/?p=uYcEmJungpW_YPkyLlGMOA link] &amp;lt;br&amp;gt; Part II: [https://rutube.ru/video/private/9d17a54647262d3c63187aad06fab0b8/?p=8WfJJBBJUYFfE9tQkBJ1MA link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 6 || [https://rutube.ru/video/private/6aa2f287bc39727ca82f4c713d2cc463/?p=2s6opSEa5_CjGYmJI3sOLg link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 7 || [https://rutube.ru/video/private/88af4a5c6eb2699db4475dbcf88884b7/?p=k_1vuYG_fWnOAQld9-0aCQ link]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL8EKo81hBCTGfNPpZlIe7USiEPpZGYDte Recordings last year]&lt;br /&gt;
&lt;br /&gt;
= Exam =&lt;br /&gt;
&lt;br /&gt;
5 or 6 questions with the same difficulty as the homework questions. You have 3 hours time. &lt;br /&gt;
&lt;br /&gt;
Each year, 1 of the questions is to prove that some problem is NP-complete. Do not forget to say why the problem is in NP. &lt;br /&gt;
&lt;br /&gt;
Copies of Sipser&#039;s book, Arora&amp;amp;Barak, Mertens&amp;amp;Moore, will be available. (I you have these books or printed parts of them, please bring it.) Also, personal handwritten notes are allowed, but nothing else.  [https://www.dropbox.com/s/37gdsbv2it8omnm/tc-sample-exam.pdf?dl=0 Sample exam]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Project (for PI students) =&lt;br /&gt;
&lt;br /&gt;
During the 3rd module Januari till March 2024 there are projects where you need to implement algorithms from parameterized complexity. (For example, for the vertex cover algorithm and disjoint paths problems.) A grader will check whether your algorithm reaches certain time limits. &lt;br /&gt;
&lt;br /&gt;
There are 3 tasks: 2 of them about branching and kernelization, 1 task about linear programming bounds. See the table with lectures. The tasks have equal weight for the grade. &lt;br /&gt;
&lt;br /&gt;
Deadline March 31st, 23h59. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Additional reading = &lt;br /&gt;
&lt;br /&gt;
Recall that the most important book for our course is &#039;&#039;Sipser, Introduction to the theory of computation&#039;&#039; 3rd edition, 2013, chapters 3, 4, 7–9. This book is intended for Bachelor students. &lt;br /&gt;
&lt;br /&gt;
The following book is popular with students theoretical computer science, because it contains most materials of our course in a concise way. Moreover, it presents many important advanced topics. I find the style of some proofs rather technical, but I like the topics in this book. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;S. Arora and B. Barak, Computational Complexity: A Modern Approach, 2009&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The course materials can also be found in various chapters of the following massive book (700 pages). It starts at beginning bachelor level and ends at an advanced master level. It is written in a pleasant style with excellent examples.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;C. Moore and S. Mertens, The nature of computation, 2011.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This book gives an introduction to important recent research directions in computational hardness. It also studies specific topics (games and planar problems) in huge detail.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;E. Demaine, W Gasarch, Haijaghayi, Computational intractability: a guide to lower bounds, 2023&#039;&#039; [https://hardness.mit.edu/ current draft]&lt;br /&gt;
&lt;br /&gt;
This is an advanced textbook with background on parameterized algorithms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;M. Cygan, F. Fomin and 6 others, Parameterized algorithms, 2016&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Grading =&lt;br /&gt;
&lt;br /&gt;
For AMI students:&lt;br /&gt;
&lt;br /&gt;
 Final score = 0.35 * [score homework] + 0.35 * [score colloquium] + 0.3 * [score exam] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For PI students (the course is called &amp;quot;computational complexity&amp;quot; and takes 3 modules). There are 2 scores for this course. The first one, given in December is calculated by the above formula (but probably it does not mean anything, I will ask about it). The second score is given below, and it is the one that will be in the diploma. It includes a programming project. The assignment and grader, will be set up by the end of Februari, the deadline is the end of March.  &lt;br /&gt;
&lt;br /&gt;
 Final score = 0.3 * [score homework] + 0.3 * [score colloquium] + 0.2 * [score exam] + 0.2 * [score project] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some homework assignments contain extra problems. Each solution of an extra problem will give 0.5 extra points on the final exam (which is graded out of 10). There will be around 10 extra problems. Rounding is applied only when the final score is transferred to the official grade. Arithmetic rounding is used. Autogrades. If only 6/10 for the exam is needed to get a final score of 10/10, then this will be given automatically. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Office hours =&lt;br /&gt;
&lt;br /&gt;
Bruno Bauwens: Tuesday 15h -- 21h. Friday 15h -- 18h. &lt;br /&gt;
&lt;br /&gt;
Subin Pulari: Please contact via telegram or mail [mailto:spulari@hse.ru spulari@hse.ru]&lt;/div&gt;</summary>
		<author><name>Spulari</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2025&amp;diff=93300</id>
		<title>Theory of computation 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2025&amp;diff=93300"/>
		<updated>2025-10-24T16:17:53Z</updated>

		<summary type="html">&lt;p&gt;Spulari: added seminar table&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Classes =&lt;br /&gt;
&lt;br /&gt;
Lectures:  Friday 13h00 - 14h20 in Pokrovkaya, see [https://docs.google.com/spreadsheets/d/1EAbqb8wf48evEi5Bf2M0xmZXQSrpd_FJbsnevXDQxaQ/edit?gid=614347250#gid=614347250 here] for the room, and in [https://us02web.zoom.us/j/82300259484?pwd=NWxXekxBeE5yMm9UTmwvLzNNNGlnUT09 zoom] by [https://www.hse.ru/en/org/persons/160550073 Bruno Bauwens]. Starting 19.09.&lt;br /&gt;
&lt;br /&gt;
Seminars: Friday 14h40 - 16h00 in Pokrovkaya, see [https://docs.google.com/spreadsheets/d/1EAbqb8wf48evEi5Bf2M0xmZXQSrpd_FJbsnevXDQxaQ/edit?gid=614347250#gid=614347250 here] for the room, and in [https://us06web.zoom.us/j/84205097860?pwd=PQpzn1Oqf9G2fjO2vwcUVsMdCnRUuc.1 zoom] by Prof. Subin Pulari&lt;br /&gt;
&lt;br /&gt;
Telegram group for announcements and discussions [https://t.me/+7BOrITRebjk5MTc0 invite link.] The course is similar to [http://wiki.cs.hse.ru/Theory_of_computation_2024 last year&#039;s one].&lt;br /&gt;
&lt;br /&gt;
For students programming engineering this course is called &amp;quot;computational complexity theory&amp;quot; and the course has an extra part in the 3rd module. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Homeworks =&lt;br /&gt;
&lt;br /&gt;
Deadlines: every 2 weeks, before the lecture. Submit in pdf or fotos of handwritten text in [https://classroom.google.com/c/ODEwMjk4NDQxMTU1?cjc=n5dttaev google class]. &lt;br /&gt;
&lt;br /&gt;
Tasks are in the problem lists from the seminar. Deadlines: problem lists 1 and 2: at the start of 3rd lecture, lists 3 and 4 at the start of the 5th lecture, etc.&lt;br /&gt;
&lt;br /&gt;
Late policy: 1 homework can be submitted at most 24h late without explanations. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Course Materials =&lt;br /&gt;
&lt;br /&gt;
The main reference is Sipser&#039;s book &amp;quot;Introduction to the theory of computation&amp;quot;, chapters 3, 4, 7–9.&lt;br /&gt;
&lt;br /&gt;
If you need some background in math, consider&lt;br /&gt;
&amp;lt;!-- [http://www.cs.elte.hu/~lovasz/dmbook.ps Lecture notes: Discrete Mathematics], L. Lovasz, K. Vesztergombi and --&amp;gt;&lt;br /&gt;
[http://rubtsov.su/public/DM-HSE-Draft.pdf Лекции по дискретной математике].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Rec !! Summary !! Problem list&lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=-VIr385nKVk 19.09] || Turing machines, multitape Turing machines, connection between them. Universal Turing machine. Examples. Time and space complexity. Complexity classes P, PSPACE, EXP. (Recording from previous year.) [https://drive.google.com/file/d/1Xby_fNyeVwZtVY6yfVJLBYNCaZVbOP61/view?usp=drive_link Notes]|| [https://drive.google.com/file/d/1bf3hhE82uw5D0bQGajXHl1-FhhyG-XnY/view?usp=drive_link problem list 1]&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|| [https://www.youtube.com/watch?v=tnq5BkcGfk0 26.09] || Undecidability of the Halting problem. Time and space hierarchy theorems. See notes above. || [https://drive.google.com/file/d/1iyba3kM98oJCz5yvKmWRb0oOpIAhFPef/view?usp=drive_link problem list 2] &lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=VR_A62kFXH8 03.10] || Complexity class NP. Examples. Non-deterministic machines and another definition of NP. Polynomial reductions. NP-hardness and NP-completeness. [https://drive.google.com/file/d/1chzfYehNELzNkDMDjmRo9gfIXv_9FYeG/view?usp=drive_link Notes], [https://drive.google.com/file/d/1leJcc3UqC-WIGGN3G7Zm2Y0jt84q13o1/view?usp=drive_link tex]. || [https://drive.google.com/file/d/17AF1Bj5I_S0XzwXkM4IeOugxX2Kr3i2u/view?usp=drive_link problem list 3]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://rutube.ru/video/585774c956d226dde80929ca0b39f13e 10.10] ||  NP-completenes of independent-set, NAE-3SAT, 3colorability, subsetsum, knapsack problem. Notes above.  || [https://drive.google.com/file/d/1dVUT2KZ9hAyGBZITDJh3xtfLb992aX9L/view?usp=drive_link problem list 4] upd 10.10&lt;br /&gt;
|-&lt;br /&gt;
 || [https://rutube.ru/video/53f86ac57c92d812edb493b280e31a07 17.10] || Circuits 1: examples and all functions have exponential circuits. Classes P/poly, AC^i and NC^i. Some functions have exponential circuit complexity. &amp;lt;!-- NC1 = Boolean formulas of polynomial size. Addition in AC0. Multiplication is in NC1. P is in P/poly. 3SAT is NP-complete.--&amp;gt;  [https://drive.google.com/file/d/1Cqr4A6ohPLIaAVocG3jE6GYsNz4XgA4r/view?usp=drive_link Notes.pdf], [https://drive.google.com/file/d/1rzL0-_fKq9ZbSu_zjTUUiM_cQNUGUX05/view?usp=drive_link tex].  || [https://drive.google.com/file/d/1uB12iMZptqzcoLpF6hZT-8X1Xh9-1nm4/view?usp=drive_link problem list 5]&lt;br /&gt;
|-&lt;br /&gt;
 || 23.10 || Circuits 2: NC0 = functions that depend on a constant number of inputs. P is in P/poly. 3SAT is NP-complete.  Seminar: addition in AC0. Multiplication is in NC1. Notes above. Last year&#039;s [https://www.youtube.com/watch?v=Jqy89FPbFj4  vidoe]. || see list 5&lt;br /&gt;
|-&lt;br /&gt;
 || [https://drive.google.com/file/d/19vsMFBQfun7mf9URNF-F2R9JWbPlNN81/view?usp=drive_link 24.10] || Directed Reachability is in SPACE(log^2 n). TQBF problem, its PSPACE-completeness. PSPACE = NPSPACE. NSPACE(s(n)) is in SPACE(s(n)^2) for space constructible s.|| [https://drive.google.com/file/d/1j9XCMFYwsqcqIzGgKGSgDpJvmtz4-Wx8/view?usp=drive_link problem list 6]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/W_uZuQXm53c 07.11] || Oracle computation definitions. There exists an oracle &#039;&#039;A&#039;&#039; for which P&amp;lt;sup&amp;gt;&#039;&#039;A&#039;&#039;&amp;lt;/sup&amp;gt; = NP&amp;lt;sup&amp;gt;&#039;&#039;A&#039;&#039;&amp;lt;/sup&amp;gt;. There is an oracle B such that P&amp;lt;sup&amp;gt;&#039;&#039;B&#039;&#039;&amp;lt;/sup&amp;gt; is not equal to NP&amp;lt;sup&amp;gt;&#039;&#039;B&#039;&#039;&amp;lt;/sup&amp;gt;. || [https://drive.google.com/file/d/1T9mp2AuPV2YOQ0juTMd9g0VjczHvdnSB/view?usp=sharing problem list 7]&lt;br /&gt;
|- &lt;br /&gt;
|| [https://youtube.com/live/ALO6r52wuIU 14.11] ||  Probabilistic computation. Probabilistic machines, the class BPP, invariance of the definition BPP for different thresholds, RP, coRP, PP, ZPP. BPP is in P/poly. Most of it is also [https://www.youtube.com/watch?v=YSMgVbOqB-8&amp;amp;list=PLm3J0oaFux3YL5vLXpzOyJiLtqLp6dCW2&amp;amp;index=23 here] and [https://www.cs.cmu.edu/afs/cs/academic/class/15859-f04/www/scribes/lec2.pdf scribe1] [https://lucatrevisan.github.io/cs278-04/notes/lecture08.pdf scribe2] || [https://drive.google.com/file/d/1RlrxybN_p9X1WswJet9jpp9jPQLDYdpy/view?usp=sharing problem list 8]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=X67F8P0dcAA 21.11] || Approximation algorithms. Definition c-approximation algorithm. 2-approximation for vertex cover and greedy vertex cover is not optimal. (ln n + 1)-approximation for set cover. PTAS for the makespan problem. Based on [https://www.youtube.com/watch?v=MEz1J9wY2iM&amp;amp;pp=ygUYYXBwcm94aW1hdGlvbiBhbGdvcml0aG1z MIT lecture].|| &lt;br /&gt;
[https://drive.google.com/file/d/13hfO-2KUxpMnk8o0aLsJ8xO9IYfLzCHK/view?usp=sharing problem list 9]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/r9rP3ZojeqY 28.11] || Parameterized complexity: The classes FPT and XP. Kernelization. Examples for vertex cover.  [https://drive.google.com/file/d/1W9SU24HW0r5QhugzmrghpkzJUFuC8whq/view?usp=sharing Notes.] || [https://drive.google.com/file/d/1PpRK72BtyKYR0KVi03HDCy7HXvWpzcL6/view?usp=sharing problem list 10] &amp;lt;!-- [https://www.dropbox.com/scl/fi/x5gwdae4ny4u3zixoy4pw/student_vc_branching.ipynb?rlkey=5oowq1u3jhy490s84ogojg1s7&amp;amp;dl=0 programming task.] --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/E4aNlvbYoLQ 05.12] || Parameterized complexity: W-hierarchy, hardness from the exponential time hypothesis. [https://drive.google.com/file/d/1f-085Gr7E01HepUR-brGJDet-fXJzUwb/view?usp=sharing presentation] [https://drive.google.com/file/d/1OIw7h31N2tt-npC0NrvVgNhYGw_HlJa_/view?usp=sharing Notes] || [https://drive.google.com/file/d/1xhUYMsj0iV2TMZfR8FtkxWUNlcCjdS-N/view?usp=sharing problem list 11] &lt;br /&gt;
|- &lt;br /&gt;
 || 12.12 || &#039;&#039;Colloquium.&#039;&#039; [https://drive.google.com/file/d/1no8CbHKJluGRx7FROpSS7BqXdjOVgdT1/view?usp=sharing Rules and questions.] Version Dec 8th.  || [https://www.dropbox.com/s/37gdsbv2it8omnm/tc-sample-exam.pdf?dl=0 Sample exam] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Artem Perfanov&#039;s [https://drive.google.com/file/d/16_ZP0X9wwza1RsrXZZGQsx5Igwk_vY9r/view?usp=sharing lecture summaries] [https://drive.google.com/drive/folders/1XsNL2B69akd3A9qaOEgC09NiZXLP8Wbz?usp=drive_link source] (Disclaimer: I did not check them):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Date !! Software engineering: parameterized complexity, FPT algorithms !! Problem list&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/xDaTpuVF0Es 05.03] || Recap from last lecture. More examples of kernels: linear programming kernel for vertex cover problem.  [https://www.dropbox.com/scl/fi/x5gwdae4ny4u3zixoy4pw/student_vc_branching.ipynb?rlkey=5oowq1u3jhy490s84ogojg1s7&amp;amp;dl=0 programming task.] [https://www.dropbox.com/s/zzzaulpmzql7x7u/parameterizedComplexity.pdf?dl=0 presentation].|| [https://drive.google.com/file/d/1sXA5F4gUZ-KvigQspz0ScVLOA38ZcxHb/view?usp=sharing problem list 12] &lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/TBX8sWx7nO0 12.03] || Linear programming kernel for VC, color coding, dynamic programming. Colorcoding [https://drive.google.com/file/d/1RMoIpd6p_L1XXOVeV36g0pdJdbtltbPF/view?usp=sharing from slide 39]  || [https://drive.google.com/file/d/16wjIGqbS5UvEUZCxuUfGROUxk2RlLqZl/view?usp=sharing problem list 13] &lt;br /&gt;
|-&lt;br /&gt;
 || 19.03 || Optional: problems that are FPT on graphs with small treewidth.(No recording, sorry.) || [https://drive.google.com/file/d/1mYkshv6q-c_5nY5qfHgosKxBd1zDDvGK/view?usp=sharing problem list 14]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Seminars (2025) !! Recording link&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 4 || [https://rutube.ru/video/private/6f4f908ef52b8af8e5bace950d8a9c0c/?p=5GnphSR3t1Jf4a9Mpqg2Zw link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 5 || Part I: [https://rutube.ru/video/private/992b26e2a8e6c95c662d8d246c7f3e0d/?p=uYcEmJungpW_YPkyLlGMOA link] &amp;lt;br&amp;gt; Part II: [https://rutube.ru/video/private/9d17a54647262d3c63187aad06fab0b8/?p=8WfJJBBJUYFfE9tQkBJ1MA link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 6 || [https://rutube.ru/video/private/6aa2f287bc39727ca82f4c713d2cc463/?p=2s6opSEa5_CjGYmJI3sOLg link]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL8EKo81hBCTGfNPpZlIe7USiEPpZGYDte Recordings last year]&lt;br /&gt;
&lt;br /&gt;
= Exam =&lt;br /&gt;
&lt;br /&gt;
5 or 6 questions with the same difficulty as the homework questions. You have 3 hours time. &lt;br /&gt;
&lt;br /&gt;
Each year, 1 of the questions is to prove that some problem is NP-complete. Do not forget to say why the problem is in NP. &lt;br /&gt;
&lt;br /&gt;
Copies of Sipser&#039;s book, Arora&amp;amp;Barak, Mertens&amp;amp;Moore, will be available. (I you have these books or printed parts of them, please bring it.) Also, personal handwritten notes are allowed, but nothing else.  [https://www.dropbox.com/s/37gdsbv2it8omnm/tc-sample-exam.pdf?dl=0 Sample exam]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Project (for PI students) =&lt;br /&gt;
&lt;br /&gt;
During the 3rd module Januari till March 2024 there are projects where you need to implement algorithms from parameterized complexity. (For example, for the vertex cover algorithm and disjoint paths problems.) A grader will check whether your algorithm reaches certain time limits. &lt;br /&gt;
&lt;br /&gt;
There are 3 tasks: 2 of them about branching and kernelization, 1 task about linear programming bounds. See the table with lectures. The tasks have equal weight for the grade. &lt;br /&gt;
&lt;br /&gt;
Deadline March 31st, 23h59. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Additional reading = &lt;br /&gt;
&lt;br /&gt;
Recall that the most important book for our course is &#039;&#039;Sipser, Introduction to the theory of computation&#039;&#039; 3rd edition, 2013, chapters 3, 4, 7–9. This book is intended for Bachelor students. &lt;br /&gt;
&lt;br /&gt;
The following book is popular with students theoretical computer science, because it contains most materials of our course in a concise way. Moreover, it presents many important advanced topics. I find the style of some proofs rather technical, but I like the topics in this book. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;S. Arora and B. Barak, Computational Complexity: A Modern Approach, 2009&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The course materials can also be found in various chapters of the following massive book (700 pages). It starts at beginning bachelor level and ends at an advanced master level. It is written in a pleasant style with excellent examples.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;C. Moore and S. Mertens, The nature of computation, 2011.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This book gives an introduction to important recent research directions in computational hardness. It also studies specific topics (games and planar problems) in huge detail.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;E. Demaine, W Gasarch, Haijaghayi, Computational intractability: a guide to lower bounds, 2023&#039;&#039; [https://hardness.mit.edu/ current draft]&lt;br /&gt;
&lt;br /&gt;
This is an advanced textbook with background on parameterized algorithms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;M. Cygan, F. Fomin and 6 others, Parameterized algorithms, 2016&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Grading =&lt;br /&gt;
&lt;br /&gt;
For AMI students:&lt;br /&gt;
&lt;br /&gt;
 Final score = 0.35 * [score homework] + 0.35 * [score colloquium] + 0.3 * [score exam] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For PI students (the course is called &amp;quot;computational complexity&amp;quot; and takes 3 modules). There are 2 scores for this course. The first one, given in December is calculated by the above formula (but probably it does not mean anything, I will ask about it). The second score is given below, and it is the one that will be in the diploma. It includes a programming project. The assignment and grader, will be set up by the end of Februari, the deadline is the end of March.  &lt;br /&gt;
&lt;br /&gt;
 Final score = 0.3 * [score homework] + 0.3 * [score colloquium] + 0.2 * [score exam] + 0.2 * [score project] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some homework assignments contain extra problems. Each solution of an extra problem will give 0.5 extra points on the final exam (which is graded out of 10). There will be around 10 extra problems. Rounding is applied only when the final score is transferred to the official grade. Arithmetic rounding is used. Autogrades. If only 6/10 for the exam is needed to get a final score of 10/10, then this will be given automatically. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Office hours =&lt;br /&gt;
&lt;br /&gt;
Bruno Bauwens: Tuesday 15h -- 21h. Friday 15h -- 18h. &lt;br /&gt;
&lt;br /&gt;
Subin Pulari: Please contact via telegram or mail [mailto:spulari@hse.ru spulari@hse.ru]&lt;/div&gt;</summary>
		<author><name>Spulari</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2025&amp;diff=93299</id>
		<title>Theory of computation 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2025&amp;diff=93299"/>
		<updated>2025-10-24T16:16:51Z</updated>

		<summary type="html">&lt;p&gt;Spulari: /* Course Materials */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Classes =&lt;br /&gt;
&lt;br /&gt;
Lectures:  Friday 13h00 - 14h20 in Pokrovkaya, see [https://docs.google.com/spreadsheets/d/1EAbqb8wf48evEi5Bf2M0xmZXQSrpd_FJbsnevXDQxaQ/edit?gid=614347250#gid=614347250 here] for the room, and in [https://us02web.zoom.us/j/82300259484?pwd=NWxXekxBeE5yMm9UTmwvLzNNNGlnUT09 zoom] by [https://www.hse.ru/en/org/persons/160550073 Bruno Bauwens]. Starting 19.09.&lt;br /&gt;
&lt;br /&gt;
Seminars: Friday 14h40 - 16h00 in Pokrovkaya, see [https://docs.google.com/spreadsheets/d/1EAbqb8wf48evEi5Bf2M0xmZXQSrpd_FJbsnevXDQxaQ/edit?gid=614347250#gid=614347250 here] for the room, and in [https://us06web.zoom.us/j/84205097860?pwd=PQpzn1Oqf9G2fjO2vwcUVsMdCnRUuc.1 zoom] by Prof. Subin Pulari&lt;br /&gt;
&lt;br /&gt;
Telegram group for announcements and discussions [https://t.me/+7BOrITRebjk5MTc0 invite link.] The course is similar to [http://wiki.cs.hse.ru/Theory_of_computation_2024 last year&#039;s one].&lt;br /&gt;
&lt;br /&gt;
For students programming engineering this course is called &amp;quot;computational complexity theory&amp;quot; and the course has an extra part in the 3rd module. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Homeworks =&lt;br /&gt;
&lt;br /&gt;
Deadlines: every 2 weeks, before the lecture. Submit in pdf or fotos of handwritten text in [https://classroom.google.com/c/ODEwMjk4NDQxMTU1?cjc=n5dttaev google class]. &lt;br /&gt;
&lt;br /&gt;
Tasks are in the problem lists from the seminar. Deadlines: problem lists 1 and 2: at the start of 3rd lecture, lists 3 and 4 at the start of the 5th lecture, etc.&lt;br /&gt;
&lt;br /&gt;
Late policy: 1 homework can be submitted at most 24h late without explanations. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Course Materials =&lt;br /&gt;
&lt;br /&gt;
The main reference is Sipser&#039;s book &amp;quot;Introduction to the theory of computation&amp;quot;, chapters 3, 4, 7–9.&lt;br /&gt;
&lt;br /&gt;
If you need some background in math, consider&lt;br /&gt;
&amp;lt;!-- [http://www.cs.elte.hu/~lovasz/dmbook.ps Lecture notes: Discrete Mathematics], L. Lovasz, K. Vesztergombi and --&amp;gt;&lt;br /&gt;
[http://rubtsov.su/public/DM-HSE-Draft.pdf Лекции по дискретной математике].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Rec !! Summary !! Problem list&lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=-VIr385nKVk 19.09] || Turing machines, multitape Turing machines, connection between them. Universal Turing machine. Examples. Time and space complexity. Complexity classes P, PSPACE, EXP. (Recording from previous year.) [https://drive.google.com/file/d/1Xby_fNyeVwZtVY6yfVJLBYNCaZVbOP61/view?usp=drive_link Notes]|| [https://drive.google.com/file/d/1bf3hhE82uw5D0bQGajXHl1-FhhyG-XnY/view?usp=drive_link problem list 1]&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|| [https://www.youtube.com/watch?v=tnq5BkcGfk0 26.09] || Undecidability of the Halting problem. Time and space hierarchy theorems. See notes above. || [https://drive.google.com/file/d/1iyba3kM98oJCz5yvKmWRb0oOpIAhFPef/view?usp=drive_link problem list 2] &lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=VR_A62kFXH8 03.10] || Complexity class NP. Examples. Non-deterministic machines and another definition of NP. Polynomial reductions. NP-hardness and NP-completeness. [https://drive.google.com/file/d/1chzfYehNELzNkDMDjmRo9gfIXv_9FYeG/view?usp=drive_link Notes], [https://drive.google.com/file/d/1leJcc3UqC-WIGGN3G7Zm2Y0jt84q13o1/view?usp=drive_link tex]. || [https://drive.google.com/file/d/17AF1Bj5I_S0XzwXkM4IeOugxX2Kr3i2u/view?usp=drive_link problem list 3]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://rutube.ru/video/585774c956d226dde80929ca0b39f13e 10.10] ||  NP-completenes of independent-set, NAE-3SAT, 3colorability, subsetsum, knapsack problem. Notes above.  || [https://drive.google.com/file/d/1dVUT2KZ9hAyGBZITDJh3xtfLb992aX9L/view?usp=drive_link problem list 4] upd 10.10&lt;br /&gt;
|-&lt;br /&gt;
 || [https://rutube.ru/video/53f86ac57c92d812edb493b280e31a07 17.10] || Circuits 1: examples and all functions have exponential circuits. Classes P/poly, AC^i and NC^i. Some functions have exponential circuit complexity. &amp;lt;!-- NC1 = Boolean formulas of polynomial size. Addition in AC0. Multiplication is in NC1. P is in P/poly. 3SAT is NP-complete.--&amp;gt;  [https://drive.google.com/file/d/1Cqr4A6ohPLIaAVocG3jE6GYsNz4XgA4r/view?usp=drive_link Notes.pdf], [https://drive.google.com/file/d/1rzL0-_fKq9ZbSu_zjTUUiM_cQNUGUX05/view?usp=drive_link tex].  || [https://drive.google.com/file/d/1uB12iMZptqzcoLpF6hZT-8X1Xh9-1nm4/view?usp=drive_link problem list 5]&lt;br /&gt;
|-&lt;br /&gt;
 || 23.10 || Circuits 2: NC0 = functions that depend on a constant number of inputs. P is in P/poly. 3SAT is NP-complete.  Seminar: addition in AC0. Multiplication is in NC1. Notes above. Last year&#039;s [https://www.youtube.com/watch?v=Jqy89FPbFj4  vidoe]. || see list 5&lt;br /&gt;
|-&lt;br /&gt;
 || [https://drive.google.com/file/d/19vsMFBQfun7mf9URNF-F2R9JWbPlNN81/view?usp=drive_link 24.10] || Directed Reachability is in SPACE(log^2 n). TQBF problem, its PSPACE-completeness. PSPACE = NPSPACE. NSPACE(s(n)) is in SPACE(s(n)^2) for space constructible s.|| [https://drive.google.com/file/d/1j9XCMFYwsqcqIzGgKGSgDpJvmtz4-Wx8/view?usp=drive_link problem list 6]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/W_uZuQXm53c 07.11] || Oracle computation definitions. There exists an oracle &#039;&#039;A&#039;&#039; for which P&amp;lt;sup&amp;gt;&#039;&#039;A&#039;&#039;&amp;lt;/sup&amp;gt; = NP&amp;lt;sup&amp;gt;&#039;&#039;A&#039;&#039;&amp;lt;/sup&amp;gt;. There is an oracle B such that P&amp;lt;sup&amp;gt;&#039;&#039;B&#039;&#039;&amp;lt;/sup&amp;gt; is not equal to NP&amp;lt;sup&amp;gt;&#039;&#039;B&#039;&#039;&amp;lt;/sup&amp;gt;. || [https://drive.google.com/file/d/1T9mp2AuPV2YOQ0juTMd9g0VjczHvdnSB/view?usp=sharing problem list 7]&lt;br /&gt;
|- &lt;br /&gt;
|| [https://youtube.com/live/ALO6r52wuIU 14.11] ||  Probabilistic computation. Probabilistic machines, the class BPP, invariance of the definition BPP for different thresholds, RP, coRP, PP, ZPP. BPP is in P/poly. Most of it is also [https://www.youtube.com/watch?v=YSMgVbOqB-8&amp;amp;list=PLm3J0oaFux3YL5vLXpzOyJiLtqLp6dCW2&amp;amp;index=23 here] and [https://www.cs.cmu.edu/afs/cs/academic/class/15859-f04/www/scribes/lec2.pdf scribe1] [https://lucatrevisan.github.io/cs278-04/notes/lecture08.pdf scribe2] || [https://drive.google.com/file/d/1RlrxybN_p9X1WswJet9jpp9jPQLDYdpy/view?usp=sharing problem list 8]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=X67F8P0dcAA 21.11] || Approximation algorithms. Definition c-approximation algorithm. 2-approximation for vertex cover and greedy vertex cover is not optimal. (ln n + 1)-approximation for set cover. PTAS for the makespan problem. Based on [https://www.youtube.com/watch?v=MEz1J9wY2iM&amp;amp;pp=ygUYYXBwcm94aW1hdGlvbiBhbGdvcml0aG1z MIT lecture].|| &lt;br /&gt;
[https://drive.google.com/file/d/13hfO-2KUxpMnk8o0aLsJ8xO9IYfLzCHK/view?usp=sharing problem list 9]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/r9rP3ZojeqY 28.11] || Parameterized complexity: The classes FPT and XP. Kernelization. Examples for vertex cover.  [https://drive.google.com/file/d/1W9SU24HW0r5QhugzmrghpkzJUFuC8whq/view?usp=sharing Notes.] || [https://drive.google.com/file/d/1PpRK72BtyKYR0KVi03HDCy7HXvWpzcL6/view?usp=sharing problem list 10] &amp;lt;!-- [https://www.dropbox.com/scl/fi/x5gwdae4ny4u3zixoy4pw/student_vc_branching.ipynb?rlkey=5oowq1u3jhy490s84ogojg1s7&amp;amp;dl=0 programming task.] --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/E4aNlvbYoLQ 05.12] || Parameterized complexity: W-hierarchy, hardness from the exponential time hypothesis. [https://drive.google.com/file/d/1f-085Gr7E01HepUR-brGJDet-fXJzUwb/view?usp=sharing presentation] [https://drive.google.com/file/d/1OIw7h31N2tt-npC0NrvVgNhYGw_HlJa_/view?usp=sharing Notes] || [https://drive.google.com/file/d/1xhUYMsj0iV2TMZfR8FtkxWUNlcCjdS-N/view?usp=sharing problem list 11] &lt;br /&gt;
|- &lt;br /&gt;
 || 12.12 || &#039;&#039;Colloquium.&#039;&#039; [https://drive.google.com/file/d/1no8CbHKJluGRx7FROpSS7BqXdjOVgdT1/view?usp=sharing Rules and questions.] Version Dec 8th.  || [https://www.dropbox.com/s/37gdsbv2it8omnm/tc-sample-exam.pdf?dl=0 Sample exam] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Artem Perfanov&#039;s [https://drive.google.com/file/d/16_ZP0X9wwza1RsrXZZGQsx5Igwk_vY9r/view?usp=sharing lecture summaries] [https://drive.google.com/drive/folders/1XsNL2B69akd3A9qaOEgC09NiZXLP8Wbz?usp=drive_link source] (Disclaimer: I did not check them):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Date !! Software engineering: parameterized complexity, FPT algorithms !! Problem list&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/xDaTpuVF0Es 05.03] || Recap from last lecture. More examples of kernels: linear programming kernel for vertex cover problem.  [https://www.dropbox.com/scl/fi/x5gwdae4ny4u3zixoy4pw/student_vc_branching.ipynb?rlkey=5oowq1u3jhy490s84ogojg1s7&amp;amp;dl=0 programming task.] [https://www.dropbox.com/s/zzzaulpmzql7x7u/parameterizedComplexity.pdf?dl=0 presentation].|| [https://drive.google.com/file/d/1sXA5F4gUZ-KvigQspz0ScVLOA38ZcxHb/view?usp=sharing problem list 12] &lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/TBX8sWx7nO0 12.03] || Linear programming kernel for VC, color coding, dynamic programming. Colorcoding [https://drive.google.com/file/d/1RMoIpd6p_L1XXOVeV36g0pdJdbtltbPF/view?usp=sharing from slide 39]  || [https://drive.google.com/file/d/16wjIGqbS5UvEUZCxuUfGROUxk2RlLqZl/view?usp=sharing problem list 13] &lt;br /&gt;
|-&lt;br /&gt;
 || 19.03 || Optional: problems that are FPT on graphs with small treewidth.(No recording, sorry.) || [https://drive.google.com/file/d/1mYkshv6q-c_5nY5qfHgosKxBd1zDDvGK/view?usp=sharing problem list 14]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Seminar (2025) !! Recording link&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 4 || [https://rutube.ru/video/private/6f4f908ef52b8af8e5bace950d8a9c0c/?p=5GnphSR3t1Jf4a9Mpqg2Zw link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 5 || Part I: [https://rutube.ru/video/private/992b26e2a8e6c95c662d8d246c7f3e0d/?p=uYcEmJungpW_YPkyLlGMOA link] &amp;lt;br&amp;gt; Part II: [https://rutube.ru/video/private/9d17a54647262d3c63187aad06fab0b8/?p=8WfJJBBJUYFfE9tQkBJ1MA link]&lt;br /&gt;
|-&lt;br /&gt;
| Seminar 6 || [https://rutube.ru/video/private/6aa2f287bc39727ca82f4c713d2cc463/?p=2s6opSEa5_CjGYmJI3sOLg link]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL8EKo81hBCTGfNPpZlIe7USiEPpZGYDte Recordings last year]&lt;br /&gt;
&lt;br /&gt;
= Exam =&lt;br /&gt;
&lt;br /&gt;
5 or 6 questions with the same difficulty as the homework questions. You have 3 hours time. &lt;br /&gt;
&lt;br /&gt;
Each year, 1 of the questions is to prove that some problem is NP-complete. Do not forget to say why the problem is in NP. &lt;br /&gt;
&lt;br /&gt;
Copies of Sipser&#039;s book, Arora&amp;amp;Barak, Mertens&amp;amp;Moore, will be available. (I you have these books or printed parts of them, please bring it.) Also, personal handwritten notes are allowed, but nothing else.  [https://www.dropbox.com/s/37gdsbv2it8omnm/tc-sample-exam.pdf?dl=0 Sample exam]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Project (for PI students) =&lt;br /&gt;
&lt;br /&gt;
During the 3rd module Januari till March 2024 there are projects where you need to implement algorithms from parameterized complexity. (For example, for the vertex cover algorithm and disjoint paths problems.) A grader will check whether your algorithm reaches certain time limits. &lt;br /&gt;
&lt;br /&gt;
There are 3 tasks: 2 of them about branching and kernelization, 1 task about linear programming bounds. See the table with lectures. The tasks have equal weight for the grade. &lt;br /&gt;
&lt;br /&gt;
Deadline March 31st, 23h59. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Additional reading = &lt;br /&gt;
&lt;br /&gt;
Recall that the most important book for our course is &#039;&#039;Sipser, Introduction to the theory of computation&#039;&#039; 3rd edition, 2013, chapters 3, 4, 7–9. This book is intended for Bachelor students. &lt;br /&gt;
&lt;br /&gt;
The following book is popular with students theoretical computer science, because it contains most materials of our course in a concise way. Moreover, it presents many important advanced topics. I find the style of some proofs rather technical, but I like the topics in this book. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;S. Arora and B. Barak, Computational Complexity: A Modern Approach, 2009&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The course materials can also be found in various chapters of the following massive book (700 pages). It starts at beginning bachelor level and ends at an advanced master level. It is written in a pleasant style with excellent examples.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;C. Moore and S. Mertens, The nature of computation, 2011.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This book gives an introduction to important recent research directions in computational hardness. It also studies specific topics (games and planar problems) in huge detail.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;E. Demaine, W Gasarch, Haijaghayi, Computational intractability: a guide to lower bounds, 2023&#039;&#039; [https://hardness.mit.edu/ current draft]&lt;br /&gt;
&lt;br /&gt;
This is an advanced textbook with background on parameterized algorithms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;M. Cygan, F. Fomin and 6 others, Parameterized algorithms, 2016&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Grading =&lt;br /&gt;
&lt;br /&gt;
For AMI students:&lt;br /&gt;
&lt;br /&gt;
 Final score = 0.35 * [score homework] + 0.35 * [score colloquium] + 0.3 * [score exam] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For PI students (the course is called &amp;quot;computational complexity&amp;quot; and takes 3 modules). There are 2 scores for this course. The first one, given in December is calculated by the above formula (but probably it does not mean anything, I will ask about it). The second score is given below, and it is the one that will be in the diploma. It includes a programming project. The assignment and grader, will be set up by the end of Februari, the deadline is the end of March.  &lt;br /&gt;
&lt;br /&gt;
 Final score = 0.3 * [score homework] + 0.3 * [score colloquium] + 0.2 * [score exam] + 0.2 * [score project] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some homework assignments contain extra problems. Each solution of an extra problem will give 0.5 extra points on the final exam (which is graded out of 10). There will be around 10 extra problems. Rounding is applied only when the final score is transferred to the official grade. Arithmetic rounding is used. Autogrades. If only 6/10 for the exam is needed to get a final score of 10/10, then this will be given automatically. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Office hours =&lt;br /&gt;
&lt;br /&gt;
Bruno Bauwens: Tuesday 15h -- 21h. Friday 15h -- 18h. &lt;br /&gt;
&lt;br /&gt;
Subin Pulari: Please contact via telegram or mail [mailto:spulari@hse.ru spulari@hse.ru]&lt;/div&gt;</summary>
		<author><name>Spulari</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2025&amp;diff=93051</id>
		<title>Theory of computation 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2025&amp;diff=93051"/>
		<updated>2025-10-13T15:11:39Z</updated>

		<summary type="html">&lt;p&gt;Spulari: /* Course Materials */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Classes =&lt;br /&gt;
&lt;br /&gt;
Lectures:  Friday 13h00 - 14h20 in Pokrovkaya, see [https://docs.google.com/spreadsheets/d/1EAbqb8wf48evEi5Bf2M0xmZXQSrpd_FJbsnevXDQxaQ/edit?gid=614347250#gid=614347250 here] for the room, and in [https://us02web.zoom.us/j/82300259484?pwd=NWxXekxBeE5yMm9UTmwvLzNNNGlnUT09 zoom] by [https://www.hse.ru/en/org/persons/160550073 Bruno Bauwens]. Starting 19.09.&lt;br /&gt;
&lt;br /&gt;
Seminars: Friday 14h40 - 16h00 in Pokrovkaya, see [https://docs.google.com/spreadsheets/d/1EAbqb8wf48evEi5Bf2M0xmZXQSrpd_FJbsnevXDQxaQ/edit?gid=614347250#gid=614347250 here] for the room, and in [https://us06web.zoom.us/j/84205097860?pwd=PQpzn1Oqf9G2fjO2vwcUVsMdCnRUuc.1 zoom] by Prof. Subin Pulari&lt;br /&gt;
&lt;br /&gt;
Telegram group for announcements and discussions [https://t.me/+7BOrITRebjk5MTc0 invite link.] The course is similar to [http://wiki.cs.hse.ru/Theory_of_computation_2024 last year&#039;s one].&lt;br /&gt;
&lt;br /&gt;
For students programming engineering this course is called &amp;quot;computational complexity theory&amp;quot; and the course has an extra part in the 3rd module. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Homeworks =&lt;br /&gt;
&lt;br /&gt;
Deadlines: every 2 weeks, before the lecture. Submit in pdf or fotos of handwritten text in [https://classroom.google.com/c/ODEwMjk4NDQxMTU1?cjc=n5dttaev google class]. &lt;br /&gt;
&lt;br /&gt;
Tasks are in the problem lists from the seminar. Deadlines: problem lists 1 and 2: at the start of 3rd lecture, lists 3 and 4 at the start of the 5th lecture, etc.&lt;br /&gt;
&lt;br /&gt;
Late policy: 1 homework can be submitted at most 24h late without explanations. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Course Materials =&lt;br /&gt;
&lt;br /&gt;
The main reference is Sipser&#039;s book &amp;quot;Introduction to the theory of computation&amp;quot;, chapters 3, 4, 7–9.&lt;br /&gt;
&lt;br /&gt;
If you need some background in math, consider&lt;br /&gt;
&amp;lt;!-- [http://www.cs.elte.hu/~lovasz/dmbook.ps Lecture notes: Discrete Mathematics], L. Lovasz, K. Vesztergombi and --&amp;gt;&lt;br /&gt;
[http://rubtsov.su/public/DM-HSE-Draft.pdf Лекции по дискретной математике].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Rec !! Summary !! Problem list&lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=-VIr385nKVk 19.09] || Turing machines, multitape Turing machines, connection between them. Universal Turing machine. Examples. Time and space complexity. Complexity classes P, PSPACE, EXP. (Recording from previous year.) [https://drive.google.com/file/d/1Xby_fNyeVwZtVY6yfVJLBYNCaZVbOP61/view?usp=drive_link Notes]|| [https://drive.google.com/file/d/1bf3hhE82uw5D0bQGajXHl1-FhhyG-XnY/view?usp=drive_link problem list 1]&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|| [https://www.youtube.com/watch?v=tnq5BkcGfk0 26.09] || Undecidability of the Halting problem. Time and space hierarchy theorems. See notes above. || [https://drive.google.com/file/d/1iyba3kM98oJCz5yvKmWRb0oOpIAhFPef/view?usp=drive_link problem list 2] &lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=VR_A62kFXH8 03.10] || Complexity class NP. Examples. Non-deterministic machines and another definition of NP. Polynomial reductions. NP-hardness and NP-completeness.  || [https://drive.google.com/file/d/17AF1Bj5I_S0XzwXkM4IeOugxX2Kr3i2u/view?usp=drive_link problem list 3]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://rutube.ru/video/585774c956d226dde80929ca0b39f13e 10.10] ||  NP-completenes of NAE-3SAT, 3colorability, subsetsum, knapsack, Hamiltonian cycle.  || [https://drive.google.com/file/d/1dVUT2KZ9hAyGBZITDJh3xtfLb992aX9L/view?usp=drive_link problem list 4] upd 10.10&lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=Jqy89FPbFj4 17.10] || Circuits: examples and all functions have exponential circuits. Classes P/poly, AC^i and NC^i. Some functions have exponential circuit complexity. NC1 = Boolean formulas of polynomial size. Addition in AC0. Multiplication is in NC1. P is in P/poly. 3SAT is NP-complete.  [https://drive.google.com/file/d/1Cqr4A6ohPLIaAVocG3jE6GYsNz4XgA4r/view?usp=drive_link circuit_notes.pdf] || [https://drive.google.com/file/d/15uGUYwI2GfNaEi0upjgjCqmclrWUk75c/view?usp=sharing problem list 5]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/kV86JYY8QXs 24.10] || Directed Reachability is in SPACE(log^2 n). TQBF problem, its PSPACE-completeness. PSPACE = NPSPACE. NSPACE(s(n)) is in SPACE(s(n)^2) for space constructible s.|| [https://drive.google.com/file/d/1-vKS0TEAD05ol2BbFpbN510TbKhucBiw/view?usp=sharing problem list 6]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/W_uZuQXm53c 07.11] || Oracle computation definitions. There exists an oracle &#039;&#039;A&#039;&#039; for which P&amp;lt;sup&amp;gt;&#039;&#039;A&#039;&#039;&amp;lt;/sup&amp;gt; = NP&amp;lt;sup&amp;gt;&#039;&#039;A&#039;&#039;&amp;lt;/sup&amp;gt;. There is an oracle B such that P&amp;lt;sup&amp;gt;&#039;&#039;B&#039;&#039;&amp;lt;/sup&amp;gt; is not equal to NP&amp;lt;sup&amp;gt;&#039;&#039;B&#039;&#039;&amp;lt;/sup&amp;gt;. || [https://drive.google.com/file/d/1T9mp2AuPV2YOQ0juTMd9g0VjczHvdnSB/view?usp=sharing problem list 7]&lt;br /&gt;
|- &lt;br /&gt;
|| [https://youtube.com/live/ALO6r52wuIU 14.11] ||  Probabilistic computation. Probabilistic machines, the class BPP, invariance of the definition BPP for different thresholds, RP, coRP, PP, ZPP. BPP is in P/poly. Most of it is also [https://www.youtube.com/watch?v=YSMgVbOqB-8&amp;amp;list=PLm3J0oaFux3YL5vLXpzOyJiLtqLp6dCW2&amp;amp;index=23 here] and [https://www.cs.cmu.edu/afs/cs/academic/class/15859-f04/www/scribes/lec2.pdf scribe1] [https://lucatrevisan.github.io/cs278-04/notes/lecture08.pdf scribe2] || [https://drive.google.com/file/d/1RlrxybN_p9X1WswJet9jpp9jPQLDYdpy/view?usp=sharing problem list 8]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=X67F8P0dcAA 21.11] || Approximation algorithms. Definition c-approximation algorithm. 2-approximation for vertex cover and greedy vertex cover is not optimal. (ln n + 1)-approximation for set cover. PTAS for the makespan problem. Based on [https://www.youtube.com/watch?v=MEz1J9wY2iM&amp;amp;pp=ygUYYXBwcm94aW1hdGlvbiBhbGdvcml0aG1z MIT lecture].|| &lt;br /&gt;
[https://drive.google.com/file/d/13hfO-2KUxpMnk8o0aLsJ8xO9IYfLzCHK/view?usp=sharing problem list 9]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/r9rP3ZojeqY 28.11] || Parameterized complexity: The classes FPT and XP. Kernelization. Examples for vertex cover.  [https://drive.google.com/file/d/1W9SU24HW0r5QhugzmrghpkzJUFuC8whq/view?usp=sharing Notes.] || [https://drive.google.com/file/d/1PpRK72BtyKYR0KVi03HDCy7HXvWpzcL6/view?usp=sharing problem list 10] &amp;lt;!-- [https://www.dropbox.com/scl/fi/x5gwdae4ny4u3zixoy4pw/student_vc_branching.ipynb?rlkey=5oowq1u3jhy490s84ogojg1s7&amp;amp;dl=0 programming task.] --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/E4aNlvbYoLQ 05.12] || Parameterized complexity: W-hierarchy, hardness from the exponential time hypothesis. [https://drive.google.com/file/d/1f-085Gr7E01HepUR-brGJDet-fXJzUwb/view?usp=sharing presentation] [https://drive.google.com/file/d/1OIw7h31N2tt-npC0NrvVgNhYGw_HlJa_/view?usp=sharing Notes] || [https://drive.google.com/file/d/1xhUYMsj0iV2TMZfR8FtkxWUNlcCjdS-N/view?usp=sharing problem list 11] &lt;br /&gt;
|- &lt;br /&gt;
 || 12.12 || &#039;&#039;Colloquium.&#039;&#039; [https://drive.google.com/file/d/1no8CbHKJluGRx7FROpSS7BqXdjOVgdT1/view?usp=sharing Rules and questions.] Version Dec 8th.  || [https://www.dropbox.com/s/37gdsbv2it8omnm/tc-sample-exam.pdf?dl=0 Sample exam] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Artem Perfanov&#039;s [https://drive.google.com/file/d/16_ZP0X9wwza1RsrXZZGQsx5Igwk_vY9r/view?usp=sharing lecture summaries] [https://drive.google.com/drive/folders/1XsNL2B69akd3A9qaOEgC09NiZXLP8Wbz?usp=drive_link source] (Disclaimer: I did not check them):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Date !! Software engineering: parameterized complexity, FPT algorithms !! Problem list&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/xDaTpuVF0Es 05.03] || Recap from last lecture. More examples of kernels: linear programming kernel for vertex cover problem.  [https://www.dropbox.com/scl/fi/x5gwdae4ny4u3zixoy4pw/student_vc_branching.ipynb?rlkey=5oowq1u3jhy490s84ogojg1s7&amp;amp;dl=0 programming task.] [https://www.dropbox.com/s/zzzaulpmzql7x7u/parameterizedComplexity.pdf?dl=0 presentation].|| [https://drive.google.com/file/d/1sXA5F4gUZ-KvigQspz0ScVLOA38ZcxHb/view?usp=sharing problem list 12] &lt;br /&gt;
&#039;&#039;Update 03.12&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/TBX8sWx7nO0 12.03] || Linear programming kernel for VC, color coding, dynamic programming. Colorcoding [https://drive.google.com/file/d/1RMoIpd6p_L1XXOVeV36g0pdJdbtltbPF/view?usp=sharing from slide 39]  || [https://drive.google.com/file/d/16wjIGqbS5UvEUZCxuUfGROUxk2RlLqZl/view?usp=sharing problem list 13] &lt;br /&gt;
|-&lt;br /&gt;
 || 19.03 || Optional: problems that are FPT on graphs with small treewidth.(No recording, sorry.) || [https://drive.google.com/file/d/1mYkshv6q-c_5nY5qfHgosKxBd1zDDvGK/view?usp=sharing problem list 14]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL8EKo81hBCTGfNPpZlIe7USiEPpZGYDte Recordings last year]&lt;br /&gt;
&lt;br /&gt;
Recordings of the seminars are available here: [https://rutube.ru/plst/1243679/ link]&lt;br /&gt;
&lt;br /&gt;
= Exam =&lt;br /&gt;
&lt;br /&gt;
5 or 6 questions with the same difficulty as the homework questions. You have 3 hours time. &lt;br /&gt;
&lt;br /&gt;
Each year, 1 of the questions is to prove that some problem is NP-complete. Do not forget to say why the problem is in NP. &lt;br /&gt;
&lt;br /&gt;
Copies of Sipser&#039;s book, Arora&amp;amp;Barak, Mertens&amp;amp;Moore, will be available. (I you have these books or printed parts of them, please bring it.) Also, personal handwritten notes are allowed, but nothing else.  [https://www.dropbox.com/s/37gdsbv2it8omnm/tc-sample-exam.pdf?dl=0 Sample exam]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Project (for PI students) =&lt;br /&gt;
&lt;br /&gt;
During the 3rd module Januari till March 2024 there are projects where you need to implement algorithms from parameterized complexity. (For example, for the vertex cover algorithm and disjoint paths problems.) A grader will check whether your algorithm reaches certain time limits. &lt;br /&gt;
&lt;br /&gt;
There are 3 tasks: 2 of them about branching and kernelization, 1 task about linear programming bounds. See the table with lectures. The tasks have equal weight for the grade. &lt;br /&gt;
&lt;br /&gt;
Deadline March 31st, 23h59. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Additional reading = &lt;br /&gt;
&lt;br /&gt;
Recall that the most important book for our course is &#039;&#039;Sipser, Introduction to the theory of computation&#039;&#039; 3rd edition, 2013, chapters 3, 4, 7–9. This book is intended for Bachelor students. &lt;br /&gt;
&lt;br /&gt;
The following book is popular with students theoretical computer science, because it contains most materials of our course in a concise way. Moreover, it presents many important advanced topics. I find the style of some proofs rather technical, but I like the topics in this book. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;S. Arora and B. Barak, Computational Complexity: A Modern Approach, 2009&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The course materials can also be found in various chapters of the following massive book (700 pages). It starts at beginning bachelor level and ends at an advanced master level. It is written in a pleasant style with excellent examples.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;C. Moore and S. Mertens, The nature of computation, 2011.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This book gives an introduction to important recent research directions in computational hardness. It also studies specific topics (games and planar problems) in huge detail.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;E. Demaine, W Gasarch, Haijaghayi, Computational intractability: a guide to lower bounds, 2023&#039;&#039; [https://hardness.mit.edu/ current draft]&lt;br /&gt;
&lt;br /&gt;
This is an advanced textbook with background on parameterized algorithms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;M. Cygan, F. Fomin and 6 others, Parameterized algorithms, 2016&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Grading =&lt;br /&gt;
&lt;br /&gt;
For AMI students:&lt;br /&gt;
&lt;br /&gt;
 Final score = 0.35 * [score homework] + 0.35 * [score colloquium] + 0.3 * [score exam] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For PI students (the course is called &amp;quot;computational complexity&amp;quot; and takes 3 modules). There are 2 scores for this course. The first one, given in December is calculated by the above formula (but probably it does not mean anything, I will ask about it). The second score is given below, and it is the one that will be in the diploma. It includes a programming project. The assignment and grader, will be set up by the end of Februari, the deadline is the end of March.  &lt;br /&gt;
&lt;br /&gt;
 Final score = 0.3 * [score homework] + 0.3 * [score colloquium] + 0.2 * [score exam] + 0.2 * [score project] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some homework assignments contain extra problems. Each solution of an extra problem will give 0.5 extra points on the final exam (which is graded out of 10). There will be around 10 extra problems. Rounding is applied only when the final score is transferred to the official grade. Arithmetic rounding is used. Autogrades. If only 6/10 for the exam is needed to get a final score of 10/10, then this will be given automatically. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Office hours =&lt;br /&gt;
&lt;br /&gt;
Bruno Bauwens: Tuesday 15h -- 21h. Friday 15h -- 18h. &lt;br /&gt;
&lt;br /&gt;
Subin Pulari: Please contact via telegram or mail [mailto:spulari@hse.ru spulari@hse.ru]&lt;/div&gt;</summary>
		<author><name>Spulari</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2025&amp;diff=93049</id>
		<title>Theory of computation 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2025&amp;diff=93049"/>
		<updated>2025-10-13T15:09:46Z</updated>

		<summary type="html">&lt;p&gt;Spulari: /* Course Materials */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Classes =&lt;br /&gt;
&lt;br /&gt;
Lectures:  Friday 13h00 - 14h20 in Pokrovkaya, see [https://docs.google.com/spreadsheets/d/1EAbqb8wf48evEi5Bf2M0xmZXQSrpd_FJbsnevXDQxaQ/edit?gid=614347250#gid=614347250 here] for the room, and in [https://us02web.zoom.us/j/82300259484?pwd=NWxXekxBeE5yMm9UTmwvLzNNNGlnUT09 zoom] by [https://www.hse.ru/en/org/persons/160550073 Bruno Bauwens]. Starting 19.09.&lt;br /&gt;
&lt;br /&gt;
Seminars: Friday 14h40 - 16h00 in Pokrovkaya, see [https://docs.google.com/spreadsheets/d/1EAbqb8wf48evEi5Bf2M0xmZXQSrpd_FJbsnevXDQxaQ/edit?gid=614347250#gid=614347250 here] for the room, and in [https://us06web.zoom.us/j/84205097860?pwd=PQpzn1Oqf9G2fjO2vwcUVsMdCnRUuc.1 zoom] by Prof. Subin Pulari&lt;br /&gt;
&lt;br /&gt;
Telegram group for announcements and discussions [https://t.me/+7BOrITRebjk5MTc0 invite link.] The course is similar to [http://wiki.cs.hse.ru/Theory_of_computation_2024 last year&#039;s one].&lt;br /&gt;
&lt;br /&gt;
For students programming engineering this course is called &amp;quot;computational complexity theory&amp;quot; and the course has an extra part in the 3rd module. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Homeworks =&lt;br /&gt;
&lt;br /&gt;
Deadlines: every 2 weeks, before the lecture. Submit in pdf or fotos of handwritten text in [https://classroom.google.com/c/ODEwMjk4NDQxMTU1?cjc=n5dttaev google class]. &lt;br /&gt;
&lt;br /&gt;
Tasks are in the problem lists from the seminar. Deadlines: problem lists 1 and 2: at the start of 3rd lecture, lists 3 and 4 at the start of the 5th lecture, etc.&lt;br /&gt;
&lt;br /&gt;
Late policy: 1 homework can be submitted at most 24h late without explanations. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Course Materials =&lt;br /&gt;
&lt;br /&gt;
The main reference is Sipser&#039;s book &amp;quot;Introduction to the theory of computation&amp;quot;, chapters 3, 4, 7–9.&lt;br /&gt;
&lt;br /&gt;
If you need some background in math, consider&lt;br /&gt;
&amp;lt;!-- [http://www.cs.elte.hu/~lovasz/dmbook.ps Lecture notes: Discrete Mathematics], L. Lovasz, K. Vesztergombi and --&amp;gt;&lt;br /&gt;
[http://rubtsov.su/public/DM-HSE-Draft.pdf Лекции по дискретной математике].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Rec !! Summary !! Problem list&lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=-VIr385nKVk 19.09] || Turing machines, multitape Turing machines, connection between them. Universal Turing machine. Examples. Time and space complexity. Complexity classes P, PSPACE, EXP. (Recording from previous year.) [https://drive.google.com/file/d/1Xby_fNyeVwZtVY6yfVJLBYNCaZVbOP61/view?usp=drive_link Notes]|| [https://drive.google.com/file/d/1bf3hhE82uw5D0bQGajXHl1-FhhyG-XnY/view?usp=drive_link problem list 1]&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|| [https://www.youtube.com/watch?v=tnq5BkcGfk0 26.09] || Undecidability of the Halting problem. Time and space hierarchy theorems. See notes above. || [https://drive.google.com/file/d/1iyba3kM98oJCz5yvKmWRb0oOpIAhFPef/view?usp=drive_link problem list 2] &lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=VR_A62kFXH8 03.10] || Complexity class NP. Examples. Non-deterministic machines and another definition of NP. Polynomial reductions. NP-hardness and NP-completeness.  || [https://drive.google.com/file/d/17AF1Bj5I_S0XzwXkM4IeOugxX2Kr3i2u/view?usp=drive_link problem list 3]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://rutube.ru/video/585774c956d226dde80929ca0b39f13e 10.10] ||  NP-completenes of NAE-3SAT, 3colorability, subsetsum, knapsack, Hamiltonian cycle.  || [https://drive.google.com/file/d/1dVUT2KZ9hAyGBZITDJh3xtfLb992aX9L/view?usp=drive_link problem list 4] upd 10.10&lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=Jqy89FPbFj4 17.10] || Circuits: examples and all functions have exponential circuits. Classes P/poly, AC^i and NC^i. Some functions have exponential circuit complexity. NC1 = Boolean formulas of polynomial size. Addition in AC0. Multiplication is in NC1. P is in P/poly. 3SAT is NP-complete.  [https://drive.google.com/file/d/1Cqr4A6ohPLIaAVocG3jE6GYsNz4XgA4r/view?usp=drive_link circuit_notes.pdf] || [https://drive.google.com/file/d/15uGUYwI2GfNaEi0upjgjCqmclrWUk75c/view?usp=sharing problem list 5]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/kV86JYY8QXs 24.10] || Directed Reachability is in SPACE(log^2 n). TQBF problem, its PSPACE-completeness. PSPACE = NPSPACE. NSPACE(s(n)) is in SPACE(s(n)^2) for space constructible s.|| [https://drive.google.com/file/d/1-vKS0TEAD05ol2BbFpbN510TbKhucBiw/view?usp=sharing problem list 6]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/W_uZuQXm53c 07.11] || Oracle computation definitions. There exists an oracle &#039;&#039;A&#039;&#039; for which P&amp;lt;sup&amp;gt;&#039;&#039;A&#039;&#039;&amp;lt;/sup&amp;gt; = NP&amp;lt;sup&amp;gt;&#039;&#039;A&#039;&#039;&amp;lt;/sup&amp;gt;. There is an oracle B such that P&amp;lt;sup&amp;gt;&#039;&#039;B&#039;&#039;&amp;lt;/sup&amp;gt; is not equal to NP&amp;lt;sup&amp;gt;&#039;&#039;B&#039;&#039;&amp;lt;/sup&amp;gt;. || [https://drive.google.com/file/d/1T9mp2AuPV2YOQ0juTMd9g0VjczHvdnSB/view?usp=sharing problem list 7]&lt;br /&gt;
|- &lt;br /&gt;
|| [https://youtube.com/live/ALO6r52wuIU 14.11] ||  Probabilistic computation. Probabilistic machines, the class BPP, invariance of the definition BPP for different thresholds, RP, coRP, PP, ZPP. BPP is in P/poly. Most of it is also [https://www.youtube.com/watch?v=YSMgVbOqB-8&amp;amp;list=PLm3J0oaFux3YL5vLXpzOyJiLtqLp6dCW2&amp;amp;index=23 here] and [https://www.cs.cmu.edu/afs/cs/academic/class/15859-f04/www/scribes/lec2.pdf scribe1] [https://lucatrevisan.github.io/cs278-04/notes/lecture08.pdf scribe2] || [https://drive.google.com/file/d/1RlrxybN_p9X1WswJet9jpp9jPQLDYdpy/view?usp=sharing problem list 8]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=X67F8P0dcAA 21.11] || Approximation algorithms. Definition c-approximation algorithm. 2-approximation for vertex cover and greedy vertex cover is not optimal. (ln n + 1)-approximation for set cover. PTAS for the makespan problem. Based on [https://www.youtube.com/watch?v=MEz1J9wY2iM&amp;amp;pp=ygUYYXBwcm94aW1hdGlvbiBhbGdvcml0aG1z MIT lecture].|| &lt;br /&gt;
[https://drive.google.com/file/d/13hfO-2KUxpMnk8o0aLsJ8xO9IYfLzCHK/view?usp=sharing problem list 9]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/r9rP3ZojeqY 28.11] || Parameterized complexity: The classes FPT and XP. Kernelization. Examples for vertex cover.  [https://drive.google.com/file/d/1W9SU24HW0r5QhugzmrghpkzJUFuC8whq/view?usp=sharing Notes.] || [https://drive.google.com/file/d/1PpRK72BtyKYR0KVi03HDCy7HXvWpzcL6/view?usp=sharing problem list 10] &amp;lt;!-- [https://www.dropbox.com/scl/fi/x5gwdae4ny4u3zixoy4pw/student_vc_branching.ipynb?rlkey=5oowq1u3jhy490s84ogojg1s7&amp;amp;dl=0 programming task.] --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/E4aNlvbYoLQ 05.12] || Parameterized complexity: W-hierarchy, hardness from the exponential time hypothesis. [https://drive.google.com/file/d/1f-085Gr7E01HepUR-brGJDet-fXJzUwb/view?usp=sharing presentation] [https://drive.google.com/file/d/1OIw7h31N2tt-npC0NrvVgNhYGw_HlJa_/view?usp=sharing Notes] || [https://drive.google.com/file/d/1xhUYMsj0iV2TMZfR8FtkxWUNlcCjdS-N/view?usp=sharing problem list 11] &lt;br /&gt;
|- &lt;br /&gt;
 || 12.12 || &#039;&#039;Colloquium.&#039;&#039; [https://drive.google.com/file/d/1no8CbHKJluGRx7FROpSS7BqXdjOVgdT1/view?usp=sharing Rules and questions.] Version Dec 8th.  || [https://www.dropbox.com/s/37gdsbv2it8omnm/tc-sample-exam.pdf?dl=0 Sample exam] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Artem Perfanov&#039;s [https://drive.google.com/file/d/16_ZP0X9wwza1RsrXZZGQsx5Igwk_vY9r/view?usp=sharing lecture summaries] [https://drive.google.com/drive/folders/1XsNL2B69akd3A9qaOEgC09NiZXLP8Wbz?usp=drive_link source] (Disclaimer: I did not check them):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Date !! Software engineering: parameterized complexity, FPT algorithms !! Problem list&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/xDaTpuVF0Es 05.03] || Recap from last lecture. More examples of kernels: linear programming kernel for vertex cover problem.  [https://www.dropbox.com/scl/fi/x5gwdae4ny4u3zixoy4pw/student_vc_branching.ipynb?rlkey=5oowq1u3jhy490s84ogojg1s7&amp;amp;dl=0 programming task.] [https://www.dropbox.com/s/zzzaulpmzql7x7u/parameterizedComplexity.pdf?dl=0 presentation].|| [https://drive.google.com/file/d/1sXA5F4gUZ-KvigQspz0ScVLOA38ZcxHb/view?usp=sharing problem list 12] &lt;br /&gt;
&#039;&#039;Update 03.12&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/TBX8sWx7nO0 12.03] || Linear programming kernel for VC, color coding, dynamic programming. Colorcoding [https://drive.google.com/file/d/1RMoIpd6p_L1XXOVeV36g0pdJdbtltbPF/view?usp=sharing from slide 39]  || [https://drive.google.com/file/d/16wjIGqbS5UvEUZCxuUfGROUxk2RlLqZl/view?usp=sharing problem list 13] &lt;br /&gt;
|-&lt;br /&gt;
 || 19.03 || Optional: problems that are FPT on graphs with small treewidth.(No recording, sorry.) || [https://drive.google.com/file/d/1mYkshv6q-c_5nY5qfHgosKxBd1zDDvGK/view?usp=sharing problem list 14]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL8EKo81hBCTGfNPpZlIe7USiEPpZGYDte Recordings last year]&lt;br /&gt;
&lt;br /&gt;
Recording of the seminars are available here: [https://rutube.ru/plst/1243679/ link]&lt;br /&gt;
&lt;br /&gt;
= Exam =&lt;br /&gt;
&lt;br /&gt;
5 or 6 questions with the same difficulty as the homework questions. You have 3 hours time. &lt;br /&gt;
&lt;br /&gt;
Each year, 1 of the questions is to prove that some problem is NP-complete. Do not forget to say why the problem is in NP. &lt;br /&gt;
&lt;br /&gt;
Copies of Sipser&#039;s book, Arora&amp;amp;Barak, Mertens&amp;amp;Moore, will be available. (I you have these books or printed parts of them, please bring it.) Also, personal handwritten notes are allowed, but nothing else.  [https://www.dropbox.com/s/37gdsbv2it8omnm/tc-sample-exam.pdf?dl=0 Sample exam]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Project (for PI students) =&lt;br /&gt;
&lt;br /&gt;
During the 3rd module Januari till March 2024 there are projects where you need to implement algorithms from parameterized complexity. (For example, for the vertex cover algorithm and disjoint paths problems.) A grader will check whether your algorithm reaches certain time limits. &lt;br /&gt;
&lt;br /&gt;
There are 3 tasks: 2 of them about branching and kernelization, 1 task about linear programming bounds. See the table with lectures. The tasks have equal weight for the grade. &lt;br /&gt;
&lt;br /&gt;
Deadline March 31st, 23h59. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Additional reading = &lt;br /&gt;
&lt;br /&gt;
Recall that the most important book for our course is &#039;&#039;Sipser, Introduction to the theory of computation&#039;&#039; 3rd edition, 2013, chapters 3, 4, 7–9. This book is intended for Bachelor students. &lt;br /&gt;
&lt;br /&gt;
The following book is popular with students theoretical computer science, because it contains most materials of our course in a concise way. Moreover, it presents many important advanced topics. I find the style of some proofs rather technical, but I like the topics in this book. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;S. Arora and B. Barak, Computational Complexity: A Modern Approach, 2009&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The course materials can also be found in various chapters of the following massive book (700 pages). It starts at beginning bachelor level and ends at an advanced master level. It is written in a pleasant style with excellent examples.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;C. Moore and S. Mertens, The nature of computation, 2011.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This book gives an introduction to important recent research directions in computational hardness. It also studies specific topics (games and planar problems) in huge detail.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;E. Demaine, W Gasarch, Haijaghayi, Computational intractability: a guide to lower bounds, 2023&#039;&#039; [https://hardness.mit.edu/ current draft]&lt;br /&gt;
&lt;br /&gt;
This is an advanced textbook with background on parameterized algorithms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;M. Cygan, F. Fomin and 6 others, Parameterized algorithms, 2016&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Grading =&lt;br /&gt;
&lt;br /&gt;
For AMI students:&lt;br /&gt;
&lt;br /&gt;
 Final score = 0.35 * [score homework] + 0.35 * [score colloquium] + 0.3 * [score exam] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For PI students (the course is called &amp;quot;computational complexity&amp;quot; and takes 3 modules). There are 2 scores for this course. The first one, given in December is calculated by the above formula (but probably it does not mean anything, I will ask about it). The second score is given below, and it is the one that will be in the diploma. It includes a programming project. The assignment and grader, will be set up by the end of Februari, the deadline is the end of March.  &lt;br /&gt;
&lt;br /&gt;
 Final score = 0.3 * [score homework] + 0.3 * [score colloquium] + 0.2 * [score exam] + 0.2 * [score project] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some homework assignments contain extra problems. Each solution of an extra problem will give 0.5 extra points on the final exam (which is graded out of 10). There will be around 10 extra problems. Rounding is applied only when the final score is transferred to the official grade. Arithmetic rounding is used. Autogrades. If only 6/10 for the exam is needed to get a final score of 10/10, then this will be given automatically. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Office hours =&lt;br /&gt;
&lt;br /&gt;
Bruno Bauwens: Tuesday 15h -- 21h. Friday 15h -- 18h. &lt;br /&gt;
&lt;br /&gt;
Subin Pulari: Please contact via telegram or mail [mailto:spulari@hse.ru spulari@hse.ru]&lt;/div&gt;</summary>
		<author><name>Spulari</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2025&amp;diff=93048</id>
		<title>Theory of computation 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2025&amp;diff=93048"/>
		<updated>2025-10-13T15:08:58Z</updated>

		<summary type="html">&lt;p&gt;Spulari: /* Course Materials */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Classes =&lt;br /&gt;
&lt;br /&gt;
Lectures:  Friday 13h00 - 14h20 in Pokrovkaya, see [https://docs.google.com/spreadsheets/d/1EAbqb8wf48evEi5Bf2M0xmZXQSrpd_FJbsnevXDQxaQ/edit?gid=614347250#gid=614347250 here] for the room, and in [https://us02web.zoom.us/j/82300259484?pwd=NWxXekxBeE5yMm9UTmwvLzNNNGlnUT09 zoom] by [https://www.hse.ru/en/org/persons/160550073 Bruno Bauwens]. Starting 19.09.&lt;br /&gt;
&lt;br /&gt;
Seminars: Friday 14h40 - 16h00 in Pokrovkaya, see [https://docs.google.com/spreadsheets/d/1EAbqb8wf48evEi5Bf2M0xmZXQSrpd_FJbsnevXDQxaQ/edit?gid=614347250#gid=614347250 here] for the room, and in [https://us06web.zoom.us/j/84205097860?pwd=PQpzn1Oqf9G2fjO2vwcUVsMdCnRUuc.1 zoom] by Prof. Subin Pulari&lt;br /&gt;
&lt;br /&gt;
Telegram group for announcements and discussions [https://t.me/+7BOrITRebjk5MTc0 invite link.] The course is similar to [http://wiki.cs.hse.ru/Theory_of_computation_2024 last year&#039;s one].&lt;br /&gt;
&lt;br /&gt;
For students programming engineering this course is called &amp;quot;computational complexity theory&amp;quot; and the course has an extra part in the 3rd module. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Homeworks =&lt;br /&gt;
&lt;br /&gt;
Deadlines: every 2 weeks, before the lecture. Submit in pdf or fotos of handwritten text in [https://classroom.google.com/c/ODEwMjk4NDQxMTU1?cjc=n5dttaev google class]. &lt;br /&gt;
&lt;br /&gt;
Tasks are in the problem lists from the seminar. Deadlines: problem lists 1 and 2: at the start of 3rd lecture, lists 3 and 4 at the start of the 5th lecture, etc.&lt;br /&gt;
&lt;br /&gt;
Late policy: 1 homework can be submitted at most 24h late without explanations. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Course Materials =&lt;br /&gt;
&lt;br /&gt;
The main reference is Sipser&#039;s book &amp;quot;Introduction to the theory of computation&amp;quot;, chapters 3, 4, 7–9.&lt;br /&gt;
&lt;br /&gt;
If you need some background in math, consider&lt;br /&gt;
&amp;lt;!-- [http://www.cs.elte.hu/~lovasz/dmbook.ps Lecture notes: Discrete Mathematics], L. Lovasz, K. Vesztergombi and --&amp;gt;&lt;br /&gt;
[http://rubtsov.su/public/DM-HSE-Draft.pdf Лекции по дискретной математике].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Rec !! Summary !! Problem list&lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=-VIr385nKVk 19.09] || Turing machines, multitape Turing machines, connection between them. Universal Turing machine. Examples. Time and space complexity. Complexity classes P, PSPACE, EXP. (Recording from previous year.) [https://drive.google.com/file/d/1Xby_fNyeVwZtVY6yfVJLBYNCaZVbOP61/view?usp=drive_link Notes]|| [https://drive.google.com/file/d/1bf3hhE82uw5D0bQGajXHl1-FhhyG-XnY/view?usp=drive_link problem list 1]&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|| [https://www.youtube.com/watch?v=tnq5BkcGfk0 26.09] || Undecidability of the Halting problem. Time and space hierarchy theorems. See notes above. || [https://drive.google.com/file/d/1iyba3kM98oJCz5yvKmWRb0oOpIAhFPef/view?usp=drive_link problem list 2] &lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=VR_A62kFXH8 03.10] || Complexity class NP. Examples. Non-deterministic machines and another definition of NP. Polynomial reductions. NP-hardness and NP-completeness.  || [https://drive.google.com/file/d/17AF1Bj5I_S0XzwXkM4IeOugxX2Kr3i2u/view?usp=drive_link problem list 3]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://rutube.ru/video/585774c956d226dde80929ca0b39f13e 10.10] ||  NP-completenes of NAE-3SAT, 3colorability, subsetsum, knapsack, Hamiltonian cycle.  || [https://drive.google.com/file/d/1dVUT2KZ9hAyGBZITDJh3xtfLb992aX9L/view?usp=drive_link problem list 4] upd 10.10&lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=Jqy89FPbFj4 17.10] || Circuits: examples and all functions have exponential circuits. Classes P/poly, AC^i and NC^i. Some functions have exponential circuit complexity. NC1 = Boolean formulas of polynomial size. Addition in AC0. Multiplication is in NC1. P is in P/poly. 3SAT is NP-complete.  [https://drive.google.com/file/d/1Cqr4A6ohPLIaAVocG3jE6GYsNz4XgA4r/view?usp=drive_link circuit_notes.pdf] || [https://drive.google.com/file/d/15uGUYwI2GfNaEi0upjgjCqmclrWUk75c/view?usp=sharing problem list 5]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/kV86JYY8QXs 24.10] || Directed Reachability is in SPACE(log^2 n). TQBF problem, its PSPACE-completeness. PSPACE = NPSPACE. NSPACE(s(n)) is in SPACE(s(n)^2) for space constructible s.|| [https://drive.google.com/file/d/1-vKS0TEAD05ol2BbFpbN510TbKhucBiw/view?usp=sharing problem list 6]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/W_uZuQXm53c 07.11] || Oracle computation definitions. There exists an oracle &#039;&#039;A&#039;&#039; for which P&amp;lt;sup&amp;gt;&#039;&#039;A&#039;&#039;&amp;lt;/sup&amp;gt; = NP&amp;lt;sup&amp;gt;&#039;&#039;A&#039;&#039;&amp;lt;/sup&amp;gt;. There is an oracle B such that P&amp;lt;sup&amp;gt;&#039;&#039;B&#039;&#039;&amp;lt;/sup&amp;gt; is not equal to NP&amp;lt;sup&amp;gt;&#039;&#039;B&#039;&#039;&amp;lt;/sup&amp;gt;. || [https://drive.google.com/file/d/1T9mp2AuPV2YOQ0juTMd9g0VjczHvdnSB/view?usp=sharing problem list 7]&lt;br /&gt;
|- &lt;br /&gt;
|| [https://youtube.com/live/ALO6r52wuIU 14.11] ||  Probabilistic computation. Probabilistic machines, the class BPP, invariance of the definition BPP for different thresholds, RP, coRP, PP, ZPP. BPP is in P/poly. Most of it is also [https://www.youtube.com/watch?v=YSMgVbOqB-8&amp;amp;list=PLm3J0oaFux3YL5vLXpzOyJiLtqLp6dCW2&amp;amp;index=23 here] and [https://www.cs.cmu.edu/afs/cs/academic/class/15859-f04/www/scribes/lec2.pdf scribe1] [https://lucatrevisan.github.io/cs278-04/notes/lecture08.pdf scribe2] || [https://drive.google.com/file/d/1RlrxybN_p9X1WswJet9jpp9jPQLDYdpy/view?usp=sharing problem list 8]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=X67F8P0dcAA 21.11] || Approximation algorithms. Definition c-approximation algorithm. 2-approximation for vertex cover and greedy vertex cover is not optimal. (ln n + 1)-approximation for set cover. PTAS for the makespan problem. Based on [https://www.youtube.com/watch?v=MEz1J9wY2iM&amp;amp;pp=ygUYYXBwcm94aW1hdGlvbiBhbGdvcml0aG1z MIT lecture].|| &lt;br /&gt;
[https://drive.google.com/file/d/13hfO-2KUxpMnk8o0aLsJ8xO9IYfLzCHK/view?usp=sharing problem list 9]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/r9rP3ZojeqY 28.11] || Parameterized complexity: The classes FPT and XP. Kernelization. Examples for vertex cover.  [https://drive.google.com/file/d/1W9SU24HW0r5QhugzmrghpkzJUFuC8whq/view?usp=sharing Notes.] || [https://drive.google.com/file/d/1PpRK72BtyKYR0KVi03HDCy7HXvWpzcL6/view?usp=sharing problem list 10] &amp;lt;!-- [https://www.dropbox.com/scl/fi/x5gwdae4ny4u3zixoy4pw/student_vc_branching.ipynb?rlkey=5oowq1u3jhy490s84ogojg1s7&amp;amp;dl=0 programming task.] --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/E4aNlvbYoLQ 05.12] || Parameterized complexity: W-hierarchy, hardness from the exponential time hypothesis. [https://drive.google.com/file/d/1f-085Gr7E01HepUR-brGJDet-fXJzUwb/view?usp=sharing presentation] [https://drive.google.com/file/d/1OIw7h31N2tt-npC0NrvVgNhYGw_HlJa_/view?usp=sharing Notes] || [https://drive.google.com/file/d/1xhUYMsj0iV2TMZfR8FtkxWUNlcCjdS-N/view?usp=sharing problem list 11] &lt;br /&gt;
|- &lt;br /&gt;
 || 12.12 || &#039;&#039;Colloquium.&#039;&#039; [https://drive.google.com/file/d/1no8CbHKJluGRx7FROpSS7BqXdjOVgdT1/view?usp=sharing Rules and questions.] Version Dec 8th.  || [https://www.dropbox.com/s/37gdsbv2it8omnm/tc-sample-exam.pdf?dl=0 Sample exam] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Artem Perfanov&#039;s [https://drive.google.com/file/d/16_ZP0X9wwza1RsrXZZGQsx5Igwk_vY9r/view?usp=sharing lecture summaries] [https://drive.google.com/drive/folders/1XsNL2B69akd3A9qaOEgC09NiZXLP8Wbz?usp=drive_link source] (Disclaimer: I did not check them):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Date !! Software engineering: parameterized complexity, FPT algorithms !! Problem list&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/xDaTpuVF0Es 05.03] || Recap from last lecture. More examples of kernels: linear programming kernel for vertex cover problem.  [https://www.dropbox.com/scl/fi/x5gwdae4ny4u3zixoy4pw/student_vc_branching.ipynb?rlkey=5oowq1u3jhy490s84ogojg1s7&amp;amp;dl=0 programming task.] [https://www.dropbox.com/s/zzzaulpmzql7x7u/parameterizedComplexity.pdf?dl=0 presentation].|| [https://drive.google.com/file/d/1sXA5F4gUZ-KvigQspz0ScVLOA38ZcxHb/view?usp=sharing problem list 12] &lt;br /&gt;
&#039;&#039;Update 03.12&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/TBX8sWx7nO0 12.03] || Linear programming kernel for VC, color coding, dynamic programming. Colorcoding [https://drive.google.com/file/d/1RMoIpd6p_L1XXOVeV36g0pdJdbtltbPF/view?usp=sharing from slide 39]  || [https://drive.google.com/file/d/16wjIGqbS5UvEUZCxuUfGROUxk2RlLqZl/view?usp=sharing problem list 13] &lt;br /&gt;
|-&lt;br /&gt;
 || 19.03 || Optional: problems that are FPT on graphs with small treewidth.(No recording, sorry.) || [https://drive.google.com/file/d/1mYkshv6q-c_5nY5qfHgosKxBd1zDDvGK/view?usp=sharing problem list 14]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL8EKo81hBCTGfNPpZlIe7USiEPpZGYDte Recordings last year]&lt;br /&gt;
&lt;br /&gt;
Recording of the seminars are available here: [https://rutube.ru/plst/1243679 link]&lt;br /&gt;
&lt;br /&gt;
= Exam =&lt;br /&gt;
&lt;br /&gt;
5 or 6 questions with the same difficulty as the homework questions. You have 3 hours time. &lt;br /&gt;
&lt;br /&gt;
Each year, 1 of the questions is to prove that some problem is NP-complete. Do not forget to say why the problem is in NP. &lt;br /&gt;
&lt;br /&gt;
Copies of Sipser&#039;s book, Arora&amp;amp;Barak, Mertens&amp;amp;Moore, will be available. (I you have these books or printed parts of them, please bring it.) Also, personal handwritten notes are allowed, but nothing else.  [https://www.dropbox.com/s/37gdsbv2it8omnm/tc-sample-exam.pdf?dl=0 Sample exam]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Project (for PI students) =&lt;br /&gt;
&lt;br /&gt;
During the 3rd module Januari till March 2024 there are projects where you need to implement algorithms from parameterized complexity. (For example, for the vertex cover algorithm and disjoint paths problems.) A grader will check whether your algorithm reaches certain time limits. &lt;br /&gt;
&lt;br /&gt;
There are 3 tasks: 2 of them about branching and kernelization, 1 task about linear programming bounds. See the table with lectures. The tasks have equal weight for the grade. &lt;br /&gt;
&lt;br /&gt;
Deadline March 31st, 23h59. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Additional reading = &lt;br /&gt;
&lt;br /&gt;
Recall that the most important book for our course is &#039;&#039;Sipser, Introduction to the theory of computation&#039;&#039; 3rd edition, 2013, chapters 3, 4, 7–9. This book is intended for Bachelor students. &lt;br /&gt;
&lt;br /&gt;
The following book is popular with students theoretical computer science, because it contains most materials of our course in a concise way. Moreover, it presents many important advanced topics. I find the style of some proofs rather technical, but I like the topics in this book. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;S. Arora and B. Barak, Computational Complexity: A Modern Approach, 2009&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The course materials can also be found in various chapters of the following massive book (700 pages). It starts at beginning bachelor level and ends at an advanced master level. It is written in a pleasant style with excellent examples.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;C. Moore and S. Mertens, The nature of computation, 2011.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This book gives an introduction to important recent research directions in computational hardness. It also studies specific topics (games and planar problems) in huge detail.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;E. Demaine, W Gasarch, Haijaghayi, Computational intractability: a guide to lower bounds, 2023&#039;&#039; [https://hardness.mit.edu/ current draft]&lt;br /&gt;
&lt;br /&gt;
This is an advanced textbook with background on parameterized algorithms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;M. Cygan, F. Fomin and 6 others, Parameterized algorithms, 2016&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Grading =&lt;br /&gt;
&lt;br /&gt;
For AMI students:&lt;br /&gt;
&lt;br /&gt;
 Final score = 0.35 * [score homework] + 0.35 * [score colloquium] + 0.3 * [score exam] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For PI students (the course is called &amp;quot;computational complexity&amp;quot; and takes 3 modules). There are 2 scores for this course. The first one, given in December is calculated by the above formula (but probably it does not mean anything, I will ask about it). The second score is given below, and it is the one that will be in the diploma. It includes a programming project. The assignment and grader, will be set up by the end of Februari, the deadline is the end of March.  &lt;br /&gt;
&lt;br /&gt;
 Final score = 0.3 * [score homework] + 0.3 * [score colloquium] + 0.2 * [score exam] + 0.2 * [score project] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some homework assignments contain extra problems. Each solution of an extra problem will give 0.5 extra points on the final exam (which is graded out of 10). There will be around 10 extra problems. Rounding is applied only when the final score is transferred to the official grade. Arithmetic rounding is used. Autogrades. If only 6/10 for the exam is needed to get a final score of 10/10, then this will be given automatically. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Office hours =&lt;br /&gt;
&lt;br /&gt;
Bruno Bauwens: Tuesday 15h -- 21h. Friday 15h -- 18h. &lt;br /&gt;
&lt;br /&gt;
Subin Pulari: Please contact via telegram or mail [mailto:spulari@hse.ru spulari@hse.ru]&lt;/div&gt;</summary>
		<author><name>Spulari</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2025&amp;diff=93047</id>
		<title>Theory of computation 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2025&amp;diff=93047"/>
		<updated>2025-10-13T14:31:35Z</updated>

		<summary type="html">&lt;p&gt;Spulari: /* Office hours */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Classes =&lt;br /&gt;
&lt;br /&gt;
Lectures:  Friday 13h00 - 14h20 in Pokrovkaya, see [https://docs.google.com/spreadsheets/d/1EAbqb8wf48evEi5Bf2M0xmZXQSrpd_FJbsnevXDQxaQ/edit?gid=614347250#gid=614347250 here] for the room, and in [https://us02web.zoom.us/j/82300259484?pwd=NWxXekxBeE5yMm9UTmwvLzNNNGlnUT09 zoom] by [https://www.hse.ru/en/org/persons/160550073 Bruno Bauwens]. Starting 19.09.&lt;br /&gt;
&lt;br /&gt;
Seminars: Friday 14h40 - 16h00 in Pokrovkaya, see [https://docs.google.com/spreadsheets/d/1EAbqb8wf48evEi5Bf2M0xmZXQSrpd_FJbsnevXDQxaQ/edit?gid=614347250#gid=614347250 here] for the room, and in [https://us06web.zoom.us/j/84205097860?pwd=PQpzn1Oqf9G2fjO2vwcUVsMdCnRUuc.1 zoom] by Prof. Subin Pulari&lt;br /&gt;
&lt;br /&gt;
Telegram group for announcements and discussions [https://t.me/+7BOrITRebjk5MTc0 invite link.] The course is similar to [http://wiki.cs.hse.ru/Theory_of_computation_2024 last year&#039;s one].&lt;br /&gt;
&lt;br /&gt;
For students programming engineering this course is called &amp;quot;computational complexity theory&amp;quot; and the course has an extra part in the 3rd module. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Homeworks =&lt;br /&gt;
&lt;br /&gt;
Deadlines: every 2 weeks, before the lecture. Submit in pdf or fotos of handwritten text in [https://classroom.google.com/c/ODEwMjk4NDQxMTU1?cjc=n5dttaev google class]. &lt;br /&gt;
&lt;br /&gt;
Tasks are in the problem lists from the seminar. Deadlines: problem lists 1 and 2: at the start of 3rd lecture, lists 3 and 4 at the start of the 5th lecture, etc.&lt;br /&gt;
&lt;br /&gt;
Late policy: 1 homework can be submitted at most 24h late without explanations. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Course Materials =&lt;br /&gt;
&lt;br /&gt;
The main reference is Sipser&#039;s book &amp;quot;Introduction to the theory of computation&amp;quot;, chapters 3, 4, 7–9.&lt;br /&gt;
&lt;br /&gt;
If you need some background in math, consider&lt;br /&gt;
&amp;lt;!-- [http://www.cs.elte.hu/~lovasz/dmbook.ps Lecture notes: Discrete Mathematics], L. Lovasz, K. Vesztergombi and --&amp;gt;&lt;br /&gt;
[http://rubtsov.su/public/DM-HSE-Draft.pdf Лекции по дискретной математике].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Rec !! Summary !! Problem list&lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=-VIr385nKVk 19.09] || Turing machines, multitape Turing machines, connection between them. Universal Turing machine. Examples. Time and space complexity. Complexity classes P, PSPACE, EXP. (Recording from previous year.) [https://drive.google.com/file/d/1Xby_fNyeVwZtVY6yfVJLBYNCaZVbOP61/view?usp=drive_link Notes]|| [https://drive.google.com/file/d/1bf3hhE82uw5D0bQGajXHl1-FhhyG-XnY/view?usp=drive_link problem list 1]&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|| [https://www.youtube.com/watch?v=tnq5BkcGfk0 26.09] || Undecidability of the Halting problem. Time and space hierarchy theorems. See notes above. || [https://drive.google.com/file/d/1iyba3kM98oJCz5yvKmWRb0oOpIAhFPef/view?usp=drive_link problem list 2] &lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=VR_A62kFXH8 03.10] || Complexity class NP. Examples. Non-deterministic machines and another definition of NP. Polynomial reductions. NP-hardness and NP-completeness.  || [https://drive.google.com/file/d/17AF1Bj5I_S0XzwXkM4IeOugxX2Kr3i2u/view?usp=drive_link problem list 3]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://rutube.ru/video/585774c956d226dde80929ca0b39f13e 10.10] ||  NP-completenes of NAE-3SAT, 3colorability, subsetsum, knapsack, Hamiltonian cycle.  || [https://drive.google.com/file/d/1dVUT2KZ9hAyGBZITDJh3xtfLb992aX9L/view?usp=drive_link problem list 4] upd 10.10&lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=Jqy89FPbFj4 17.10] || Circuits: examples and all functions have exponential circuits. Classes P/poly, AC^i and NC^i. Some functions have exponential circuit complexity. NC1 = Boolean formulas of polynomial size. Addition in AC0. Multiplication is in NC1. P is in P/poly. 3SAT is NP-complete.  [https://drive.google.com/file/d/1Cqr4A6ohPLIaAVocG3jE6GYsNz4XgA4r/view?usp=drive_link circuit_notes.pdf] || [https://drive.google.com/file/d/15uGUYwI2GfNaEi0upjgjCqmclrWUk75c/view?usp=sharing problem list 5]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/kV86JYY8QXs 24.10] || Directed Reachability is in SPACE(log^2 n). TQBF problem, its PSPACE-completeness. PSPACE = NPSPACE. NSPACE(s(n)) is in SPACE(s(n)^2) for space constructible s.|| [https://drive.google.com/file/d/1-vKS0TEAD05ol2BbFpbN510TbKhucBiw/view?usp=sharing problem list 6]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/W_uZuQXm53c 07.11] || Oracle computation definitions. There exists an oracle &#039;&#039;A&#039;&#039; for which P&amp;lt;sup&amp;gt;&#039;&#039;A&#039;&#039;&amp;lt;/sup&amp;gt; = NP&amp;lt;sup&amp;gt;&#039;&#039;A&#039;&#039;&amp;lt;/sup&amp;gt;. There is an oracle B such that P&amp;lt;sup&amp;gt;&#039;&#039;B&#039;&#039;&amp;lt;/sup&amp;gt; is not equal to NP&amp;lt;sup&amp;gt;&#039;&#039;B&#039;&#039;&amp;lt;/sup&amp;gt;. || [https://drive.google.com/file/d/1T9mp2AuPV2YOQ0juTMd9g0VjczHvdnSB/view?usp=sharing problem list 7]&lt;br /&gt;
|- &lt;br /&gt;
|| [https://youtube.com/live/ALO6r52wuIU 14.11] ||  Probabilistic computation. Probabilistic machines, the class BPP, invariance of the definition BPP for different thresholds, RP, coRP, PP, ZPP. BPP is in P/poly. Most of it is also [https://www.youtube.com/watch?v=YSMgVbOqB-8&amp;amp;list=PLm3J0oaFux3YL5vLXpzOyJiLtqLp6dCW2&amp;amp;index=23 here] and [https://www.cs.cmu.edu/afs/cs/academic/class/15859-f04/www/scribes/lec2.pdf scribe1] [https://lucatrevisan.github.io/cs278-04/notes/lecture08.pdf scribe2] || [https://drive.google.com/file/d/1RlrxybN_p9X1WswJet9jpp9jPQLDYdpy/view?usp=sharing problem list 8]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=X67F8P0dcAA 21.11] || Approximation algorithms. Definition c-approximation algorithm. 2-approximation for vertex cover and greedy vertex cover is not optimal. (ln n + 1)-approximation for set cover. PTAS for the makespan problem. Based on [https://www.youtube.com/watch?v=MEz1J9wY2iM&amp;amp;pp=ygUYYXBwcm94aW1hdGlvbiBhbGdvcml0aG1z MIT lecture].|| &lt;br /&gt;
[https://drive.google.com/file/d/13hfO-2KUxpMnk8o0aLsJ8xO9IYfLzCHK/view?usp=sharing problem list 9]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/r9rP3ZojeqY 28.11] || Parameterized complexity: The classes FPT and XP. Kernelization. Examples for vertex cover.  [https://drive.google.com/file/d/1W9SU24HW0r5QhugzmrghpkzJUFuC8whq/view?usp=sharing Notes.] || [https://drive.google.com/file/d/1PpRK72BtyKYR0KVi03HDCy7HXvWpzcL6/view?usp=sharing problem list 10] &amp;lt;!-- [https://www.dropbox.com/scl/fi/x5gwdae4ny4u3zixoy4pw/student_vc_branching.ipynb?rlkey=5oowq1u3jhy490s84ogojg1s7&amp;amp;dl=0 programming task.] --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/E4aNlvbYoLQ 05.12] || Parameterized complexity: W-hierarchy, hardness from the exponential time hypothesis. [https://drive.google.com/file/d/1f-085Gr7E01HepUR-brGJDet-fXJzUwb/view?usp=sharing presentation] [https://drive.google.com/file/d/1OIw7h31N2tt-npC0NrvVgNhYGw_HlJa_/view?usp=sharing Notes] || [https://drive.google.com/file/d/1xhUYMsj0iV2TMZfR8FtkxWUNlcCjdS-N/view?usp=sharing problem list 11] &lt;br /&gt;
|- &lt;br /&gt;
 || 12.12 || &#039;&#039;Colloquium.&#039;&#039; [https://drive.google.com/file/d/1no8CbHKJluGRx7FROpSS7BqXdjOVgdT1/view?usp=sharing Rules and questions.] Version Dec 8th.  || [https://www.dropbox.com/s/37gdsbv2it8omnm/tc-sample-exam.pdf?dl=0 Sample exam] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Artem Perfanov&#039;s [https://drive.google.com/file/d/16_ZP0X9wwza1RsrXZZGQsx5Igwk_vY9r/view?usp=sharing lecture summaries] [https://drive.google.com/drive/folders/1XsNL2B69akd3A9qaOEgC09NiZXLP8Wbz?usp=drive_link source] (Disclaimer: I did not check them):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Date !! Software engineering: parameterized complexity, FPT algorithms !! Problem list&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/xDaTpuVF0Es 05.03] || Recap from last lecture. More examples of kernels: linear programming kernel for vertex cover problem.  [https://www.dropbox.com/scl/fi/x5gwdae4ny4u3zixoy4pw/student_vc_branching.ipynb?rlkey=5oowq1u3jhy490s84ogojg1s7&amp;amp;dl=0 programming task.] [https://www.dropbox.com/s/zzzaulpmzql7x7u/parameterizedComplexity.pdf?dl=0 presentation].|| [https://drive.google.com/file/d/1sXA5F4gUZ-KvigQspz0ScVLOA38ZcxHb/view?usp=sharing problem list 12] &lt;br /&gt;
&#039;&#039;Update 03.12&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/TBX8sWx7nO0 12.03] || Linear programming kernel for VC, color coding, dynamic programming. Colorcoding [https://drive.google.com/file/d/1RMoIpd6p_L1XXOVeV36g0pdJdbtltbPF/view?usp=sharing from slide 39]  || [https://drive.google.com/file/d/16wjIGqbS5UvEUZCxuUfGROUxk2RlLqZl/view?usp=sharing problem list 13] &lt;br /&gt;
|-&lt;br /&gt;
 || 19.03 || Optional: problems that are FPT on graphs with small treewidth.(No recording, sorry.) || [https://drive.google.com/file/d/1mYkshv6q-c_5nY5qfHgosKxBd1zDDvGK/view?usp=sharing problem list 14]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL8EKo81hBCTGfNPpZlIe7USiEPpZGYDte Recordings last year]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Exam =&lt;br /&gt;
&lt;br /&gt;
5 or 6 questions with the same difficulty as the homework questions. You have 3 hours time. &lt;br /&gt;
&lt;br /&gt;
Each year, 1 of the questions is to prove that some problem is NP-complete. Do not forget to say why the problem is in NP. &lt;br /&gt;
&lt;br /&gt;
Copies of Sipser&#039;s book, Arora&amp;amp;Barak, Mertens&amp;amp;Moore, will be available. (I you have these books or printed parts of them, please bring it.) Also, personal handwritten notes are allowed, but nothing else.  [https://www.dropbox.com/s/37gdsbv2it8omnm/tc-sample-exam.pdf?dl=0 Sample exam]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Project (for PI students) =&lt;br /&gt;
&lt;br /&gt;
During the 3rd module Januari till March 2024 there are projects where you need to implement algorithms from parameterized complexity. (For example, for the vertex cover algorithm and disjoint paths problems.) A grader will check whether your algorithm reaches certain time limits. &lt;br /&gt;
&lt;br /&gt;
There are 3 tasks: 2 of them about branching and kernelization, 1 task about linear programming bounds. See the table with lectures. The tasks have equal weight for the grade. &lt;br /&gt;
&lt;br /&gt;
Deadline March 31st, 23h59. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Additional reading = &lt;br /&gt;
&lt;br /&gt;
Recall that the most important book for our course is &#039;&#039;Sipser, Introduction to the theory of computation&#039;&#039; 3rd edition, 2013, chapters 3, 4, 7–9. This book is intended for Bachelor students. &lt;br /&gt;
&lt;br /&gt;
The following book is popular with students theoretical computer science, because it contains most materials of our course in a concise way. Moreover, it presents many important advanced topics. I find the style of some proofs rather technical, but I like the topics in this book. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;S. Arora and B. Barak, Computational Complexity: A Modern Approach, 2009&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The course materials can also be found in various chapters of the following massive book (700 pages). It starts at beginning bachelor level and ends at an advanced master level. It is written in a pleasant style with excellent examples.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;C. Moore and S. Mertens, The nature of computation, 2011.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This book gives an introduction to important recent research directions in computational hardness. It also studies specific topics (games and planar problems) in huge detail.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;E. Demaine, W Gasarch, Haijaghayi, Computational intractability: a guide to lower bounds, 2023&#039;&#039; [https://hardness.mit.edu/ current draft]&lt;br /&gt;
&lt;br /&gt;
This is an advanced textbook with background on parameterized algorithms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;M. Cygan, F. Fomin and 6 others, Parameterized algorithms, 2016&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Grading =&lt;br /&gt;
&lt;br /&gt;
For AMI students:&lt;br /&gt;
&lt;br /&gt;
 Final score = 0.35 * [score homework] + 0.35 * [score colloquium] + 0.3 * [score exam] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For PI students (the course is called &amp;quot;computational complexity&amp;quot; and takes 3 modules). There are 2 scores for this course. The first one, given in December is calculated by the above formula (but probably it does not mean anything, I will ask about it). The second score is given below, and it is the one that will be in the diploma. It includes a programming project. The assignment and grader, will be set up by the end of Februari, the deadline is the end of March.  &lt;br /&gt;
&lt;br /&gt;
 Final score = 0.3 * [score homework] + 0.3 * [score colloquium] + 0.2 * [score exam] + 0.2 * [score project] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some homework assignments contain extra problems. Each solution of an extra problem will give 0.5 extra points on the final exam (which is graded out of 10). There will be around 10 extra problems. Rounding is applied only when the final score is transferred to the official grade. Arithmetic rounding is used. Autogrades. If only 6/10 for the exam is needed to get a final score of 10/10, then this will be given automatically. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Office hours =&lt;br /&gt;
&lt;br /&gt;
Bruno Bauwens: Tuesday 15h -- 21h. Friday 15h -- 18h. &lt;br /&gt;
&lt;br /&gt;
Subin Pulari: Please contact via telegram or mail [mailto:spulari@hse.ru spulari@hse.ru]&lt;/div&gt;</summary>
		<author><name>Spulari</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2025&amp;diff=93046</id>
		<title>Theory of computation 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2025&amp;diff=93046"/>
		<updated>2025-10-13T14:30:50Z</updated>

		<summary type="html">&lt;p&gt;Spulari: /* Office hours */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Classes =&lt;br /&gt;
&lt;br /&gt;
Lectures:  Friday 13h00 - 14h20 in Pokrovkaya, see [https://docs.google.com/spreadsheets/d/1EAbqb8wf48evEi5Bf2M0xmZXQSrpd_FJbsnevXDQxaQ/edit?gid=614347250#gid=614347250 here] for the room, and in [https://us02web.zoom.us/j/82300259484?pwd=NWxXekxBeE5yMm9UTmwvLzNNNGlnUT09 zoom] by [https://www.hse.ru/en/org/persons/160550073 Bruno Bauwens]. Starting 19.09.&lt;br /&gt;
&lt;br /&gt;
Seminars: Friday 14h40 - 16h00 in Pokrovkaya, see [https://docs.google.com/spreadsheets/d/1EAbqb8wf48evEi5Bf2M0xmZXQSrpd_FJbsnevXDQxaQ/edit?gid=614347250#gid=614347250 here] for the room, and in [https://us06web.zoom.us/j/84205097860?pwd=PQpzn1Oqf9G2fjO2vwcUVsMdCnRUuc.1 zoom] by Prof. Subin Pulari&lt;br /&gt;
&lt;br /&gt;
Telegram group for announcements and discussions [https://t.me/+7BOrITRebjk5MTc0 invite link.] The course is similar to [http://wiki.cs.hse.ru/Theory_of_computation_2024 last year&#039;s one].&lt;br /&gt;
&lt;br /&gt;
For students programming engineering this course is called &amp;quot;computational complexity theory&amp;quot; and the course has an extra part in the 3rd module. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Homeworks =&lt;br /&gt;
&lt;br /&gt;
Deadlines: every 2 weeks, before the lecture. Submit in pdf or fotos of handwritten text in [https://classroom.google.com/c/ODEwMjk4NDQxMTU1?cjc=n5dttaev google class]. &lt;br /&gt;
&lt;br /&gt;
Tasks are in the problem lists from the seminar. Deadlines: problem lists 1 and 2: at the start of 3rd lecture, lists 3 and 4 at the start of the 5th lecture, etc.&lt;br /&gt;
&lt;br /&gt;
Late policy: 1 homework can be submitted at most 24h late without explanations. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Course Materials =&lt;br /&gt;
&lt;br /&gt;
The main reference is Sipser&#039;s book &amp;quot;Introduction to the theory of computation&amp;quot;, chapters 3, 4, 7–9.&lt;br /&gt;
&lt;br /&gt;
If you need some background in math, consider&lt;br /&gt;
&amp;lt;!-- [http://www.cs.elte.hu/~lovasz/dmbook.ps Lecture notes: Discrete Mathematics], L. Lovasz, K. Vesztergombi and --&amp;gt;&lt;br /&gt;
[http://rubtsov.su/public/DM-HSE-Draft.pdf Лекции по дискретной математике].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Rec !! Summary !! Problem list&lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=-VIr385nKVk 19.09] || Turing machines, multitape Turing machines, connection between them. Universal Turing machine. Examples. Time and space complexity. Complexity classes P, PSPACE, EXP. (Recording from previous year.) [https://drive.google.com/file/d/1Xby_fNyeVwZtVY6yfVJLBYNCaZVbOP61/view?usp=drive_link Notes]|| [https://drive.google.com/file/d/1bf3hhE82uw5D0bQGajXHl1-FhhyG-XnY/view?usp=drive_link problem list 1]&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|| [https://www.youtube.com/watch?v=tnq5BkcGfk0 26.09] || Undecidability of the Halting problem. Time and space hierarchy theorems. See notes above. || [https://drive.google.com/file/d/1iyba3kM98oJCz5yvKmWRb0oOpIAhFPef/view?usp=drive_link problem list 2] &lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=VR_A62kFXH8 03.10] || Complexity class NP. Examples. Non-deterministic machines and another definition of NP. Polynomial reductions. NP-hardness and NP-completeness.  || [https://drive.google.com/file/d/17AF1Bj5I_S0XzwXkM4IeOugxX2Kr3i2u/view?usp=drive_link problem list 3]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://rutube.ru/video/585774c956d226dde80929ca0b39f13e 10.10] ||  NP-completenes of NAE-3SAT, 3colorability, subsetsum, knapsack, Hamiltonian cycle.  || [https://drive.google.com/file/d/1dVUT2KZ9hAyGBZITDJh3xtfLb992aX9L/view?usp=drive_link problem list 4] upd 10.10&lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=Jqy89FPbFj4 17.10] || Circuits: examples and all functions have exponential circuits. Classes P/poly, AC^i and NC^i. Some functions have exponential circuit complexity. NC1 = Boolean formulas of polynomial size. Addition in AC0. Multiplication is in NC1. P is in P/poly. 3SAT is NP-complete.  [https://drive.google.com/file/d/1Cqr4A6ohPLIaAVocG3jE6GYsNz4XgA4r/view?usp=drive_link circuit_notes.pdf] || [https://drive.google.com/file/d/15uGUYwI2GfNaEi0upjgjCqmclrWUk75c/view?usp=sharing problem list 5]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/kV86JYY8QXs 24.10] || Directed Reachability is in SPACE(log^2 n). TQBF problem, its PSPACE-completeness. PSPACE = NPSPACE. NSPACE(s(n)) is in SPACE(s(n)^2) for space constructible s.|| [https://drive.google.com/file/d/1-vKS0TEAD05ol2BbFpbN510TbKhucBiw/view?usp=sharing problem list 6]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/W_uZuQXm53c 07.11] || Oracle computation definitions. There exists an oracle &#039;&#039;A&#039;&#039; for which P&amp;lt;sup&amp;gt;&#039;&#039;A&#039;&#039;&amp;lt;/sup&amp;gt; = NP&amp;lt;sup&amp;gt;&#039;&#039;A&#039;&#039;&amp;lt;/sup&amp;gt;. There is an oracle B such that P&amp;lt;sup&amp;gt;&#039;&#039;B&#039;&#039;&amp;lt;/sup&amp;gt; is not equal to NP&amp;lt;sup&amp;gt;&#039;&#039;B&#039;&#039;&amp;lt;/sup&amp;gt;. || [https://drive.google.com/file/d/1T9mp2AuPV2YOQ0juTMd9g0VjczHvdnSB/view?usp=sharing problem list 7]&lt;br /&gt;
|- &lt;br /&gt;
|| [https://youtube.com/live/ALO6r52wuIU 14.11] ||  Probabilistic computation. Probabilistic machines, the class BPP, invariance of the definition BPP for different thresholds, RP, coRP, PP, ZPP. BPP is in P/poly. Most of it is also [https://www.youtube.com/watch?v=YSMgVbOqB-8&amp;amp;list=PLm3J0oaFux3YL5vLXpzOyJiLtqLp6dCW2&amp;amp;index=23 here] and [https://www.cs.cmu.edu/afs/cs/academic/class/15859-f04/www/scribes/lec2.pdf scribe1] [https://lucatrevisan.github.io/cs278-04/notes/lecture08.pdf scribe2] || [https://drive.google.com/file/d/1RlrxybN_p9X1WswJet9jpp9jPQLDYdpy/view?usp=sharing problem list 8]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=X67F8P0dcAA 21.11] || Approximation algorithms. Definition c-approximation algorithm. 2-approximation for vertex cover and greedy vertex cover is not optimal. (ln n + 1)-approximation for set cover. PTAS for the makespan problem. Based on [https://www.youtube.com/watch?v=MEz1J9wY2iM&amp;amp;pp=ygUYYXBwcm94aW1hdGlvbiBhbGdvcml0aG1z MIT lecture].|| &lt;br /&gt;
[https://drive.google.com/file/d/13hfO-2KUxpMnk8o0aLsJ8xO9IYfLzCHK/view?usp=sharing problem list 9]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/r9rP3ZojeqY 28.11] || Parameterized complexity: The classes FPT and XP. Kernelization. Examples for vertex cover.  [https://drive.google.com/file/d/1W9SU24HW0r5QhugzmrghpkzJUFuC8whq/view?usp=sharing Notes.] || [https://drive.google.com/file/d/1PpRK72BtyKYR0KVi03HDCy7HXvWpzcL6/view?usp=sharing problem list 10] &amp;lt;!-- [https://www.dropbox.com/scl/fi/x5gwdae4ny4u3zixoy4pw/student_vc_branching.ipynb?rlkey=5oowq1u3jhy490s84ogojg1s7&amp;amp;dl=0 programming task.] --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/E4aNlvbYoLQ 05.12] || Parameterized complexity: W-hierarchy, hardness from the exponential time hypothesis. [https://drive.google.com/file/d/1f-085Gr7E01HepUR-brGJDet-fXJzUwb/view?usp=sharing presentation] [https://drive.google.com/file/d/1OIw7h31N2tt-npC0NrvVgNhYGw_HlJa_/view?usp=sharing Notes] || [https://drive.google.com/file/d/1xhUYMsj0iV2TMZfR8FtkxWUNlcCjdS-N/view?usp=sharing problem list 11] &lt;br /&gt;
|- &lt;br /&gt;
 || 12.12 || &#039;&#039;Colloquium.&#039;&#039; [https://drive.google.com/file/d/1no8CbHKJluGRx7FROpSS7BqXdjOVgdT1/view?usp=sharing Rules and questions.] Version Dec 8th.  || [https://www.dropbox.com/s/37gdsbv2it8omnm/tc-sample-exam.pdf?dl=0 Sample exam] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Artem Perfanov&#039;s [https://drive.google.com/file/d/16_ZP0X9wwza1RsrXZZGQsx5Igwk_vY9r/view?usp=sharing lecture summaries] [https://drive.google.com/drive/folders/1XsNL2B69akd3A9qaOEgC09NiZXLP8Wbz?usp=drive_link source] (Disclaimer: I did not check them):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Date !! Software engineering: parameterized complexity, FPT algorithms !! Problem list&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/xDaTpuVF0Es 05.03] || Recap from last lecture. More examples of kernels: linear programming kernel for vertex cover problem.  [https://www.dropbox.com/scl/fi/x5gwdae4ny4u3zixoy4pw/student_vc_branching.ipynb?rlkey=5oowq1u3jhy490s84ogojg1s7&amp;amp;dl=0 programming task.] [https://www.dropbox.com/s/zzzaulpmzql7x7u/parameterizedComplexity.pdf?dl=0 presentation].|| [https://drive.google.com/file/d/1sXA5F4gUZ-KvigQspz0ScVLOA38ZcxHb/view?usp=sharing problem list 12] &lt;br /&gt;
&#039;&#039;Update 03.12&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/TBX8sWx7nO0 12.03] || Linear programming kernel for VC, color coding, dynamic programming. Colorcoding [https://drive.google.com/file/d/1RMoIpd6p_L1XXOVeV36g0pdJdbtltbPF/view?usp=sharing from slide 39]  || [https://drive.google.com/file/d/16wjIGqbS5UvEUZCxuUfGROUxk2RlLqZl/view?usp=sharing problem list 13] &lt;br /&gt;
|-&lt;br /&gt;
 || 19.03 || Optional: problems that are FPT on graphs with small treewidth.(No recording, sorry.) || [https://drive.google.com/file/d/1mYkshv6q-c_5nY5qfHgosKxBd1zDDvGK/view?usp=sharing problem list 14]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL8EKo81hBCTGfNPpZlIe7USiEPpZGYDte Recordings last year]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Exam =&lt;br /&gt;
&lt;br /&gt;
5 or 6 questions with the same difficulty as the homework questions. You have 3 hours time. &lt;br /&gt;
&lt;br /&gt;
Each year, 1 of the questions is to prove that some problem is NP-complete. Do not forget to say why the problem is in NP. &lt;br /&gt;
&lt;br /&gt;
Copies of Sipser&#039;s book, Arora&amp;amp;Barak, Mertens&amp;amp;Moore, will be available. (I you have these books or printed parts of them, please bring it.) Also, personal handwritten notes are allowed, but nothing else.  [https://www.dropbox.com/s/37gdsbv2it8omnm/tc-sample-exam.pdf?dl=0 Sample exam]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Project (for PI students) =&lt;br /&gt;
&lt;br /&gt;
During the 3rd module Januari till March 2024 there are projects where you need to implement algorithms from parameterized complexity. (For example, for the vertex cover algorithm and disjoint paths problems.) A grader will check whether your algorithm reaches certain time limits. &lt;br /&gt;
&lt;br /&gt;
There are 3 tasks: 2 of them about branching and kernelization, 1 task about linear programming bounds. See the table with lectures. The tasks have equal weight for the grade. &lt;br /&gt;
&lt;br /&gt;
Deadline March 31st, 23h59. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Additional reading = &lt;br /&gt;
&lt;br /&gt;
Recall that the most important book for our course is &#039;&#039;Sipser, Introduction to the theory of computation&#039;&#039; 3rd edition, 2013, chapters 3, 4, 7–9. This book is intended for Bachelor students. &lt;br /&gt;
&lt;br /&gt;
The following book is popular with students theoretical computer science, because it contains most materials of our course in a concise way. Moreover, it presents many important advanced topics. I find the style of some proofs rather technical, but I like the topics in this book. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;S. Arora and B. Barak, Computational Complexity: A Modern Approach, 2009&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The course materials can also be found in various chapters of the following massive book (700 pages). It starts at beginning bachelor level and ends at an advanced master level. It is written in a pleasant style with excellent examples.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;C. Moore and S. Mertens, The nature of computation, 2011.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This book gives an introduction to important recent research directions in computational hardness. It also studies specific topics (games and planar problems) in huge detail.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;E. Demaine, W Gasarch, Haijaghayi, Computational intractability: a guide to lower bounds, 2023&#039;&#039; [https://hardness.mit.edu/ current draft]&lt;br /&gt;
&lt;br /&gt;
This is an advanced textbook with background on parameterized algorithms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;M. Cygan, F. Fomin and 6 others, Parameterized algorithms, 2016&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Grading =&lt;br /&gt;
&lt;br /&gt;
For AMI students:&lt;br /&gt;
&lt;br /&gt;
 Final score = 0.35 * [score homework] + 0.35 * [score colloquium] + 0.3 * [score exam] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For PI students (the course is called &amp;quot;computational complexity&amp;quot; and takes 3 modules). There are 2 scores for this course. The first one, given in December is calculated by the above formula (but probably it does not mean anything, I will ask about it). The second score is given below, and it is the one that will be in the diploma. It includes a programming project. The assignment and grader, will be set up by the end of Februari, the deadline is the end of March.  &lt;br /&gt;
&lt;br /&gt;
 Final score = 0.3 * [score homework] + 0.3 * [score colloquium] + 0.2 * [score exam] + 0.2 * [score project] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some homework assignments contain extra problems. Each solution of an extra problem will give 0.5 extra points on the final exam (which is graded out of 10). There will be around 10 extra problems. Rounding is applied only when the final score is transferred to the official grade. Arithmetic rounding is used. Autogrades. If only 6/10 for the exam is needed to get a final score of 10/10, then this will be given automatically. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Office hours =&lt;br /&gt;
&lt;br /&gt;
Bruno Bauwens: Tuesday 15h -- 21h. Friday 15h -- 18h. &lt;br /&gt;
&lt;br /&gt;
Subin Pulari: Please contact via telegram or mail [[spulari@hse.ru]]&lt;/div&gt;</summary>
		<author><name>Spulari</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2025&amp;diff=92948</id>
		<title>Theory of computation 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2025&amp;diff=92948"/>
		<updated>2025-10-08T22:02:37Z</updated>

		<summary type="html">&lt;p&gt;Spulari: Added new Zoom link for seminars&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Classes =&lt;br /&gt;
&lt;br /&gt;
Lectures:  Friday 13h00 - 14h20 in Pokrovkaya, see [https://docs.google.com/spreadsheets/d/1EAbqb8wf48evEi5Bf2M0xmZXQSrpd_FJbsnevXDQxaQ/edit?gid=614347250#gid=614347250 here] for the room, and in [https://us02web.zoom.us/j/82300259484?pwd=NWxXekxBeE5yMm9UTmwvLzNNNGlnUT09 zoom] by [https://www.hse.ru/en/org/persons/160550073 Bruno Bauwens]. Starting 19.09.&lt;br /&gt;
&lt;br /&gt;
Seminars: Friday 14h40 - 16h00 in Pokrovkaya, see [https://docs.google.com/spreadsheets/d/1EAbqb8wf48evEi5Bf2M0xmZXQSrpd_FJbsnevXDQxaQ/edit?gid=614347250#gid=614347250 here] for the room, and in [https://us06web.zoom.us/j/84205097860?pwd=PQpzn1Oqf9G2fjO2vwcUVsMdCnRUuc.1 zoom] by Prof. Subin Pulari&lt;br /&gt;
&lt;br /&gt;
Telegram group for announcements and discussions [https://t.me/+7BOrITRebjk5MTc0 invite link.] The course is similar to [http://wiki.cs.hse.ru/Theory_of_computation_2024 last year&#039;s one].&lt;br /&gt;
&lt;br /&gt;
= Homeworks =&lt;br /&gt;
&lt;br /&gt;
Deadlines: every 2 weeks, before the lecture. Submit in pdf or fotos of handwritten text in [https://classroom.google.com/c/ODEwMjk4NDQxMTU1?cjc=n5dttaev google class]. &lt;br /&gt;
&lt;br /&gt;
Tasks are in the problem lists from the seminar. Deadlines: problem lists 1 and 2: at the start of 3rd lecture, lists 3 and 4 at the start of the 5th lecture, etc.&lt;br /&gt;
&lt;br /&gt;
Late policy: 1 homework can be submitted at most 24h late without explanations. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Course Materials =&lt;br /&gt;
&lt;br /&gt;
The main reference is Sipser&#039;s book &amp;quot;Introduction to the theory of computation&amp;quot;, chapters 3, 4, 7–9.&lt;br /&gt;
&lt;br /&gt;
If you need some background in math, consider&lt;br /&gt;
&amp;lt;!-- [http://www.cs.elte.hu/~lovasz/dmbook.ps Lecture notes: Discrete Mathematics], L. Lovasz, K. Vesztergombi and --&amp;gt;&lt;br /&gt;
[http://rubtsov.su/public/DM-HSE-Draft.pdf Лекции по дискретной математике].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Rec !! Summary !! Problem list&lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=-VIr385nKVk 19.09] || Turing machines, multitape Turing machines, connection between them. Universal Turing machine. Examples. Time and space complexity. Complexity classes P, PSPACE, EXP. (Recording from previous year.) [https://drive.google.com/file/d/1Xby_fNyeVwZtVY6yfVJLBYNCaZVbOP61/view?usp=drive_link Notes]|| [https://drive.google.com/file/d/1bf3hhE82uw5D0bQGajXHl1-FhhyG-XnY/view?usp=drive_link problem list 1]&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|| [https://www.youtube.com/watch?v=tnq5BkcGfk0 26.09] || Undecidability of the Halting problem. Time and space hierarchy theorems. See notes above. || [https://drive.google.com/file/d/1iyba3kM98oJCz5yvKmWRb0oOpIAhFPef/view?usp=drive_link problem list 2] &lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=VR_A62kFXH8 03.10] || Complexity class NP. Examples. Non-deterministic machines and another definition of NP. Polynomial reductions. NP-hardness and NP-completeness.  || [https://drive.google.com/file/d/17AF1Bj5I_S0XzwXkM4IeOugxX2Kr3i2u/view?usp=drive_link problem list 3]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=sGfulQ1YoUU 10.10] ||  NP-completenes of NAE-3SAT, 3colorability, subsetsum, knapsack, Hamiltonian cycle. Circuits: examples, class P/poly, all functions have exponential circuits. [https://www.dropbox.com/scl/fi/ulrlsa5tw7kz1x0aj7bp1/circuits.pdf?rlkey=q3cx7akryx9hnsgc19yhvv0e3&amp;amp;dl=0 circuit_notes.pdf] || [https://drive.google.com/file/d/1KtVCvyhO99T5cU_jYLG62Zwnqj5aDCor/view?usp=sharing problem list 4]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=Jqy89FPbFj4 17.10] || Circuit complexity. Classes AC^i and NC^i. Some functions have exponential circuit complexity. NC1 = Boolean formulas of polynomial size. Addition in AC0. Multiplication is in NC1. P is in P/poly. 3SAT is NP-complete.  [https://drive.google.com/file/d/1Cqr4A6ohPLIaAVocG3jE6GYsNz4XgA4r/view?usp=drive_link circuit_notes.pdf] || [https://drive.google.com/file/d/15uGUYwI2GfNaEi0upjgjCqmclrWUk75c/view?usp=sharing problem list 5]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/kV86JYY8QXs 24.10] || Directed Reachability is in SPACE(log^2 n). TQBF problem, its PSPACE-completeness. PSPACE = NPSPACE. NSPACE(s(n)) is in SPACE(s(n)^2) for space constructible s.|| [https://drive.google.com/file/d/1-vKS0TEAD05ol2BbFpbN510TbKhucBiw/view?usp=sharing problem list 6]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/W_uZuQXm53c 07.11] || Oracle computation definitions. There exists an oracle &#039;&#039;A&#039;&#039; for which P&amp;lt;sup&amp;gt;&#039;&#039;A&#039;&#039;&amp;lt;/sup&amp;gt; = NP&amp;lt;sup&amp;gt;&#039;&#039;A&#039;&#039;&amp;lt;/sup&amp;gt;. There is an oracle B such that P&amp;lt;sup&amp;gt;&#039;&#039;B&#039;&#039;&amp;lt;/sup&amp;gt; is not equal to NP&amp;lt;sup&amp;gt;&#039;&#039;B&#039;&#039;&amp;lt;/sup&amp;gt;. || [https://drive.google.com/file/d/1T9mp2AuPV2YOQ0juTMd9g0VjczHvdnSB/view?usp=sharing problem list 7]&lt;br /&gt;
|- &lt;br /&gt;
|| [https://youtube.com/live/ALO6r52wuIU 14.11] ||  Probabilistic computation. Probabilistic machines, the class BPP, invariance of the definition BPP for different thresholds, RP, coRP, PP, ZPP. BPP is in P/poly. Most of it is also [https://www.youtube.com/watch?v=YSMgVbOqB-8&amp;amp;list=PLm3J0oaFux3YL5vLXpzOyJiLtqLp6dCW2&amp;amp;index=23 here] and [https://www.cs.cmu.edu/afs/cs/academic/class/15859-f04/www/scribes/lec2.pdf scribe1] [https://lucatrevisan.github.io/cs278-04/notes/lecture08.pdf scribe2] || [https://drive.google.com/file/d/1RlrxybN_p9X1WswJet9jpp9jPQLDYdpy/view?usp=sharing problem list 8]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=X67F8P0dcAA 21.11] || Approximation algorithms. Definition c-approximation algorithm. 2-approximation for vertex cover and greedy vertex cover is not optimal. (ln n + 1)-approximation for set cover. PTAS for the makespan problem. Based on [https://www.youtube.com/watch?v=MEz1J9wY2iM&amp;amp;pp=ygUYYXBwcm94aW1hdGlvbiBhbGdvcml0aG1z MIT lecture].|| &lt;br /&gt;
[https://drive.google.com/file/d/13hfO-2KUxpMnk8o0aLsJ8xO9IYfLzCHK/view?usp=sharing problem list 9]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/r9rP3ZojeqY 28.11] || Parameterized complexity: The classes FPT and XP. Kernelization. Examples for vertex cover.  [https://drive.google.com/file/d/1W9SU24HW0r5QhugzmrghpkzJUFuC8whq/view?usp=sharing Notes.] || [https://drive.google.com/file/d/1PpRK72BtyKYR0KVi03HDCy7HXvWpzcL6/view?usp=sharing problem list 10] &amp;lt;!-- [https://www.dropbox.com/scl/fi/x5gwdae4ny4u3zixoy4pw/student_vc_branching.ipynb?rlkey=5oowq1u3jhy490s84ogojg1s7&amp;amp;dl=0 programming task.] --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/E4aNlvbYoLQ 05.12] || Parameterized complexity: W-hierarchy, hardness from the exponential time hypothesis. [https://drive.google.com/file/d/1f-085Gr7E01HepUR-brGJDet-fXJzUwb/view?usp=sharing presentation] [https://drive.google.com/file/d/1OIw7h31N2tt-npC0NrvVgNhYGw_HlJa_/view?usp=sharing Notes] || [https://drive.google.com/file/d/1xhUYMsj0iV2TMZfR8FtkxWUNlcCjdS-N/view?usp=sharing problem list 11] &lt;br /&gt;
|- &lt;br /&gt;
 || 12.12 || &#039;&#039;Colloquium.&#039;&#039; [https://drive.google.com/file/d/1no8CbHKJluGRx7FROpSS7BqXdjOVgdT1/view?usp=sharing Rules and questions.] Version Dec 8th.  || [https://www.dropbox.com/s/37gdsbv2it8omnm/tc-sample-exam.pdf?dl=0 Sample exam] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Artem Perfanov&#039;s [https://drive.google.com/file/d/16_ZP0X9wwza1RsrXZZGQsx5Igwk_vY9r/view?usp=sharing lecture summaries] [https://drive.google.com/drive/folders/1XsNL2B69akd3A9qaOEgC09NiZXLP8Wbz?usp=drive_link source] (Disclaimer: I did not check them):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Date !! Software engineering: parameterized complexity, FPT algorithms !! Problem list&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/xDaTpuVF0Es 05.03] || Recap from last lecture. More examples of kernels: linear programming kernel for vertex cover problem.  [https://www.dropbox.com/scl/fi/x5gwdae4ny4u3zixoy4pw/student_vc_branching.ipynb?rlkey=5oowq1u3jhy490s84ogojg1s7&amp;amp;dl=0 programming task.] [https://www.dropbox.com/s/zzzaulpmzql7x7u/parameterizedComplexity.pdf?dl=0 presentation].|| [https://drive.google.com/file/d/1sXA5F4gUZ-KvigQspz0ScVLOA38ZcxHb/view?usp=sharing problem list 12] &lt;br /&gt;
&#039;&#039;Update 03.12&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/TBX8sWx7nO0 12.03] || Linear programming kernel for VC, color coding, dynamic programming. Colorcoding [https://drive.google.com/file/d/1RMoIpd6p_L1XXOVeV36g0pdJdbtltbPF/view?usp=sharing from slide 39]  || [https://drive.google.com/file/d/16wjIGqbS5UvEUZCxuUfGROUxk2RlLqZl/view?usp=sharing problem list 13] &lt;br /&gt;
|-&lt;br /&gt;
 || 19.03 || Optional: problems that are FPT on graphs with small treewidth.(No recording, sorry.) || [https://drive.google.com/file/d/1mYkshv6q-c_5nY5qfHgosKxBd1zDDvGK/view?usp=sharing problem list 14]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL8EKo81hBCTGfNPpZlIe7USiEPpZGYDte Recordings last year]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Exam =&lt;br /&gt;
&lt;br /&gt;
5 or 6 questions with the same difficulty as the homework questions. You have 3 hours time. &lt;br /&gt;
&lt;br /&gt;
Each year, 1 of the questions is to prove that some problem is NP-complete. Do not forget to say why the problem is in NP. &lt;br /&gt;
&lt;br /&gt;
Copies of Sipser&#039;s book, Arora&amp;amp;Barak, Mertens&amp;amp;Moore, will be available. (I you have these books or printed parts of them, please bring it.) Also, personal handwritten notes are allowed, but nothing else.  [https://www.dropbox.com/s/37gdsbv2it8omnm/tc-sample-exam.pdf?dl=0 Sample exam]. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
= Project (for PI students) =&lt;br /&gt;
&lt;br /&gt;
During the 3rd module Januari till March 2024 there are projects where you need to implement algorithms from parameterized complexity. (For example, for the vertex cover algorithm and disjoint paths problems.) A grader will check whether your algorithm reaches certain time limits. &lt;br /&gt;
&lt;br /&gt;
There are 3 tasks: 2 of them about branching and kernelization, 1 task about linear programming bounds. See the table with lectures. The tasks have equal weight for the grade. &lt;br /&gt;
&lt;br /&gt;
Deadline March 31st, 23h59. &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Additional reading = &lt;br /&gt;
&lt;br /&gt;
Recall that the most important book for our course is &#039;&#039;Sipser, Introduction to the theory of computation&#039;&#039; 3rd edition, 2013, chapters 3, 4, 7–9. This book is intended for Bachelor students. &lt;br /&gt;
&lt;br /&gt;
The following book is popular with students theoretical computer science, because it contains most materials of our course in a concise way. Moreover, it presents many important advanced topics. I find the style of some proofs rather technical, but I like the topics in this book. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;S. Arora and B. Barak, Computational Complexity: A Modern Approach, 2009&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The course materials can also be found in various chapters of the following massive book (700 pages). It starts at beginning bachelor level and ends at an advanced master level. It is written in a pleasant style with excellent examples.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;C. Moore and S. Mertens, The nature of computation, 2011.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This book gives an introduction to important recent research directions in computational hardness. It also studies specific topics (games and planar problems) in huge detail.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;E. Demaine, W Gasarch, Haijaghayi, Computational intractability: a guide to lower bounds, 2023&#039;&#039; [https://hardness.mit.edu/ current draft]&lt;br /&gt;
&lt;br /&gt;
This is an advanced textbook with background on parameterized algorithms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;M. Cygan, F. Fomin and 6 others, Parameterized algorithms, 2016&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Grading =&lt;br /&gt;
&lt;br /&gt;
For AMI students:&lt;br /&gt;
&lt;br /&gt;
 Final score = 0.35 * [score homework] + 0.35 * [score colloquium] + 0.3 * [score exam] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- For PI students (the course is called &amp;quot;computational complexity&amp;quot; and takes 3 modules). There are 2 scores for this course. The first one, given in December is calculated by the above formula (but it does not mean anything). The second score is given below, and it is the one that will be in the diploma. It includes a programming project. The assignment and grader, will be set up by the end of Februari, the deadline is the end of March.  &lt;br /&gt;
&lt;br /&gt;
 Final score = 0.3 * [score homework] + 0.3 * [score colloquium] + 0.2 * [score exam] + 0.2 * [score project] &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some homework assignments contain extra problems. Each solution of an extra problem will give 0.5 extra points on the final exam (which is graded out of 10). There will be around 10 extra problems. Rounding is applied only when the final score is transferred to the official grade. Arithmetic rounding is used. Autogrades. If only 6/10 for the exam is needed to get a final score of 10/10, then this will be given automatically. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Office hours =&lt;br /&gt;
&lt;br /&gt;
Bruno Bauwens: TBA&lt;br /&gt;
&lt;br /&gt;
Subin Pulari: TBA&lt;/div&gt;</summary>
		<author><name>Spulari</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2025&amp;diff=92747</id>
		<title>Theory of computation 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=Theory_of_computation_2025&amp;diff=92747"/>
		<updated>2025-09-30T22:32:26Z</updated>

		<summary type="html">&lt;p&gt;Spulari: Added Google Class link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Classes =&lt;br /&gt;
&lt;br /&gt;
Lectures:  Friday 13h00 - 14h20 in Pokrovkaya room TBA and in [https://us02web.zoom.us/j/82300259484?pwd=NWxXekxBeE5yMm9UTmwvLzNNNGlnUT09 zoom] by [https://www.hse.ru/en/org/persons/160550073 Bruno Bauwens]. Starting 19.09.&lt;br /&gt;
&lt;br /&gt;
Seminars: Friday 14h40 - 16h00 in room TBA and on the same zoomlink by Prof. Subin Pulari&lt;br /&gt;
&lt;br /&gt;
Telegram group for announcements and discussions [https://t.me/+7BOrITRebjk5MTc0 invite link.] The course is similar to [http://wiki.cs.hse.ru/Theory_of_computation_2024 last year&#039;s one].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Homeworks =&lt;br /&gt;
&lt;br /&gt;
Deadlines: every 2 weeks, before the lecture. Submit in pdf or fotos of handwritten text in [https://classroom.google.com/c/ODEwMjk4NDQxMTU1?cjc=n5dttaev google class]. &lt;br /&gt;
&lt;br /&gt;
Tasks are in the problem lists from the seminar. Deadlines: problem lists 1 and 2: at the start of 3rd lecture, lists 3 and 4 at the start of the 5th lecture, etc.&lt;br /&gt;
&lt;br /&gt;
Late policy: 1 homework can be submitted at most 24h late without explanations. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Course Materials =&lt;br /&gt;
&lt;br /&gt;
The main reference is Sipser&#039;s book &amp;quot;Introduction to the theory of computation&amp;quot;, chapters 3, 4, 7–9.&lt;br /&gt;
&lt;br /&gt;
If you need some background in math, consider:&lt;br /&gt;
[http://www.cs.elte.hu/~lovasz/dmbook.ps Lecture notes: Discrete Mathematics], L. Lovasz, K. Vesztergombi and&lt;br /&gt;
[http://rubtsov.su/public/DM-HSE-Draft.pdf Лекции по дискретной математике] (черновик учебника, in Russian)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Rec !! Summary !! Problem list&lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=-VIr385nKVk 19.09] || Turing machines, multitape Turing machines, connection between them. Universal Turing machine. Examples. Time and space complexity. Complexity classes P, PSPACE, EXP. (Recording from previous year.) [https://drive.google.com/file/d/1Xby_fNyeVwZtVY6yfVJLBYNCaZVbOP61/view?usp=drive_link Notes]|| [https://drive.google.com/file/d/1bf3hhE82uw5D0bQGajXHl1-FhhyG-XnY/view?usp=drive_link problem list 1]&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|| [https://rutube.ru/video/4675e53fe2c734cb827911261234fab8/ 26.09] || Undecidability of the Halting problem. Time and space hierarchy theorems. See notes above. || [https://drive.google.com/file/d/1iyba3kM98oJCz5yvKmWRb0oOpIAhFPef/view?usp=drive_link problem list 2] &lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=VR_A62kFXH8 03.10] || Complexity class NP. Examples. Non-deterministic machines and another definition of NP. Polynomial reductions. NP-hardness and NP-completeness.  || [https://drive.google.com/file/d/1SJq-s80aGYKBEtF84fz6pMYQM2ZE1UyA/view?usp=sharing problem list 3]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=sGfulQ1YoUU 10.10] ||  NP-completenes of NAE-3SAT, 3colorability, subsetsum, knapsack, Hamiltonian cycle. Circuits: examples, class P/poly, all functions have exponential circuits. [https://www.dropbox.com/scl/fi/ulrlsa5tw7kz1x0aj7bp1/circuits.pdf?rlkey=q3cx7akryx9hnsgc19yhvv0e3&amp;amp;dl=0 circuit_notes.pdf] || [https://drive.google.com/file/d/1KtVCvyhO99T5cU_jYLG62Zwnqj5aDCor/view?usp=sharing problem list 4]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=Jqy89FPbFj4 17.10] || Circuit complexity. Classes AC^i and NC^i. Some functions have exponential circuit complexity. NC1 = Boolean formulas of polynomial size. Addition in AC0. Multiplication is in NC1. P is in P/poly. 3SAT is NP-complete.  [https://drive.google.com/file/d/1Cqr4A6ohPLIaAVocG3jE6GYsNz4XgA4r/view?usp=drive_link circuit_notes.pdf] || [https://drive.google.com/file/d/15uGUYwI2GfNaEi0upjgjCqmclrWUk75c/view?usp=sharing problem list 5]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/kV86JYY8QXs 24.10] || Directed Reachability is in SPACE(log^2 n). TQBF problem, its PSPACE-completeness. PSPACE = NPSPACE. NSPACE(s(n)) is in SPACE(s(n)^2) for space constructible s.|| [https://drive.google.com/file/d/1-vKS0TEAD05ol2BbFpbN510TbKhucBiw/view?usp=sharing problem list 6]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/W_uZuQXm53c 07.11] || Oracle computation definitions. There exists an oracle &#039;&#039;A&#039;&#039; for which P&amp;lt;sup&amp;gt;&#039;&#039;A&#039;&#039;&amp;lt;/sup&amp;gt; = NP&amp;lt;sup&amp;gt;&#039;&#039;A&#039;&#039;&amp;lt;/sup&amp;gt;. There is an oracle B such that P&amp;lt;sup&amp;gt;&#039;&#039;B&#039;&#039;&amp;lt;/sup&amp;gt; is not equal to NP&amp;lt;sup&amp;gt;&#039;&#039;B&#039;&#039;&amp;lt;/sup&amp;gt;. || [https://drive.google.com/file/d/1T9mp2AuPV2YOQ0juTMd9g0VjczHvdnSB/view?usp=sharing problem list 7]&lt;br /&gt;
|- &lt;br /&gt;
|| [https://youtube.com/live/ALO6r52wuIU 14.11] ||  Probabilistic computation. Probabilistic machines, the class BPP, invariance of the definition BPP for different thresholds, RP, coRP, PP, ZPP. BPP is in P/poly. Most of it is also [https://www.youtube.com/watch?v=YSMgVbOqB-8&amp;amp;list=PLm3J0oaFux3YL5vLXpzOyJiLtqLp6dCW2&amp;amp;index=23 here] and [https://www.cs.cmu.edu/afs/cs/academic/class/15859-f04/www/scribes/lec2.pdf scribe1] [https://lucatrevisan.github.io/cs278-04/notes/lecture08.pdf scribe2] || [https://drive.google.com/file/d/1RlrxybN_p9X1WswJet9jpp9jPQLDYdpy/view?usp=sharing problem list 8]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://www.youtube.com/watch?v=X67F8P0dcAA 21.11] || Approximation algorithms. Definition c-approximation algorithm. 2-approximation for vertex cover and greedy vertex cover is not optimal. (ln n + 1)-approximation for set cover. PTAS for the makespan problem. Based on [https://www.youtube.com/watch?v=MEz1J9wY2iM&amp;amp;pp=ygUYYXBwcm94aW1hdGlvbiBhbGdvcml0aG1z MIT lecture].|| &lt;br /&gt;
[https://drive.google.com/file/d/13hfO-2KUxpMnk8o0aLsJ8xO9IYfLzCHK/view?usp=sharing problem list 9]&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/r9rP3ZojeqY 28.11] || Parameterized complexity: The classes FPT and XP. Kernelization. Examples for vertex cover.  [https://drive.google.com/file/d/1W9SU24HW0r5QhugzmrghpkzJUFuC8whq/view?usp=sharing Notes.] || [https://drive.google.com/file/d/1PpRK72BtyKYR0KVi03HDCy7HXvWpzcL6/view?usp=sharing problem list 10] &amp;lt;!-- [https://www.dropbox.com/scl/fi/x5gwdae4ny4u3zixoy4pw/student_vc_branching.ipynb?rlkey=5oowq1u3jhy490s84ogojg1s7&amp;amp;dl=0 programming task.] --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/E4aNlvbYoLQ 05.12] || Parameterized complexity: W-hierarchy, hardness from the exponential time hypothesis. [https://drive.google.com/file/d/1f-085Gr7E01HepUR-brGJDet-fXJzUwb/view?usp=sharing presentation] [https://drive.google.com/file/d/1OIw7h31N2tt-npC0NrvVgNhYGw_HlJa_/view?usp=sharing Notes] || [https://drive.google.com/file/d/1xhUYMsj0iV2TMZfR8FtkxWUNlcCjdS-N/view?usp=sharing problem list 11] &lt;br /&gt;
|- &lt;br /&gt;
 || 12.12 || &#039;&#039;Colloquium.&#039;&#039; [https://drive.google.com/file/d/1no8CbHKJluGRx7FROpSS7BqXdjOVgdT1/view?usp=sharing Rules and questions.] Version Dec 8th.  || [https://www.dropbox.com/s/37gdsbv2it8omnm/tc-sample-exam.pdf?dl=0 Sample exam] &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Artem Perfanov&#039;s [https://drive.google.com/file/d/16_ZP0X9wwza1RsrXZZGQsx5Igwk_vY9r/view?usp=sharing lecture summaries] [https://drive.google.com/drive/folders/1XsNL2B69akd3A9qaOEgC09NiZXLP8Wbz?usp=drive_link source] (Disclaimer: I did not check them):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Date !! Software engineering: parameterized complexity, FPT algorithms !! Problem list&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/xDaTpuVF0Es 05.03] || Recap from last lecture. More examples of kernels: linear programming kernel for vertex cover problem.  [https://www.dropbox.com/scl/fi/x5gwdae4ny4u3zixoy4pw/student_vc_branching.ipynb?rlkey=5oowq1u3jhy490s84ogojg1s7&amp;amp;dl=0 programming task.] [https://www.dropbox.com/s/zzzaulpmzql7x7u/parameterizedComplexity.pdf?dl=0 presentation].|| [https://drive.google.com/file/d/1sXA5F4gUZ-KvigQspz0ScVLOA38ZcxHb/view?usp=sharing problem list 12] &lt;br /&gt;
&#039;&#039;Update 03.12&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
 || [https://youtube.com/live/TBX8sWx7nO0 12.03] || Linear programming kernel for VC, color coding, dynamic programming. Colorcoding [https://drive.google.com/file/d/1RMoIpd6p_L1XXOVeV36g0pdJdbtltbPF/view?usp=sharing from slide 39]  || [https://drive.google.com/file/d/16wjIGqbS5UvEUZCxuUfGROUxk2RlLqZl/view?usp=sharing problem list 13] &lt;br /&gt;
|-&lt;br /&gt;
 || 19.03 || Optional: problems that are FPT on graphs with small treewidth.(No recording, sorry.) || [https://drive.google.com/file/d/1mYkshv6q-c_5nY5qfHgosKxBd1zDDvGK/view?usp=sharing problem list 14]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL8EKo81hBCTGfNPpZlIe7USiEPpZGYDte Recordings last year]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Exam =&lt;br /&gt;
&lt;br /&gt;
5 or 6 questions with the same difficulty as the homework questions. You have 3 hours time. &lt;br /&gt;
&lt;br /&gt;
Each year, 1 of the questions is to prove that some problem is NP-complete. Do not forget to say why the problem is in NP. &lt;br /&gt;
&lt;br /&gt;
Copies of Sipser&#039;s book, Arora&amp;amp;Barak, Mertens&amp;amp;Moore, will be available. (I you have these books or printed parts of them, please bring it.) Also, personal handwritten notes are allowed, but nothing else.  [https://www.dropbox.com/s/37gdsbv2it8omnm/tc-sample-exam.pdf?dl=0 Sample exam]. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
= Project (for PI students) =&lt;br /&gt;
&lt;br /&gt;
During the 3rd module Januari till March 2024 there are projects where you need to implement algorithms from parameterized complexity. (For example, for the vertex cover algorithm and disjoint paths problems.) A grader will check whether your algorithm reaches certain time limits. &lt;br /&gt;
&lt;br /&gt;
There are 3 tasks: 2 of them about branching and kernelization, 1 task about linear programming bounds. See the table with lectures. The tasks have equal weight for the grade. &lt;br /&gt;
&lt;br /&gt;
Deadline March 31st, 23h59. &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Additional reading = &lt;br /&gt;
&lt;br /&gt;
Recall that the most important book for our course is &#039;&#039;Sipser, Introduction to the theory of computation&#039;&#039; 3rd edition, 2013, chapters 3, 4, 7–9. This book is intended for Bachelor students. &lt;br /&gt;
&lt;br /&gt;
The following book is popular with students theoretical computer science, because it contains most materials of our course in a concise way. Moreover, it presents many important advanced topics. I find the style of some proofs rather technical, but I like the topics in this book. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;S. Arora and B. Barak, Computational Complexity: A Modern Approach, 2009&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The course materials can also be found in various chapters of the following massive book (700 pages). It starts at beginning bachelor level and ends at an advanced master level. It is written in a pleasant style with excellent examples.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;C. Moore and S. Mertens, The nature of computation, 2011.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This book gives an introduction to important recent research directions in computational hardness. It also studies specific topics (games and planar problems) in huge detail.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;E. Demaine, W Gasarch, Haijaghayi, Computational intractability: a guide to lower bounds, 2023&#039;&#039; [https://hardness.mit.edu/ current draft]&lt;br /&gt;
&lt;br /&gt;
This is an advanced textbook with background on parameterized algorithms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;M. Cygan, F. Fomin and 6 others, Parameterized algorithms, 2016&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Grading =&lt;br /&gt;
&lt;br /&gt;
For AMI students:&lt;br /&gt;
&lt;br /&gt;
 Final score = 0.35 * [score homework] + 0.35 * [score colloquium] + 0.3 * [score exam] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- For PI students (the course is called &amp;quot;computational complexity&amp;quot; and takes 3 modules). There are 2 scores for this course. The first one, given in December is calculated by the above formula (but it does not mean anything). The second score is given below, and it is the one that will be in the diploma. It includes a programming project. The assignment and grader, will be set up by the end of Februari, the deadline is the end of March.  &lt;br /&gt;
&lt;br /&gt;
 Final score = 0.3 * [score homework] + 0.3 * [score colloquium] + 0.2 * [score exam] + 0.2 * [score project] &amp;lt;br&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some homework assignments contain extra problems. Each solution of an extra problem will give 0.5 extra points on the final exam (which is graded out of 10). There will be around 10 extra problems. Rounding is applied only when the final score is transferred to the official grade. Arithmetic rounding is used. Autogrades. If only 6/10 for the exam is needed to get a final score of 10/10, then this will be given automatically. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Office hours =&lt;br /&gt;
&lt;br /&gt;
Bruno Bauwens: TBA&lt;br /&gt;
&lt;br /&gt;
Subin Pulari: TBA&lt;/div&gt;</summary>
		<author><name>Spulari</name></author>
	</entry>
</feed>