Files
awesome-awesomeness/html/theoreticalcomputerscience.md2.html
2025-07-18 23:13:11 +02:00

1473 lines
78 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<p><img src="./TCS-banner.png" alt="banner" /> # Awesome Theoretical
Computer Science <a href="https://awesome.re"><img
src="https://awesome.re/badge-flat.svg" alt="Awesome" /></a> The
interdisciplinary of Mathematics and Computer Science, distinguished by
proof and logic technique.</p>
<hr />
<h2 id="contents">Contents</h2>
<ul>
<li><a href="#broad_intros">Broad Intros</a>
<ul>
<li><a href="#broad_intros_lecture_notes">Lecture Notes</a> | <a
href="#broad_intros_lecture_videos_playlists">Lecture Videos
Playlists</a> | <a href="#broad_intros_books">Books</a> | <a
href="#broad_intros_handbooks">Handbooks</a></li>
</ul></li>
<li><a href="#theory_of_computation">Theory of Computation</a>
<ul>
<li><a href="#theory_of_computation_introductory">Introductory</a>
<ul>
<li><a href="#theory_of_computation_introductory_lecture_notes">Lecture
Notes</a> | <a href="#theory_of_computation_introductory_mooc">MOOC</a>
| <a href="#theory_of_computation_introductory_books">Books</a> | <a
href="#theory_of_computation_introductory_puzzles_and_problem_sets">Puzzles
and Problem Sets</a></li>
</ul></li>
<li><a
href="#theory_of_computation_computational_complexity">Computational
Complexity</a>
<ul>
<li><a
href="#theory_of_computation_computational_complexity_introductory">Introductory</a>
<ul>
<li><a
href="#theory_of_computation_computational_complexity_introductory_lecture_videos_playlists">Lecture
Videos Playlists</a> | <a
href="#theory_of_computation_computational_complexity_introductory_lecture_notes">Lecture
Notes</a> | <a
href="#theory_of_computation_computational_complexity_introductory_books">Books</a></li>
</ul></li>
<li><a
href="#theory_of_computation_computational_complexity_communication_complexity">Communication
Complexity</a>
<ul>
<li><a
href="#theory_of_computation_computational_complexity_communication_complexity_lecture_notes">Lecture
Notes</a> | <a
href="#theory_of_computation_computational_complexity_communication_complexity_books">Books</a></li>
</ul></li>
<li><a
href="#theory_of_computation_computational_complexity_circuit_complexity">Circuit
Complexity</a>
<ul>
<li><a
href="#theory_of_computation_computational_complexity_circuit_complexity_books">Books</a></li>
</ul></li>
<li><a
href="#theory_of_computation_computational_complexity_quantum_complexity">Quantum
Complexity</a>
<ul>
<li><a
href="#theory_of_computation_computational_complexity_quantum_complexity_lecture_videos_playlists">Lecture
Videos Playlists</a> | <a
href="#theory_of_computation_computational_complexity_quantum_complexity_lecture_notes">Lecture
Notes</a></li>
</ul></li>
<li><a
href="#theory_of_computation_computational_complexity_proof_complexity">Proof
Complexity</a>
<ul>
<li><a
href="#theory_of_computation_computational_complexity_proof_complexity_lecture_notes">Lecture
Notes</a></li>
</ul></li>
</ul></li>
<li><a href="#theory_of_computation_computability_theory">Computability
Theory</a>
<ul>
<li><a
href="#theory_of_computation_computability_theory_books">Books</a>
<ul>
<li><a
href="#theory_of_computation_computability_theory_books_introductory">Introductory</a>
| <a
href="#theory_of_computation_computability_theory_books_advanced">Advanced</a>
| <a
href="#theory_of_computation_computability_theory_books_monograph">Monograph</a></li>
</ul></li>
</ul></li>
</ul></li>
<li><a href="#logic">Logic</a>
<ul>
<li><a href="#logic_computational_complexity">Computational
Complexity</a>
<ul>
<li><a href="#logic_computational_complexity_books">Books</a></li>
</ul></li>
</ul></li>
<li><a href="#programming_language_theory">Programming Language
Theory</a>
<ul>
<li><a href="#programming_language_theory_basics">Basics</a>
<ul>
<li><a href="#programming_language_theory_basics_lecture_notes">Lecture
Notes</a> | <a
href="#programming_language_theory_basics_books">Books</a></li>
</ul></li>
<li><a href="#programming_language_theory_introductory">Introductory</a>
<ul>
<li><a
href="#programming_language_theory_introductory_books">Books</a></li>
</ul></li>
<li><a href="#programming_language_theory_formal_verification">Formal
Verification</a>
<ul>
<li><a
href="#programming_language_theory_formal_verification_lecture_notes">Lecture
Notes</a> | <a
href="#programming_language_theory_formal_verification_books">Books</a></li>
</ul></li>
<li><a href="#programming_language_theory_type_theory">Type Theory</a>
<ul>
<li><a
href="#programming_language_theory_type_theory_lecture_notes">Lecture
Notes</a> | <a
href="#programming_language_theory_type_theory_books">Books</a></li>
</ul></li>
<li><a
href="#programming_language_theory_functional_programming">Functional
Programming</a>
<ul>
<li><a
href="#programming_language_theory_functional_programming_lecture_notes">Lecture
Notes</a></li>
</ul></li>
</ul></li>
<li><a href="#algorithms">Algorithms</a>
<ul>
<li><a href="#algorithms_general">General</a>
<ul>
<li><a href="#algorithms_general_lecture_videos">Lecture Videos</a> | <a
href="#algorithms_general_lecture_notes">Lecture Notes</a> | <a
href="#algorithms_general_books">Books</a></li>
</ul></li>
<li><a href="#algorithms_lower_bounds">Lower Bounds</a>
<ul>
<li><a href="#algorithms_lower_bounds_lecture_videos_playlists">Lecture
Videos Playlists</a> | <a
href="#algorithms_lower_bounds_books">Books</a></li>
</ul></li>
<li><a href="#algorithms_randomization__probability">Randomization &amp;
Probability</a>
<ul>
<li><a
href="#algorithms_randomization__probability_lecture_notes">Lecture
Notes</a></li>
</ul></li>
<li><a href="#algorithms_approximation">Approximation</a>
<ul>
<li><a href="#algorithms_approximation_lecture_notes">Lecture Notes</a>
| <a href="#algorithms_approximation_books">Books</a></li>
</ul></li>
<li><a href="#algorithms_parameterized">Parameterized</a>
<ul>
<li><a href="#algorithms_parameterized_lecture_videos_playlist">Lecture
Videos Playlist</a> | <a
href="#algorithms_parameterized_books">Books</a></li>
</ul></li>
<li><a href="#algorithms_learning-augmented">Learning-augmented</a>
<ul>
<li><a href="#algorithms_learning-augmented_lecture_notes">Lecture
Notes</a> | <a href="#algorithms_learning-augmented_big_list">Big
List</a></li>
</ul></li>
</ul></li>
<li><a href="#informationcoding_theory">Information/Coding Theory</a>
<ul>
<li><a href="#informationcoding_theory_lecture_notes">Lecture Notes</a>
| <a href="#informationcoding_theory_workshops">Workshops</a> | <a
href="#informationcoding_theory_conferences">Conferences</a></li>
</ul></li>
<li><a href="#cryptography">Cryptography</a>
<ul>
<li><a href="#cryptography_books">Books</a></li>
</ul></li>
<li><a href="#machine_learning_theory">Machine Learning Theory</a>
<ul>
<li><a href="#machine_learning_theory_lecture_notes">Lecture Notes</a> |
<a href="#machine_learning_theory_books">Books</a> | <a
href="#machine_learning_theory_workshops">Workshops</a> | <a
href="#machine_learning_theory_other">Other</a></li>
</ul></li>
<li><a href="#game_theory">Game Theory</a>
<ul>
<li><a href="#game_theory_lecture_notes">Lecture Notes</a> | <a
href="#game_theory_books">Books</a> | <a
href="#game_theory_workshops">Workshops</a></li>
</ul></li>
<li><a href="#math_and_logic">Math and Logic</a>
<ul>
<li><a href="#math_and_logic_general">General</a>
<ul>
<li><a href="#math_and_logic_general_lecture_videos_playlist">Lecture
Videos Playlist</a> | <a href="#math_and_logic_general_books">Books</a>
| <a href="#math_and_logic_general_lecture_notes">Lecture Notes</a></li>
</ul></li>
<li><a href="#math_and_logic_tcs_toolkit">TCS Toolkit</a>
<ul>
<li><a
href="#math_and_logic_tcs_toolkit_lecture_videos_playlists">Lecture
Videos Playlists</a> | <a
href="#math_and_logic_tcs_toolkit_lecture_notes">Lecture Notes</a> | <a
href="#math_and_logic_tcs_toolkit_books">Books</a></li>
</ul></li>
<li><a href="#math_and_logic_discrete_mathematics">Discrete
Mathematics</a>
<ul>
<li><a href="#math_and_logic_discrete_mathematics_general">General</a>
<ul>
<li><a
href="#math_and_logic_discrete_mathematics_general_lecture_notes">Lecture
Notes</a> | <a
href="#math_and_logic_discrete_mathematics_general_books">Books</a> | <a
href="#math_and_logic_discrete_mathematics_general_mooc">MOOC</a></li>
</ul></li>
<li><a
href="#math_and_logic_discrete_mathematics_probabilistic_method">Probabilistic
Method</a>
<ul>
<li><a
href="#math_and_logic_discrete_mathematics_probabilistic_method_lecture_notes">Lecture
Notes</a> | <a
href="#math_and_logic_discrete_mathematics_probabilistic_method_lecture_videos_playlist">Lecture
Videos Playlist</a> | <a
href="#math_and_logic_discrete_mathematics_probabilistic_method_books">Books</a></li>
</ul></li>
<li><a href="#math_and_logic_discrete_mathematics_graph_theory">Graph
Theory</a>
<ul>
<li><a
href="#math_and_logic_discrete_mathematics_graph_theory_lecture_videos_playlist">Lecture
Videos Playlist</a></li>
</ul></li>
<li><a href="#math_and_logic_discrete_mathematics_other">Other</a></li>
</ul></li>
<li><a href="#math_and_logic_transition_to_pure_rigour_math">Transition
To Pure Rigour Math</a></li>
</ul></li>
<li><a href="#physics">Physics</a>
<ul>
<li><a href="#physics_lecture_notes">Lecture Notes</a> | <a
href="#physics_books">Books</a> | <a
href="#physics_monographs">Monographs</a></li>
</ul></li>
<li><a href="#philosophy">Philosophy</a>
<ul>
<li><a href="#philosophy_lecture_notes">Lecture Notes</a> | <a
href="#philosophy_books">Books</a> | <a
href="#philosophy_papers">Papers</a></li>
</ul></li>
<li><a href="#surveys__monographs">Surveys &amp; Monographs</a></li>
<li><a href="#community">Community</a>
<ul>
<li><a href="#community_conferences__workshops">Conferences &amp;
Workshops</a>
<ul>
<li><a
href="#community_conferences__workshops_aggregators">Aggregators</a> |
<a href="#community_conferences__workshops_live">Live</a> | <a
href="#community_conferences__workshops_archived">Archived</a></li>
</ul></li>
<li><a href="#community_magazines__newsletter">Magazines &amp;
Newsletter</a></li>
<li><a href="#community_associations">Associations</a></li>
<li><a href="#community_blogs">Blogs</a>
<ul>
<li><a href="#community_blogs_aggregators">Aggregators</a> | <a
href="#community_blogs_selected_posts_and_essays">Selected Posts and
Essays</a></li>
</ul></li>
<li><a href="#community_jobs">Jobs</a></li>
<li><a href="#community_online_communities">Online Communities</a></li>
</ul></li>
<li><a href="#other">Other</a>
<ul>
<li><a href="#other_podcasts">Podcasts</a> | <a
href="#other_popular_science">Popular Science</a> | <a
href="#other_cheat_sheets">Cheat Sheets</a></li>
</ul></li>
<li><a href="#related_lists">Related Lists</a></li>
</ul>
<hr />
<h1 id="broad-intros">Broad Intros<a name=broad_intros></a></h1>
<h2 id="lecture-notes">Lecture
Notes<a name=broad_intros_lecture_notes></a></h2>
<ul>
<li><a href="https://introtcs.org/public/index.html">Barak. Introduction
to TCS</a> - A modern, brief, and accessible text which introduces
theoretical computer science for undergrads. It includes topics not
usually included in standard undergrad text-books. ## Lecture Videos
Playlists<a name=broad_intros_lecture_videos_playlists></a></li>
<li><a
href="https://www.youtube.com/playlist?list=PLCqUsBXxq16yBaN_hpo7dY2l9N-ZLtI-X">Yanofsky.
Theoretical Computer Science</a> - undergrad introduction to theory of
computation</li>
<li><a
href="https://www.youtube.com/playlist?list=PLKzLTB8HeSUIuln-o1mbXfTr8HmIhiGEg">Anil
Ada. Great Ideas in Theoretical Computer Science. CMU</a> - A series of
lectures on selected notable topics in theoretical computer
science.</li>
<li><a
href="https://www.youtube.com/playlist?list=PLm3J0oaFux3aafQm568blS9blxtA_EWQv">ODonnell.
Great Ideas in Theoretical Computer Science. CMU</a> - A series of
lectures on selected notable topics in theoretical computer science. ##
Books<a name=broad_intros_books></a></li>
<li><a
href="https://www.math.ias.edu/files/Book-online-Aug0619.pdf">Wigderson.
Mathematics and Computation: A Theory Revolutionizing Technology and
Science</a> - A sweeping survey of complexity theory, emphasizing the
fields insights and challenges. It explains the ideas and motivations
leading to key models, notions, and results.</li>
<li><a href="http://nature-of-computation.org/">Moore &amp; Mertens. The
Nature of Computation</a> - It spans complexity of mazes and games;
optimization in theory and practice; randomized algorithms, interactive
proofs, and pseudorandomness; Markov chains and phase transitions; and
of quantum computing. It provides accessible explanations ##
Handbooks<a name=broad_intros_handbooks></a></li>
<li><a
href="https://www.routledge.com/Algorithms-and-Theory-of-Computation-Handbook-Volume-1-General-Concepts/Atallah-Blanton/p/book/9781138113930">Atallah
&amp; Blanton. Algorithms and Theory of Computation Handbook: General
Concepts and Techniques</a> - A complete comprehensive encyclopediac
handbook which surveys all related areas to theoretical computer
science.</li>
<li><a
href="https://www.routledge.com/Algorithms-and-Theory-of-Computation-Handbook-Volume-2-Special-Topics/Atallah-Blanton/p/book/9780367384845">Atallah
&amp; Blanton. Algorithms and Theory of Computation Handbook: Special
Topics and Techniques</a> - A complete comprehensive encyclopediac
handbook which surveys all related areas to theoretical computer
science.</li>
<li><a
href="https://mitpress.mit.edu/books/handbook-theoretical-computer-science-volume">Handbook
of Theoretical Computer Science. Volume A: Algorithms and Complexity</a>
- A complete comprehensive encyclopediac handbook which surveys all
related areas to theoretical computer science.</li>
<li><a
href="https://mitpress.mit.edu/books/handbook-theoretical-computer-science-2-vol-set">Handbook
of Theoretical Computer Science. Volume B: Formal Methods and
Semantics</a> - A complete comprehensive encyclopediac handbook which
surveys all related areas to theoretical computer science. # Theory of
Computation<a name=theory_of_computation></a> ##
Introductory<a name=theory_of_computation_introductory></a> ### Lecture
Notes<a name=theory_of_computation_introductory_lecture_notes></a></li>
<li><a href="https://cs.uwaterloo.ca/~watrous/ToC-notes/">Watrous.
Introduction to The Theory of Computing</a> - undergrad introduction to
theory of computation ###
MOOC<a name=theory_of_computation_introductory_mooc></a></li>
<li><a
href="https://www.udacity.com/course/intro-to-theoretical-computer-science--cs313">Intro
to Theoretical Computer Science</a> - It teaches basic concepts in
theoretical computer science, such as NP-completeness, and what they
imply for solving tough algorithmic problems.</li>
<li><a
href="https://www.udacity.com/course/computability-complexity-algorithms--ud061">Computability,
Complexity &amp; Algorithms. Georgia Institute of Technology</a> - It
focuses on the big fundamental questions of computing, and how
understanding the power and limitations of algorithms helps us develop
the tools to make real-world computers smarter, faster and safer. ###
Books<a name=theory_of_computation_introductory_books></a></li>
<li><a
href="https://www.cengage.com/c/introduction-to-the-theory-of-computation-3e-sipser/9781133187790/">Sipser.
Introduction to Theory of Computation</a> - A standard text for
introducing theory of computation for undergrads.</li>
<li><a
href="https://www.pearson.com/us/higher-education/program/Hopcroft-Introduction-to-Automata-Theory-Languages-and-Computation-3rd-Edition/PGM64331.html">Hopcroft,
Motwani &amp; Ullman. Introduction to Automata Theory, Languages, and
Computation</a> - Introductory undergrad textbook for automata,
languages and theory of computation topics. ### Puzzles and Problem
Sets<a name=theory_of_computation_introductory_puzzles_and_problem_sets></a></li>
<li><a
href="https://onlinelibrary.wiley.com/doi/book/10.1002/0471224642">Zhu
&amp; Ko. Problem Solving in Automata, Languages, and Complexity</a> - A
problem-set text for automata, languages, and complexity. ##
Computational
Complexity<a name=theory_of_computation_computational_complexity></a>
###
Introductory<a name=theory_of_computation_computational_complexity_introductory></a>
#### Lecture Videos
Playlists<a name=theory_of_computation_computational_complexity_introductory_lecture_videos_playlists></a></li>
<li><a
href="https://www.youtube.com/playlist?list=PLm3J0oaFux3YL5vLXpzOyJiLtqLp6dCW2">ODonnell.
Undergrad Complexity Theory. Fall 2019 (15-455)</a> (<a
href="https://www.cs.cmu.edu/~odonnell/15455-s17/">Homework</a>) -
Undergraduate course on computational complexity theory; It follows the
same spirit of Sipsers part III.</li>
<li><a
href="https://www.youtube.com/playlist?list=PLm3J0oaFux3b8Gg1DdaJOzYNsaXYLAOKH">ODonnell.
Graduate Complexity Theory</a> - It covers most of what is believed to
be known to get started in complexity theory research. #### Lecture
Notes<a name=theory_of_computation_computational_complexity_introductory_lecture_notes></a></li>
<li><a href="http://www.ams.org/books/pcms/010/">Rudich &amp; Wigderson.
Computational Complexity Theory</a> - Three weeks of lectures from the
IAS/Park City Mathematics Institute Summer School on computational
complexity. Topics include reductions, lower-bounds, average-case
complexity, randomness, interactive proof systems, probabilistically
checkable proofs, quantum computing, and proof complexity. ####
Books<a name=theory_of_computation_computational_complexity_introductory_books></a></li>
<li><a href="https://theory.cs.princeton.edu/complexity/book.pdf">Arora
&amp; Barak. Computational Complexity: A Modern Approach</a> - A golden
standard textbook, Surveying computational complexity theory for
graduate students and researchers.</li>
<li><a
href="http://www.wisdom.weizmann.ac.il/~oded/cc-book.html">Goldreich.
Computational Complexity: A Conceptual Perspective</a> - A grad
introduction to computation complexity theory, emphasizing the idea
behind concepts of complexity theory.</li>
<li><a
href="http://www.wisdom.weizmann.ac.il/~oded/bc-book.html">Goldreich. P,
NP, and NP-Completeness: The Basics of Computational Complexity</a> - A
very gentle introduction to some fundamental ideas of computational
complexity like NP-completeness and P vs NP.</li>
<li><a href="https://www.springer.com/gp/book/9783540674191">Ogihara
&amp; Hemaspaandra. The Complexity Theory Companion</a> - An accessible,
algorithmically oriented, research-centered, up-to-date guide to some of
the most interesting techniques of complexity theory.</li>
<li><a
href="https://www.pearson.com/us/higher-education/program/Papadimitriou-Computational-Complexity/PGM94583.html">Papadimitriou.
Computational Complexity</a> - Body of knowledge for studying the
performance and limitations of computer algorithms. Among topics covered
are: reductions and NP-completeness, cryptography and protocols,
randomized algorithms, and approximability of optimization problems,
circuit complexity, the structural aspects of the P=NP question,
parallel computation, and the polynomial hierarchy. ### Communication
Complexity<a name=theory_of_computation_computational_complexity_communication_complexity></a>
#### Lecture
Notes<a name=theory_of_computation_computational_complexity_communication_complexity_lecture_notes></a></li>
<li><a href="https://cs-people.bu.edu/mbun/courses/591_F19/">Mark Bun.
CS591 Communication Complexity</a> - A graduate course which introduces
the fundamental results and techniques in the area and some research
frontier questions. Themes include: Communication models and the
communication complexity zoo, Information vs. communication,
Query-to-communication lifting, and Applications ####
Books<a name=theory_of_computation_computational_complexity_communication_complexity_books></a></li>
<li><a
href="https://www.cambridge.org/core/books/communication-complexity/5F44993E3B2597174B71D3F21E748443">Rao
&amp; Yehudayoff. Communication Complexity and Applications</a> - An
excellent and very readable introductory textbook to the field of
communication complexity. ### Circuit
Complexity<a name=theory_of_computation_computational_complexity_circuit_complexity></a>
####
Books<a name=theory_of_computation_computational_complexity_circuit_complexity_books></a></li>
<li><a href="https://www.springer.com/gp/book/9783642245077">Jukna.
Boolean Function Complexity: Advances and Frontiers</a> - A modern
textbook surveying circuit complexity.</li>
<li><a href="https://www.springer.com/gp/book/9783540594369">Clote &amp;
Kranakis. Boolean Functions and Computation Models</a> - An introduction
to circuit complexity, boolean functions, and computation models. ###
Quantum
Complexity<a name=theory_of_computation_computational_complexity_quantum_complexity></a>
#### Lecture Videos
Playlists<a name=theory_of_computation_computational_complexity_quantum_complexity_lecture_videos_playlists></a></li>
<li><a
href="https://www.youtube.com/playlist?list=PLZGjbQcY0aI7Yqwbwp-lsf1tTPyvkQG6h">Uni
Paderborn. Quantum Complexity Theory. Winter 2020</a> - CS Masters level
lectures on topics including Boson sampling, quantum interactive proofs,
and quantum merlin arthur. #### Lecture
Notes<a name=theory_of_computation_computational_complexity_quantum_complexity_lecture_notes></a></li>
<li><a
href="https://www.henryyuen.net/fall2020/complexity_of_entanglement_notes.pdf">Henry
Yuen. The Complexity of Entanglement. Fall 2020</a> - Focuses on cutting
edge topics in quantum information that relate to Complexity of
Entanglement. - see this <a
href="https://www.henryyuen.net/classes/fall2020/">class</a> also ###
Proof
Complexity<a name=theory_of_computation_computational_complexity_proof_complexity></a>
#### Lecture
Notes<a name=theory_of_computation_computational_complexity_proof_complexity_lecture_notes></a></li>
<li><a href="https://www.cs.mcgill.ca/~robere/comp598/index.html">Robert
Robere. Proof Complexity: Algorithms and Lower Bounds</a> - An
introduction to modern proof complexity, emphasizing its connections
with computational complexity and algorithms in optimization. ##
Computability
Theory<a name=theory_of_computation_computability_theory></a> ###
Books<a name=theory_of_computation_computability_theory_books></a> ####
Introductory<a name=theory_of_computation_computability_theory_books_introductory></a></li>
<li><a
href="https://www.cambridge.org/highereducation/books/computability/E8F085FDBECB8280F7723D71C1D2EE1C">Cutland.
Computability: An Introduction to Recursive Function Theory</a> -
Intuitively, It explains the idea of a computable function: a function
whose values can be calculated in an effective or automatic way.</li>
<li><a
href="https://www.routledge.com/Computability-Theory/Cooper-Cooper/p/book/9781584882374">Cooper.
Computability Theory</a> - A concise, comprehensive, and authoritative
introduction to contemporary computability theory, techniques, and
results.</li>
<li><a
href="https://www.amazon.com/Computability-Unsolvability-Prof-Martin-Davis/dp/0486614719">Davis.
Computability and Unsolvability</a> - In this classic text, Dr. Davis
provides a clear introduction to computability, at an advanced
undergraduate level, that serves the needs of specialists and
non-specialists alike. ####
Advanced<a name=theory_of_computation_computability_theory_books_advanced></a></li>
<li><a href="https://www.springer.com/gp/book/9783540666813">Soare.
Recursively Enumerable Sets and Degree</a> - It gives a complete account
of the theory of r.e degrees. The definitions, results and proofs are
always clearly motivated and explained before the formal presentation;
the proofs are described with remarkable clarity and conciseness.</li>
<li><a
href="https://archive.org/details/classicalrecursi0000odif">Odifreddi.
Classical Recursion Theory: The Theory of Functions and Sets of Natural
Numbers</a> - An impressive presentation of classical recursion theory.
It is highly recommended to everyone interested in recursion theory.
####
Monograph<a name=theory_of_computation_computability_theory_books_monograph></a></li>
<li><a href="https://mitpress.mit.edu/books/computability">Copeland,
Posy &amp; Shagrir (editors). Computability: Turing, Gödel, Church, and
Beyond</a> - Computer scientists, mathematicians, and philosophers
discuss the conceptual foundations of the notion of computability as
well as recent theoretical developments. # Logic<a name=logic></a> ##
Computational Complexity<a name=logic_computational_complexity></a> ###
Books<a name=logic_computational_complexity_books></a></li>
<li><a href="https://www.springer.com/gp/book/9783319001180">Pudlák.
Logical Foundations of Mathematics and Computational Complexity: A
Gentle Introduction</a> - Presents a wide range of results in logic and
computational complexity. # Programming Language
Theory<a name=programming_language_theory></a> ##
Basics<a name=programming_language_theory_basics></a> ### Lecture
Notes<a name=programming_language_theory_basics_lecture_notes></a></li>
<li><a
href="https://www.cl.cam.ac.uk/teaching/2425/FoundsCS/materials.html">Cambridge
Foundations of CS</a> - It teaches programming and presents some
fundamental principles of computer science, especially algorithm design.
### Books<a name=programming_language_theory_basics_books></a></li>
<li>Structure and Interpretation of Computer Programs - <a
href="https://ocw.mit.edu/courses/6-001-structure-and-interpretation-of-computer-programs-spring-2005/pages/syllabus/">MIT
OCW</a>, <a
href="https://mitp-content-server.mit.edu/books/content/sectbyfn/books_pres_0/6515/sicp.zip/index.html">HTML
book</a>, <a
href="https://www.youtube.com/playlist?list=PL7BcsI5ueSNFPCEisbaoQ0kXIDX9rR5FF">Byfords
playlist</a>, <a
href="https://github.com/source-academy/sicp?tab=readme-ov-file">Javascript
book</a>, <a
href="https://wizardforcel.gitbooks.io/sicp-in-python/content/index.html">Python
book</a>, <a
href="https://romanbird.github.io/sicp/#e682e189-1f90-4713-9dfe-35c92b7d1cdf">Berkeley
for self-study</a>, and <a href="https://cs61a.org/">Berkeley 2024</a> -
Fundamental principles of computer programming in Scheme, including
recursion, abstraction, modularity, and programming language design and
implementation. ##
Introductory<a name=programming_language_theory_introductory></a> ###
Books<a name=programming_language_theory_introductory_books></a></li>
<li><a href="https://softwarefoundations.cis.upenn.edu/">Pierce.
Software Foundations. Pennsylvania</a> - A broad introduction series to
the mathematical underpinnings of reliable software. Its composed of
proof scripts for the Coq proof assistant. Its is intended for a broad
range of readers, With no specific background assumed. ## Formal
Verification<a name=programming_language_theory_formal_verification></a>
### Lecture
Notes<a name=programming_language_theory_formal_verification_lecture_notes></a></li>
<li><a
href="https://sites.google.com/cs.washington.edu/cse-505-18au/home">UW
CSE505 18au Principles of PL</a> - Techniques for thinking crisply about
programming languages, write some fascinating programs, and discuss
various design tradeoffs. ###
Books<a name=programming_language_theory_formal_verification_books></a></li>
<li><a href="http://adam.chlipala.net/frap">Chlipala. Formal Reasoning
About Programs</a> - A book introducing both machine-checked proof with
Coq Proof Assistant and approaches to formal reasoning about program
correctness.</li>
<li><a href="https://lean-lang.org/documentation/">Lean Proof
Assistant</a> - Lean Proof Assistant. ## Type
Theory<a name=programming_language_theory_type_theory></a> ### Lecture
Notes<a name=programming_language_theory_type_theory_lecture_notes></a></li>
<li><a
href="https://raw.githubusercontent.com/michaelt/martin-lof/master/pdfs/Bibliopolis-Book-retypeset-1984.pdf">Martin-Löf.
Intuitionistic Type Theory</a> - Notes by Giovanni Sambin of a series of
type theory lectures given in Padua, June 1980. ###
Books<a name=programming_language_theory_type_theory_books></a></li>
<li><a
href="https://www.cse.chalmers.se/research/group/logic/book/book.pdf">Bengt.
Programming in Martin-Löfs Type Theory</a> - This book describes
different type theories (theories of types, polymorphic and monomorphic
sets, and subsets) from a computing science perspective.</li>
<li><a href="https://homotopytypetheory.org/book">The Univalent
Foundations Program Institute for Advanced Study. Homotopy Type Theory:
Univalent Foundations of Mathematics</a> - The present book is intended
as a first systematic exposition of the basics of univalent foundations,
and a collection of examples of this new style of reasoning — but
without requiring the reader to know or learn any formal logic, or to
use any computer proof assistant. ## Functional
Programming<a name=programming_language_theory_functional_programming></a>
### Lecture
Notes<a name=programming_language_theory_functional_programming_lecture_notes></a></li>
<li><a href="https://haskell.mooc.fi">Helsinki. Haskell MOOC</a> - An
online course on functional programming with Haskell programming
language, and a live interactive Telegram community.</li>
<li><a href="https://www.cs.cornell.edu/courses/cs3110/2024sp">Cornell.
Functional Programming in Ocaml</a> - A modern course on data structures
and functional programming using OCaml. #
Algorithms<a name=algorithms></a> ##
General<a name=algorithms_general></a> ### Lecture
Videos<a name=algorithms_general_lecture_videos></a></li>
<li><a
href="https://ocw.mit.edu/courses/6-006-introduction-to-algorithms-spring-2020/">Demaine/Ku/Soloman.
Introduction to Algorithms. MIT</a> - A first course on basic algorithms
and data structures. — added by Erik himself!</li>
<li><a
href="https://ocw.mit.edu/courses/6-046j-design-and-analysis-of-algorithms-spring-2015/">Demaine/Devadas/Lynch.
Design and Analysis of algorithms. MIT</a> - A second course on
algorithms and data structures. — added by Erik himself!</li>
<li><a
href="https://ocw.mit.edu/courses/6-851-advanced-data-structures-spring-2012/">Erik
Demaine. Advanced Data Structures. MIT</a> - It covers major results and
current directions of research in data structure. ### Lecture
Notes<a name=algorithms_general_lecture_notes></a></li>
<li><a
href="https://www.cs.princeton.edu/courses/archive/fall15/cos521/">Arora.
Advanced Algorithm Design</a> - Notably uses ideas such as randomness,
approximation, high dimensional geometry. Faces uncertainty, approaches
to handle big data, handling intractability, heuristic approaches,
..etc. ### Books<a name=algorithms_general_books></a></li>
<li><a
href="https://en.wikipedia.org/wiki/The_Art_of_Computer_Programming">Knuth.
The Art of Computer Programming</a> - A legendary series by Donald Knuth
on design and analysis of algorithms. ## Lower
Bounds<a name=algorithms_lower_bounds></a> ### Lecture Videos
Playlists<a name=algorithms_lower_bounds_lecture_videos_playlists></a></li>
<li><a
href="https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-890-algorithmic-lower-bounds-fun-with-hardness-proofs-fall-2014/">Demaine.
Algorithmic Lower Bounds: Fun with Hardness Proofs</a> - A class taking
a practical approach to proving problems cant be solved efficient. ###
Books<a name=algorithms_lower_bounds_books></a></li>
<li><a href="https://hardness.mit.edu/">Demaine, Gasarch &amp;
Hajiaghayi. Computers and Intractability: A Guide to Algorithmic Lower
Bounds</a> - A sequel to Garey and Johnsons Computers and
Intractability: A Guide to NP-Completeness. New topics include
Parameterized Complexity, Lower bounds on approximation, Other hardness
assumptions (ETH, 3SUM-conjecture, APSP-conjecture, UGC, Others), Online
Algorithms, Streaming Algorithms, Polynomial Parity Arguments, and
Parallelism.</li>
<li><a
href="https://www.routledge.com/Games-Puzzles-and-Computation/Hearn-Demaine/p/book/9781568813226">Demaine.
Games, Puzzles, and Computation</a> - It shows that games and puzzles
can serve as powerful models of computation, Offering a new way of
thinking about computation. ## Randomization &amp;
Probability<a name=algorithms_randomization__probability></a> ###
Lecture
Notes<a name=algorithms_randomization__probability_lecture_notes></a></li>
<li><a
href="https://web.stanford.edu/class/archive/cs/cs265/cs265.1232/">Mary
Wootters. Randomized Algorithms and Probabilistic Analysis. Stanford</a>
- Key tools of probabilistic analysis, and application of these tools to
understand the behaviors of random processes and algorithms. Emphasis is
on theoretical foundations, though applications will be discussed in
machine learning and data analysis, networking, and systems. Topics
include tail bounds, the probabilistic method, Markov chains, and
martingales, with applications to analyzing random graphs, metric
embeddings, and random walks.</li>
<li><a
href="https://www.cs.ox.ac.uk/people/elias.koutsoupias/pc2018-19/">Koutsoupias.
Probability and Computing. Oxford</a> - Introduction to probabilistic
methods in computer science.</li>
<li>Harvey. <a href="https://www.cs.ubc.ca/~nickhar/Book1.pdf">First</a>
and <a href="https://www.cs.ubc.ca/~nickhar/Book2.pdf">Second</a> Course
in Randomized Algorithms. Columbia. - Respectively, undergrad and grad
courses for probabilistic methods in algorithms.</li>
<li><a
href="https://homes.cs.washington.edu/~jrl/teaching/cse525sp19/">Lee.
Randomized Algorithms and Probabilistic Analysis. Washington.</a> -
Topics include Discrete probability, High-dimensional geometry and
statistics, Information and entropy, and Markov chains and convergence
to equilibrium.</li>
<li><a
href="https://www.cs.yale.edu/homes/aspnes/classes/469/notes.pdf">Aspnes.
Notes on Randomized Algorithms</a> - Supplemental notes to the standard
books by Mitzenmacher &amp; Upfals, and Motwani &amp; Raghavan. ##
Approximation<a name=algorithms_approximation></a> ### Lecture
Notes<a name=algorithms_approximation_lecture_notes></a></li>
<li><a href="https://courses.engr.illinois.edu/cs583/fa2021/">Chekuri.
Approximation Algorithmis Illinois</a> - A broad introduction to results
and techniques with an emphasis on fundamental problems and widely
applicable tools. Also more advanced and specialized topics.</li>
<li><a
href="https://www.cs.jhu.edu/~mdinitz/classes/ApproxAlgorithms/Spring2021/">Dinitz.
Approximation Algorithms. Johns Hopkins</a> - It includes greedy, local
search, dynamic programming, randomized rounding, tree embeddings, and
semidefinite programming.</li>
<li><a
href="http://www.cs.cmu.edu/afs/cs/academic/class/15854-f05/www/">Gupta
&amp; Ravi. Approximation Algorithms. CMU</a> - It includes convex
programming-based, randomness, and metric methods. ###
Books<a name=algorithms_approximation_books></a></li>
<li><a href="https://www.designofapproxalgs.com/">Williamson &amp;
Shmoys. The Design of Approximation Algorithms</a> - It includes greedy,
local search algorithms, dynamic programming, linear and semidefinite
programming, and randomization.</li>
<li><a
href="https://u.pcloud.link/publink/show?code=XZpzNWXZSCkVs6BKd5RzyNhoRzfJCJoaqSok">Du
&amp; Ko. Design and Analysis of Approximation Algorithms</a> - A
technique-oriented approach provides a unified view. It includes
detailed algorithms, proofs, analyses, examples, and applications from
research papers.</li>
<li><a
href="https://u.pcloud.link/publink/show?code=XZgHNWXZkdvT8L18drSSgLP9vqBIDmbPreD7">Vijay
Vazirani. Approximation Algorithms</a> ##
Parameterized<a name=algorithms_parameterized></a> ### Lecture Videos
Playlist<a name=algorithms_parameterized_lecture_videos_playlist></a></li>
<li><a
href="https://www.youtube.com/playlist?list=PLzdZSKerwrXpr6hWq1s63a42YbkocAK1Q">Parametarized
Algorithms by Warsaw</a> ###
Books<a name=algorithms_parameterized_books></a></li>
<li>Fedor Fomin. Parametrized Algorithms - Modern comprehensive
explanation of recent tools and techniques with exercises, for graduate
students. ##
Learning-augmented<a name=algorithms_learning-augmented></a> ### Lecture
Notes<a name=algorithms_learning-augmented_lecture_notes></a></li>
<li><a
href="https://stellar.mit.edu/S/course/6/sp19/6.890/materials.html">Indyk
&amp; Daskalakis. Learning-augmented Algorithms. MIT</a> ### Big
List<a name=algorithms_learning-augmented_big_list></a></li>
<li><a href="https://algorithms-with-predictions.github.io/">Algorithms
with Predictions</a> # Information/Coding
Theory<a name=informationcoding_theory></a> ## Lecture
Notes<a name=informationcoding_theory_lecture_notes></a></li>
<li><a
href="http://people.seas.harvard.edu/~madhusudan/courses/Spring2020/">Madhu
Sudan. Essential Coding Theory</a> - Some elements of Algorithmic tasks
of encoding and decoding and its connections with error-correction;
These codes are now tools in the design and analysis of algorithms, and
also in many aspects of computational complexity. The focus is on
constructions of algorithmic and asymptotic importance. Requires only
basic mathematical maturity.</li>
<li>Scott Aaronson. Quantum Information Science. <a
href="https://www.scottaaronson.com/qclec.pdf">Part I</a> &amp; <a
href="https://www.scottaaronson.com/qisii.pdf">Part II</a> - Part I:
Presuppose only linear algebra and a bit of classical algorithms. Topics
include quantum circuits, density matrices, entanglement entropy,
Wiesners quantum money, QKD, quantum teleportation, the Bell
inequality, interpretations of QM, the Shor 9-qubit code, and the
algorithms of Deutsch-Jozsa, Bernstein-Vazirani, Simon, Shor, and
Grover. Part II: Perspectives on quantum computing that go beyond the
bare quantum circuit model, like Hamiltonians, Stabilizer formalism,
Bosons and Fermions, Cluster states, and Matrix product states. ##
Workshops<a name=informationcoding_theory_workshops></a></li>
<li><a href="https://simons.berkeley.edu/programs/inftheory2015">Simons
Institute. Information Theory Program</a> - It aims to strengthen the
ties between computation and communication communities. It explores (1)
information theoretic techniques in complexity theory and combinatorics,
(2) Coding theory and applications, and (3) information theory, machine
learning, and big data. ##
Conferences<a name=informationcoding_theory_conferences></a></li>
<li><a
href="https://sites.google.com/view/compression-computation-2022/program">Compression+Computation
2022</a> - It bridges the gap of Theoretical Computer Science and
Bioinformatics communities, On new data compression techniques, and
computation over compressed data. #
Cryptography<a name=cryptography></a> ##
Books<a name=cryptography_books></a></li>
<li><a
href="https://link.springer.com/book/10.1007/978-3-319-57048-8">Lindell.
Tutorials on the Foundations of Cryptography</a> - Advanced tutorials
appropriate for self-study by experienced researchers,</li>
<li><a
href="https://www.wisdom.weizmann.ac.il/~oded/book1.html">Goldreich.
Modern Cryptography, Probabilistic Proofs and Pseudorandomness</a> - An
introduction to the interwoven domains of cryptography, proofs and
randomness.</li>
<li><a href="http://www.wisdom.weizmann.ac.il/~oded/rnd.html">Goldreich.
Randomized Methods in Computation</a> - The aim of the current course is
to make the students familiar with some of randomized methods. # Machine
Learning Theory<a name=machine_learning_theory></a> ## Lecture
Notes<a name=machine_learning_theory_lecture_notes></a></li>
<li><a href="https://home.ttic.edu/~avrim/MLT20/">Blum. An Introduction
to the Theory of Machine Learning. TTIC</a> - The basic theory
underlying machine learning and the process of generalizing from
data.</li>
<li><a href="https://mjt.cs.illinois.edu/dlt/">Telgarsky. Deep Learning
Theory. Illinois</a> - Focuses on simplified proofs over what appears in
the literature, and classical perspective of achieving a low test error
for binary classification with IID data via standard (typically ReLU)
feedforward networks.</li>
<li><a href="http://www.jennwv.com/courses/F11.html">Vaughan. CS260:
Machine Learning Theory</a> - A broad overview of the theoretical
foundations underlying common machine learning algorithms.</li>
<li><a
href="https://www.cs.princeton.edu/~rlivni/cos511/cos511.html">Livni.
COS 511 Theoretical Machine Learning. Princeton</a> - Formally define
and study various models that have been proposed for learning. The
course will present and contrast the statistical, computational and
online models for learning. We will present and rigorously analyze some
of the most successful algorithms in machine learning that are
extensively used today.</li>
<li><a href="https://people.csail.mit.edu/moitra/408b.html">Moitra.
Theoretical Foundations for Deep Learning. MIT</a> - It explores
theoretical foundations for deep learning, emphasizing the following
themes: (1) Approximation: What sorts of functions can be represented by
deep networks, and does depth provably increase the expressive power?
(2) Optimization: Essentially all optimization problems we want to solve
in practice are non-convex. What frameworks can be used to analyze such
problems? (3) Beyond-Worst Case Analysis: Deep networks can memorize
worst-case data, so why do they generalize well on real-world data?</li>
<li><a
href="https://www.cs.princeton.edu/courses/archive/spring15/cos598D/">Arora.
Overcoming Intractability in Machine Learning</a> - A seminar course
that will focus on the following phenomenon: many problems in machine
learning are formally intractable (e.g., NP-hard). Nevertheless they are
solved in practice by heuristics. Can we design algorithms with provable
guarantees (running time, solution quality)? ##
Books<a name=machine_learning_theory_books></a></li>
<li><a
href="https://mitpress.mit.edu/books/introduction-computational-learning-theory">Vazirani
&amp; Kearns. An Introduction to Computational Learning Theory</a> -
Emphasizing issues of computational efficiency, It introduces a number
of central topics in computational learning theory.</li>
<li><a
href="https://www.cambridge.org/core/books/understanding-machine-learning/3059695661405D25673058E43C8BE2A6">Shalev-Shwartz.
Understanding Machine Learning: From Theory to Algorithms</a> - It
provides an extensive theoretical account of the fundamental ideas
underlying machine learning and the mathematical derivations that
transform these principles into practical algorithms. ##
Workshops<a name=machine_learning_theory_workshops></a></li>
<li><a href="https://simons.berkeley.edu/programs/dl2019">Simons
Institute. Foundations of Deep Learning Program</a> - Aligning and
focusing theoretical and applied researchers on the common purpose of
building empirically relevant theoretical foundations of deep learning.
Specifically, the intention was to identify and make progress on
challenges that, on one hand, are key to guiding the real-world use of
deep learning and, on the other hand, can be approached using
theoretical methodology.</li>
<li><a
href="https://simons.berkeley.edu/programs/datascience2018">Simons
Institute. Foundations of Data Science</a> - Identifying a set of core
techniques and principles that form a foundation for the subject.</li>
<li><a
href="https://simons.berkeley.edu/programs/machinelearning2017">Foundations
of Machine Learning</a> - Aims to grow the reach and impact of computer
science theory within machine learning.</li>
<li><a
href="https://unsupervised.cs.princeton.edu/deeplearningtutorial.html">Toward
Theoretical Understanding of Deep Learning</a></li>
<li><a href="https://simons.berkeley.edu/talks/tbd-288">A Brief
Introduction to Theoretical Foundations of Machine Learning and Machine
Teaching</a> - Formal methods and machine learning can inform each other
from deductive and inductive reasoning perspectives. This talk aims to
facilitate the dialogue between the two communities by establishing some
fundamental concepts in learning theory. ##
Other<a name=machine_learning_theory_other></a></li>
<li><a href="https://www.cs.cmu.edu/~avrim/Talks/mlt.pdf">Blum. Intro
Machine Learning Theory</a>.</li>
<li><a href="https://www.cs.cmu.edu/~mblum/search/AGTML35.pdf">Blum,
et.al. Machine Learning, Game Theory, and Mechanism Design for a
Networked World</a>.</li>
<li><a
href="https://cs229.stanford.edu/proj2012/AgrawalJaiswal-WhenMachineLearningMeetsAIandGameTheory.pdf">Agrawal
&amp; Jaiswal. When Machine Learning Meets AI and Game Theory</a>. #
Game Theory<a name=game_theory></a> ## Lecture
Notes<a name=game_theory_lecture_notes></a></li>
<li><a href="https://arxiv.org/abs/1801.00734">Tim Roughgarden.
Complexity Theory, Game Theory, and Economics: The Barbados Lectures</a>
- A mini-course notes of two-fold goals: mini-course is twofold: (i)
Explain how complexity theory has helped illuminate several barriers in
economics and game theory; and (ii) Illustrate how game-theoretic
questions have led to new and interesting complexity theory, including
recent several breakthroughs.</li>
<li><a href="http://www.cs.cornell.edu/courses/cs6840/2012sp/">Eva
Tardos. Algorithmic Game Theory</a> - It combines algorithmic thinking
with game-theoretic, or, more generally, economic concepts. The course
will study a range of topics at this interface. The only prerequisite to
the course is mathematical thinking.</li>
<li><a
href="https://chekuri.cs.illinois.edu/teaching/spring2008/agt.htm">Chekuri.
Topics in Algorithms: Algorithmic Game Theory</a> - A broad
graduate-level introduction to: auctions, existence and computation of
equilibria in games and markets, algorithmic mechanism design, price of
anarchy and price of stability, games relevant to networks and
e-commerce. The emphasis will be on conceptual ideas and algorithmic
aspects. No familiarity with game theory or economics will be
assumed.</li>
<li><a href="https://ml2.inf.ethz.ch/courses/agt/">Penna. Algorithmic
Game Theory</a> - The course discusses algorithmic aspects of game
theory, such as a general introduction to game theory, auctions,
mechanisms, the costs of a central control optimum versus those of an
equilibrium under selfish agents, and algorithms and complexity of
computing equilibria.</li>
<li><a href="http://cs.brown.edu/courses/cs1951k/lectures/">Brown.
Resources list for game theory</a> - TAs based these notes in large part
on the lecture notes and accompanying videos of Tim Roughgardens CS
364A and CS 364B courses at Stanford, and Jason Hartlines Mechanism
Design and Approximation textbook.</li>
<li><a
href="https://feifang.info/advanced-topics-in-machine-learning-and-game-theory-fall-2021/">Fang.
Advanced Topics in Machine Learning and Game Theory</a> - A
graduate-level course covering the topics at the intersection of machine
learning and game theory.</li>
<li><a href="http://www.haifeng-xu.com/cs6501sp21/index.htm">Xu. Topics
in Learning and Game Theory</a> - A graduate level course covering
topics at the interface between machine learning and game theory.</li>
<li><a href="https://timroughgarden.github.io/fob21/">Tim Roughgarden.
Foundations of Blockchains</a> - The science and technology of
blockchain protocols and the applications built on top of them, with an
emphasis on fundamental principles rather than specific protocols. - See
also <a
href="https://www.youtube.com/playlist?list=PLEGCF-WLh2RLOHv_xUGLqRts_9JxrckiA">Lecture
Videos</a>. ## Books<a name=game_theory_books></a></li>
<li><a
href="https://www.cambridge.org/us/academic/subjects/computer-science/programming-languages-and-applied-logic/lectures-game-theory-computer-scientists">Apt
&amp; Grädel. Lectures in Game Theory for Computer Scientists</a> -
Games provide mathematical models for interaction, and numerous tasks in
computer science can be formulated in game-theoretic terms.</li>
<li><a
href="https://www.cambridge.org/core/books/algorithmic-game-theory/0092C07CA8B724E1B1BE2238DDD66B38#fndtn-information">Eva
Tardos &amp; et.al. Algorithmic Game Theory</a> - Basic chapters on
algorithmic methods for equilibria, mechanism design and combinatorial
auctions are followed by chapters on important game theory applications
such as incentives and pricing, cost sharing, information markets and
cryptography and security. ##
Workshops<a name=game_theory_workshops></a></li>
<li><a href="https://simons.berkeley.edu/programs/economics2015">Simons
Institute. Economics and Computation Program</a> - The intersection is
motivated by applications such as large-scale digital auctions and
markets, and fundamental questions such as the computational complexity
of Nash equilibria and complexity and approximation in mechanism design.
Also, To productively model and study the Internet and its novel
computational phenomena, Models and insights can be gained from from
game theory and economic theory. The computational point of view, on the
other hand, is essential to understand a world in which markets are
networked and the default platforms of economic transactions are
algorithmic.</li>
<li><a href="https://simons.berkeley.edu/programs/games2022">Simons
Institute. Learning and Games Program</a> - The intersection is
manifested by (1) Data input to machine learning algorithms are
generated by self-interested parties, (2) Machine learning is used to
optimize economic systems or acts, (3) Machine learning models used in
critical systems are becoming prone to adversarial attacks, and (4)
Several machine learning approaches can be framed as finding the
equilibrium of a game.</li>
<li><a
href="https://simons.berkeley.edu/events/openlectures2015-fall-1">Eva
Tardos. Learning and Efficiency in Games</a> - How to quantify the
impact of strategic user behavior on overall performance in games
including traffic routing as well as online auctions. # Math and
Logic<a name=math_and_logic></a> ##
General<a name=math_and_logic_general></a> ### Lecture Videos
Playlist<a name=math_and_logic_general_lecture_videos_playlist></a></li>
<li><a
href="https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-spring-2015/lecture-slides/">Lehman,
Leighton &amp; Meyer. Mathematics for Computer Science</a> - An
introduction to discrete mathematics oriented toward computer science
and engineering. - <a
href="https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-spring-2015/readings/MIT6_042JS15_textbook.pdf">Companion
Textbook</a> ### Books<a name=math_and_logic_general_books></a></li>
<li><a
href="https://www.pearson.com/us/higher-education/product/Graham-Concrete-Mathematics-A-Foundation-for-Computer-Science-2nd-Edition/9780134389981.html">Knuth,
Graham &amp; Patashnik. Concrete Mathematics: A Foundation for Computer
Science</a> - An expansion of the Mathematical Preliminaries section in
Knuths classic Art of Computer Programming, but the style of
presentation is more leisurely, and individual topics are covered more
deeply.</li>
<li><a href="http://i.stanford.edu/~ullman/focs.html">Aho &amp; Ullman.
Foundations of Computer Science</a> - A classic math-oriented
introduction to computer science.</li>
<li><a
href="https://textbooks.open.tudelft.nl/textbooks/catalog/book/13">Tu
Delft. Delftse Foundations of Computation</a> - A textbook for a one
quarter introductory course in theoretical computer science.</li>
<li><a href="https://www.springer.com/series/5517">Comprehensive
Mathematics for Computer Scientists</a> - A series dedicated to math
topics and their relevance to computer science.</li>
<li><a
href="https://www.maa.org/press/maa-reviews/handbook-of-logic-and-proof-techniques-for-computer-science">Krantz.
Handbook of Logic and Proof Techniques for Computer Science</a> - A
concise offered as an accessible reference on mathematical logic for the
professional computer scientist.</li>
<li><a href="https://www.springer.com/gp/book/9783030422172">Makinson.
Sets, Logic and Maths for Computing</a> - It presents a careful
selection of the material most needed by students in their first two
years studying computer science.</li>
<li><a href="https://www.springer.com/gp/book/9781493932221">Yves
Nievergelt. Logic, Mathematics, and Computer Science: Modern Foundations
with Practical Applications</a> - For lower undergraduates, It
introduces the reader to logic, proofs, sets, and number theory,
Focusing on foundations. It provides complete details and derivations of
formal proofs.</li>
<li><a
href="https://link.springer.com/book/10.1007/978-3-030-64811-4">Lacona.
LOGIC: Lecture Notes for Philosophy, Mathematics, and Computer
Science</a> - Suitable for undergraduate introductions to logic and
early graduate courses on logic.</li>
<li><a href="https://www.springer.com/gp/book/9781447141280">Ben-Ari.
Mathematical Logic for Computer Science</a> - Semantic tableaux are used
because they are theoretically sound and easy to understand.</li>
<li><a href="https://pimbook.org/">Jeremy Kun. A Programmers
Introduction to Mathematics</a> - Uses your familiarity with ideas from
programming and software to teach mathematics.</li>
<li><a href="https://www.springer.com/gp/book/9783030420772">Vince.
Foundation Mathematics for Computer Science: A Visual Approach</a> - A
range of mathematical topics to provide a solid foundation for an
undergraduate course in computer science, starting with a review of
number systems and their relevance to digital computers, and finishing
with differential and integral calculus.</li>
<li><a
href="https://www.springer.com/gp/book/9783319911540">Oberguggenberger
&amp; Ostermann. Analysis for Computer Scientists: Foundations, Methods,
and Algorithms</a> - Presents an algorithmic approach to mathematical
analysis, with a focus on modelling and on the applications of analysis.
### Lecture Notes<a name=math_and_logic_general_lecture_notes></a></li>
<li><a
href="https://www.math.uni.wroc.pl/~mpal/academic/2013/lecture_notes.pdf">Paluszynski.
Calculus for Computer Scientists</a> - calculus lecture notes taught for
undergrad computer science students ## TCS
Toolkit<a name=math_and_logic_tcs_toolkit></a> ### Lecture Videos
Playlists<a name=math_and_logic_tcs_toolkit_lecture_videos_playlists></a></li>
<li><a
href="https://www.youtube.com/playlist?list=PLm3J0oaFux3ZYpFLwwrlv_EHH9wtH6pnX">ODonnell.
CS Theory Toolkit</a> - It covers a large number of the math/CS topics
that you need to know for reading and doing research in Computer Science
Theory - alternatively: <a
href="https://www.bilibili.com/video/BV1Ry4y1e7zR">bilibili</a></li>
<li><a
href="https://home.ttic.edu/~madhurt/courses/toolkit2021/index.html">Madhur
Tulsiani. Mathematical Toolkit</a> - Things prof. Madhur wish he knew in
first year of grad school.</li>
<li><a
href="https://www.tifr.res.in/~prahladh/teaching/2020-21/toolkit/">Harsha
&amp; Strivastava. Toolkit for Theoretical Computer Science. Tata
Institute</a> ### Lecture
Notes<a name=math_and_logic_tcs_toolkit_lecture_notes></a></li>
<li><a href="https://web.stanford.edu/class/cs168/">Gregory Valiant. The
Modern Algorithmic Toolbox. Stanford</a> - It covers hashing, dimension
reduction, linear and convex programming, gradient descent and
regression, sampling and estimation, compressive sensing,
linear-algebraic techniques (principal components analysis, singular
value decomposition, spectral techniques), and an intro to differential
privacy.</li>
<li><a href="https://yuanz.web.illinois.edu/teaching/B609fa16/">Zhou. A
Theorists Toolkit. Illinois</a> - It covers a large number of the
math/CS topics that you need to know for reading and doing research in
Computer Science Theory.</li>
<li><a href="https://www.cs.cmu.edu/~odonnell/toolkit13/">ODonnell. A
Theorists Toolkit. CMU</a> - It covers a large number of the math/CS
topics that you need to know for reading and doing research in Computer
Science Theory.</li>
<li><a
href="https://www.cs.princeton.edu/courses/archive/fall07/cos597D/Site/lectopics.html">Arora.
Thinking Like a Theorist. Princeton</a> - It covers a large number of
the math/CS topics that you need to know for reading and doing research
in Computer Science Theory.</li>
<li><a
href="https://www.cs.princeton.edu/courses/archive/fall02/cs597D/">Arora.
A Theorists Toolkit. Princeton</a> - Aimed primarily at first and
second year graduate students who plan to do research in theoretical
computer science. We will introduce probabilistic, algebraic,
combinatorial, and algorithmic methods useful in proofs.</li>
<li><a
href="https://ocw.mit.edu/courses/18-409-topics-in-theoretical-computer-science-an-algorithmists-toolkit-fall-2009/">Kelner.
Topics in Theoretical Computer Science: An Algorithmists Toolkit.
MIT</a> - It covers a collection of geometric techniques that apply
broadly in modern algorithm design.</li>
<li><a
href="https://www.cs.purdue.edu/homes/hmaji/teaching/Spring%202023/CS-58500-Spring-2023.html">Maji
&amp; Valiant. Theoretical Computer Science Toolkit. Purdue</a> ###
Books<a name=math_and_logic_tcs_toolkit_books></a></li>
<li><a
href="https://web.vu.lt/mif/s.jukna/EC_Book_2nd/index.html">Jukna.
Extremal Combinatorics</a> - Combinatorial techniques written largely
with an eye to their applications in TCS, and mostly in complexity ##
Discrete Mathematics<a name=math_and_logic_discrete_mathematics></a> ###
General<a name=math_and_logic_discrete_mathematics_general></a> ####
Lecture
Notes<a name=math_and_logic_discrete_mathematics_general_lecture_notes></a></li>
<li><a
href="https://www.cs.yale.edu/homes/aspnes/classes/202/notes.pdf">Aspnes.
Notes on Discrete Mathematics</a> - Fall 2017 of the Yale course CPSC
202a, Mathematical Tools for Computer Science.</li>
<li><a
href="https://www.cs.cornell.edu/courses/cs2802/2020fa/cs2802-20f-notes.html">Halpern.
CS 2802: Discrete Structures - Honors. 2020. Cornell</a> - Honors
lecture notes on discrete math - <a
href="https://www.cs.cornell.edu/courses/cs2802/2020fa/cs2802-20f-homework.html">Homework</a>
####
Books<a name=math_and_logic_discrete_mathematics_general_books></a></li>
<li><a
href="https://www.taylorfrancis.com/books/handbook-discrete-combinatorial-mathematics-kenneth-rosen-douglas-shier-wayne-goddard/e/10.1201/9781315156484">Rosen.
Handbook of Discrete and Combinatorial Mathematics</a> - A complete
survey of roughly all topics of discrete math and their relevance to
computing and communication engineering.</li>
<li><a
href="https://www.mheducation.com/highered/product/discrete-mathematics-applications-rosen/M9780073383095.html">Rosen.
Discrete Mathematics and Its Applications</a> - A canonical discrete
math textbook, accessible for even high school students.</li>
<li><a href="https://www.springer.com/gp/book/9783030583750">Rosenberg
&amp; Trystram. Understand Mathematics, Understand Computing: Discrete
Mathematics That All Computing Students Should Know</a> - It endows the
reader with an operational conceptual and methodological understanding
of discrete mathematics for computing</li>
<li><a href="https://www.springer.com/gp/book/9780387941158">Gries &amp;
Schneider. A Logical Approach to Discrete Math</a> - It attempts to
change the way we teach logic to beginning students. Instead of teaching
logic as a subject in isolation, we regard it as a basic tool and show
how to use it. ####
MOOC<a name=math_and_logic_discrete_mathematics_general_mooc></a></li>
<li><a
href="https://www.coursera.org/specializations/discrete-mathematics">Introduction
to Discrete Mathematics for Computer Science. UC San-Diego</a> - Learn
the language of Computer Science. Learn the math that defines computer
science, and practice applying it through mathematical proofs and Python
code. ### Probabilistic
Method<a name=math_and_logic_discrete_mathematics_probabilistic_method></a>
#### Lecture
Notes<a name=math_and_logic_discrete_mathematics_probabilistic_method_lecture_notes></a></li>
<li><a
href="https://ocw.mit.edu/courses/18-226-probabilistic-methods-in-combinatorics-fall-2022/pages/syllabus/">Yufei.
Probabilistic Methods in Combinatorics. MIT</a> and <a
href="https://yufeizhao.com/gtacbook/">Yufeis Graph Theory book</a> -
Showing some combinatorial object exists and prove that a certain random
construction works with positive probability. The course focuses on
methodology as well as combinatorial applications. #### Lecture Videos
Playlist<a name=math_and_logic_discrete_mathematics_probabilistic_method_lecture_videos_playlist></a></li>
<li><a
href="https://www.youtube.com/playlist?list=PL2BdWtDKMS6nRF72s3TOGyBqXwMVHYiLU">Luke
Postle. Probablistic Methods. Waterloo</a> ####
Books<a name=math_and_logic_discrete_mathematics_probabilistic_method_books></a></li>
<li><a
href="https://www.wiley.com/en-us/The+Probabilistic+Method%2C+4th+Edition-p-9781119061953">Alon
&amp; Spencer. The Probabilistic Method</a> - A standard reference for
researchers in probabilistic methods in combinatorics. Shows also
connections to theoretical computer science. ### Graph
Theory<a name=math_and_logic_discrete_mathematics_graph_theory></a> ####
Lecture Videos
Playlist<a name=math_and_logic_discrete_mathematics_graph_theory_lecture_videos_playlist></a></li>
<li><a
href="https://www.youtube.com/playlist?list=PL2BdWtDKMS6mplieDd_vls0TBX9Fq2jht">Graph
Theory by Waterloo</a> ###
Other<a name=math_and_logic_discrete_mathematics_other></a></li>
<li><a href="https://www.springer.com/gp/book/9783319030371">Mariconda
&amp; Tonolo. Discrete Calculus: Methods for Counting</a> - An
introduction to combinatorics, finite calculus, formal series,
recurrences, and approximations of sums. Readers will find also deep
insights into a range of less common topics rarely considered within a
single book. ## Transition To Pure Rigour
Math<a name=math_and_logic_transition_to_pure_rigour_math></a></li>
<li>Velleman. How to Prove it: A Structured Approach. - It transitions
from solving problems to proving theorems by teaching them the
techniques needed to read and write proofs. #
Physics<a name=physics></a> ## Lecture
Notes<a name=physics_lecture_notes></a></li>
<li><a
href="https://www.cs.princeton.edu/courses/archive/spring11/cos116/lectures.php">Arora.
The Computational Universe</a> - Takes us on a broad sweep of scientific
knowledge and related technologies: propositional logic of the ancient
Greeks (microprocessors); quantum mechanics (silicon chips); network and
system phenomena (internet and search engines); computational
intractability (secure encryption); and efficient algorithms (genomic
sequencing). ## Books<a name=physics_books></a></li>
<li><a
href="https://www.taylorfrancis.com/books/feynman-computation-anthony-hey/e/10.1201/9780429500459">Feynman.
Feynman And Computation: Exploring The Limits Of Computers</a></li>
<li>Feynmans Course on Computation - See also Preskills update 40
years later <a href="https://arxiv.org/abs/2106.10522">here</a> ##
Monographs<a name=physics_monographs></a></li>
<li><a
href="https://link.springer.com/book/10.1007/978-3-030-45109-7">Susskind.
Three Lectures on Complexity and Black Holes</a> - Important connections
between thermodynamics and complexity are proposed and discussed.
Pedagogically written, serves as a fundamental introduction to black
holes and their complex physical interpretation #
Philosophy<a name=philosophy></a> ## Lecture
Notes<a name=philosophy_lecture_notes></a></li>
<li><a
href="https://stellar.mit.edu/S/course/6/fa11/6.893/index.html">6.893
Philosophy and Theoretical Computer Science. MIT</a> - It examines the
relevance of modern theoretical computer science to traditional
questions in philosophy, and conversely, what philosophy can contribute
to theoretical computer science. ##
Books<a name=philosophy_books></a></li>
<li><a
href="https://web.stanford.edu/group/cslipublications/cslipublications/site/1575863278.shtml">Knuth.
Things a Computer Scientist Rarely Talks About</a> - A general
illustration of relations between faith and science.</li>
<li><a href="https://www.springer.com/gp/book/9783319532783">Floyd &amp;
Bokulich. Philosophical Explorations of the Legacy of Alan Turing:
Turing 100</a> - Turings place in the history and philosophy of
science. ## Papers<a name=philosophy_papers></a></li>
<li><a href="https://www.scottaaronson.com/papers/philos.pdf">Aaronson.
Why Should Philosophers Care About Computational Complexity Theory</a> -
It argues that computational complexity theory leads to new perspectives
on the nature of mathematical knowledge and other philosophical
questions.</li>
<li><a
href="https://www.researchgate.net/publication/227171743_Is_Quantum_Mechanics_Falsifiable_A_computational_perspective_on_thefoundations_of_Quantum_Mechanics">Aharonov
&amp; Vazirani, Is Quantum Mechanics Falsifiable? A Computational
Perspective on the Foundations of Quantum Mechanics</a> - It describes
how quantum mechanics can be tested in the limit of high complexity
regime by extending the usual scientific paradigm to include.</li>
<li><a
href="https://academic.oup.com/philmat/article/27/3/381/5613215">Walter
Dean. Computational Complexity Theory and the Philosophy of
Mathematics</a> - It highlights the significance of complexity theory
relative to questions traditionally asked by philosophers of mathematics
while also attempting to isolate some new ones.</li>
<li><a
href="https://plato.stanford.edu/entries/computational-complexity/">Stanford
Encyclopedia of Philosophy. Computational Complexity Theory</a> - The
foundations of complexity theory, and its potential significance on
philosophy of computer science, philosophy of mathematics and
epistemology.</li>
<li><a href="https://www.jstor.org/stable/40247755">Philip Davis. Toward
a Philosophy of Computation</a> - Philosophical implication of
mathematization and computerization of the world. # Surveys &amp;
Monographs<a name=surveys__monographs></a></li>
<li><a
href="https://link.springer.com/book/10.1007/978-3-319-22156-4">Sommaruga
&amp; Strahm. Turings Revolution: The Impact of His Ideas about
Computability</a> - A collection of historical, technical and
philosophical papers.</li>
<li><a
href="https://mitpress.mit.edu/9780262045308/ideas-that-created-the-future/">Harry
Lewis. Ideas That Created the Future: Classic Papers of Computer
Science</a> - Classic papers by thinkers ranging from Aristotle and
Leibniz to Norbert Wiener and Gordon Moore that chart the evolution of
computer science.</li>
<li><a
href="https://rd.springer.com/book/10.1007/978-3-540-85221-6">Building
Bridges I</a>, <a
href="https://link.springer.com/book/10.1007/978-3-662-59204-5">Building
Bridges II</a>, <a
href="https://link.springer.com/book/10.1007/978-3-642-13580-4">Fete of
Combinatorics and Computer Science</a> - Collected works in celebration
of Laszlo Lovasz, Connecting discrete math with computer science.</li>
<li><a
href="https://www.researchgate.net/profile/Lance-Fortnow/publication/220530495_A_Short_History_of_Computational_Complexity/links/0deec52bd7ab603fef000000/A-Short-History-of-Computational-Complexity.pdf">Fortnow
&amp; Homer. A Short History of Computational Complexity</a> - A
historical overview of computational complexity.</li>
<li><a href="http://www.wisdom.weizmann.ac.il/~oded/sst.html">Goldreich.
Providing Sound Foundations for Cryptography: On the Work of Shafi
Goldwasser and Silvio Micali</a> - It explains the remarkable work of
Shafi and Silvio and their works implications on foundations of
cryptography. # Community<a name=community></a> ## Conferences &amp;
Workshops<a name=community_conferences__workshops></a> ###
Aggregators<a name=community_conferences__workshops_aggregators></a></li>
<li><a
href="https://www.lix.polytechnique.fr/~hermann/conf.php">Hermanns
Conferences in TCS</a> - TCS Conferences collected in one table.</li>
<li><a href="https://cstheory-events.org/">CS Theory Events
Aggregator</a> - An aggregator for CS theory workshops and schools.</li>
<li><a href="https://dmatheorynet.blogspot.com/">Theory
Announcements</a> - DMANET spreads information on conferences,
workshops, seminars etc. relating to discrete mathematics and
algorithms.</li>
<li><a href="https://cstheory.stackexchange.com/a/7901/57686">Salamons
List</a> - Selected Conferences. ###
Live<a name=community_conferences__workshops_live></a></li>
<li><a href="https://simons.berkeley.edu/">Simons Institute</a> -
Programs, Events, and workshops, that aim toward maximizing impact and
engagement across the theoretical computer science community.</li>
<li><a href="https://www.youtube.com/user/TCSplusSeminars">TCS+</a> - A
series of online seminars in theoretical computer science. The goal is
to make engaging talks accessible to the widest possible audience.</li>
<li><a
href="https://www.youtube.com/channel/UCWFp4UWNiOv71j0sPbdNiqw">CMU
Theory</a> - Aims for a mathematical understanding of fundamental issues
in Computer Science, and to use this understanding to produce better
algorithms, protocols, and systems, as well as identify the inherent
limitations of efficient computation. ###
Archived<a name=community_conferences__workshops_archived></a></li>
<li><a
href="https://www.youtube.com/playlist?list=PLn0nrSd4xjjYCkOxtYqozyDuwt-4sC2L6">Turing
Laureates Lectures</a> and <a
href="https://www.youtube.com/playlist?list=PLn0nrSd4xjjaSLBSzmno-3Ods6FJE9nlO">Turing
Laureates Interviews</a> - ACM Turing Award Laureates delivers a lecture
before a forum of their choice on a subject of their choice.</li>
<li><a
href="https://www.youtube.com/channel/UCzBw287tly0c2lE6a-9XymA">Computational
Complexity</a> - Collection of workshops. ## Magazines &amp;
Newsletter<a name=community_magazines__newsletter></a></li>
<li><a href="https://eatcs.org/index.php/on-line-issues">EATCS
Bulletin</a> - Surveys, tutorials, conferences reports, events, open
problems and solutions, PhD Theses, and entertaining contributions.</li>
<li><a href="https://dl.acm.org/loi/sigact">SIGACT News</a> - ACMs
official theoretical computer science news feed.</li>
<li><a href="https://www.nowpublishers.com/TCS">Foundations and Trends
in Theoretical Computer Science</a> - It provides monographs written by
leaders that give tutorial coverage of subjects, research retrospectives
as well as survey papers that offer state-of-the-art reviews fall within
the scope of the journal.</li>
<li><a
href="https://www.quantamagazine.org/tag/computational-complexity">Quanta
Magazine</a> - Features breakthroughs in the field, written in an
accessible style for non-experts. ##
Associations<a name=community_associations></a></li>
<li><a href="https://sigact.org/">ACMs SIGACT</a></li>
<li><a href="https://www.eatcs.org/">European Association of TCS</a> ##
Blogs<a name=community_blogs></a> ###
Aggregators<a name=community_blogs_aggregators></a></li>
<li><a href="https://theory.report/">Theory of Computing Blog
Aggregator</a> - A blog Aggregator for all blogs related to TCS. ###
Selected Posts and
Essays<a name=community_blogs_selected_posts_and_essays></a></li>
<li><a
href="https://omereingold.wordpress.com/cs-163-the-practice-of-theory-research/">Omer
Reingold. The Practice of Theory Research</a> - A research methods
course, concentrating on the how rather than the what. It focuses on
research practices common for computer science theory research.</li>
<li><a
href="https://theorydish.blog/2021/04/15/toc-a-personal-perspective-2021/">Omer
Reingold. TOC: a Personal Perspective (2021)</a> - In celebration of 25
years for “TOC: a Scientific Perspective (1996),” by Oded Goldreich and
Avi Wigderson. It spots the light on a criticism directed to TCS, that
it is not as deep as Math and not as useful as CS.</li>
<li><a href="https://www.cs.cmu.edu/~mblum/research/pdf/grad.html">Blum.
You and Your Research: An Advice to a Beginning Graduate Student</a> -
Manuel Blum, A very popular figure in TCS, gives research advices for
juniors.</li>
<li><a
href="https://link.springer.com/chapter/10.1007%2F978-1-4612-5695-3_58">Dijkstra.
The Three Golden Rules for Successful Scientific Research</a> - A note
devoted to three rules that must be followed if you want to be
successful in scientific research.</li>
<li><a
href="http://www.wisdom.weizmann.ac.il/~oded/essays.html">Goldreich.
Essays and Opinions</a> - Personal Essays by Oded Goldreich. They are
very unique in their conceptual message of TCS and its community.</li>
<li><a
href="https://windowsontheory.org/2015/11/03/advice-for-the-budding-theorist/">Barak.
Advice for The Budding Theorist</a> - Tips for anyone interested in
theoretical computer science.</li>
<li><a href="https://thmatters.wordpress.com/surveys/">Barak. Surveys
For Students</a> - Surveys for high-school, undergraduate, and even
researchers.</li>
<li><a href="https://www.boazbarak.org/informal/">Barak. Non-technical
or Less-technical Writings and Talks</a> - Posts oriented more for a
less-technically matured audience.</li>
<li><a
href="https://rjlipton.wpcomstaging.com/2022/01/26/a-list-of-most-theory-blogs/">Lipton
&amp; Regan</a> - A list of theory blogs for computer science.</li>
<li><a
href="https://www2.eecs.berkeley.edu/bears/CS_Anniversary/karp-talk.html">Karp.
A Personal View of Computer Science at Berkeley</a> - Karp addresses: In
1968 computer science at Berkeley was problematic, with two departments
working independently to develop programs, and his personal
reflections.</li>
<li><a
href="https://www.cs.virginia.edu/~robins/YouAndYourResearch.html">Hamming.
You and Your Research</a> - Why do so few scientists make significant
contributions and so many are forgotten in the long run? The talk is
about what Hamming has learned.</li>
<li><a href="https://www.nature.com/articles/426389a">Weinberg. Four
Golden Lessons</a> - Lessons for students and researchers given by
Steven Weinberg.</li>
<li><a
href="http://assets.press.princeton.edu/chapters/gowers/gowers_VIII_6.pdf">Princetons
Companion. Advice to a Young Mathematician</a> - Five contributors draw
on their experiences of mathematical life and research, and to offer
advice that they might have liked to receive when they were just
setting-out on their careers.</li>
<li><a href="https://terrytao.wordpress.com/career-advice/">Terry.
Career Advice</a> - A collection of various pieces of advice on academic
career issues in mathematics, roughly arranged by the stage of career at
which the advice is most pertinent.</li>
<li><a
href="https://igorpak.wordpress.com/2022/10/26/how-to-start-a-paper/">Igor
Pak. How to Start a Paper</a> - Why should you introduce a conceptual
preliminary motivating the story of your paper. ##
Jobs<a name=community_jobs></a></li>
<li><a
href="https://www.cs.princeton.edu/~smattw/masters/masters.html">Rubinstein
&amp; Weinberg. Research Masters in TCS</a> - A list of master programs
in TCS.</li>
<li><a href="https://cstheory-jobs.org">CS Theory Jobs</a> - TCS Jobs
announcements.</li>
<li><a href="http://grigory.us/blog/posts/">Yaroslavtsev. Hires
spreadsheet 2022</a> - A crowdsourced spreadsheet created to collect
information about theory hires in year 2022. ## Online
Communities<a name=community_online_communities></a></li>
<li><a href="https://cstheory.stackexchange.com/">TCS Stack Exchange</a>
- Research-oriented Q&amp;A of theoretical computer science.</li>
<li><a href="https://www.reddit.com/r/theoreticalcs">TCS Subreddit</a>-
Theoretical computer sciences subreddit. # Other<a name=other></a> ##
Podcasts<a name=other_podcasts></a></li>
<li>Lex Fridman - <a
href="https://www.youtube.com/watch?v=2BdBfsXbST8">Donald Knuth 1</a> |
<a href="https://www.youtube.com/watch?v=EE1R8FYUJm0">Donald Knuth 2</a>
| <a href="https://www.youtube.com/watch?v=zNdhgOk4-fE">Silvio
Micali</a> | <a
href="https://www.youtube.com/watch?v=KllCrlfLuzs">Richard Karp</a> | <a
href="https://www.youtube.com/watch?v=uX5t8EivCaM">Scott Aaronson 1</a>
| <a href="https://www.youtube.com/watch?v=nAMjv0NAESM">Scott Aaronson
2</a></li>
<li><a
href="https://www.youtube.com/playlist?list=PLUFeA6y-5sFmXMJv2uAmMig3Urgfkg_2O">Berkeley
in the 80s</a> - Interviews with eminent figures in Berkeley.</li>
<li><a
href="https://www.youtube.com/playlist?list=PLgKuh-lKre134Psz9KECgjuwJ47l3IvqW">Simons
Theory Shorts</a> - Short accessible videos which populate theory of
computation.</li>
<li><a
href="https://www.youtube.com/playlist?list=PLn0nrSd4xjjbCHzgtvc9HDRU80HHaD0Lr">ACM
ByteCast</a> - Researchers, practitioners and innovators who are at the
intersection of research and practice, sharing their experiences,
lessons, visions for the future. ## Popular
Science<a name=other_popular_science></a></li>
<li><a href="https://dl.acm.org/toc/xrds/2012/18/3">The Legacy of Alan
Turing: Pushing the Boundaries of Computation (Volume 18, Issue 3,
Spring 2012). ACM, XRDS</a> - ACMs students magazine special issue for
theory of computation.</li>
<li><a href="https://goldenticket.fortnow.com">Fortnow. The Golden
Ticket: P, NP, and the Search for the Impossible</a> - A nontechnical
introduction to P-NP, its rich history, and its algorithmic implications
for everything we do with computers and beyond.</li>
<li><a
href="https://link.springer.com/book/10.1007/978-3-319-62680-2">Ausiello.
The Making of a New Science: A Personal Journey Through the Early Years
of Theoretical Computer Science</a> - A story about people, pioneers
with diverse backgrounds and characters who established a new
field.</li>
<li><a
href="https://assets.cambridge.org/97805211/99568/frontmatter/9780521199568_frontmatter.pdf">Aaronson.
Quantum Computing Since Democritus</a> - It covers an amazing array of
topics. Beginning in antiquity with Democritus, it progresses through
logic and set theory,computability and complexity theory, quantum
computing, cryptography, the information content of quantum states, and
the interpretation of quantum mechanics.</li>
<li><a
href="http://www.daviddeutsch.org.uk/books/the-fabric-of-reality/">Deutsch.
The Fabric of Reality: The Science of Parallel Universes and Its
Implications</a> - The Fabric of Reality presents a startlingly
integrated, rational and optimistic world view the result of taking
seriously the deepest ideas of modern science and the philosophy of
science.</li>
<li><a
href="https://mitpress.mit.edu/books/turing-novel-about-computation">Papadimitriou.
Turing: A Novel About Computation</a> - The world of computation
according to Turing, an interactive tutoring program, as told to
star-crossed lovers: a novel.</li>
<li><a
href="https://link.springer.com/book/10.1007/978-3-662-05642-4">Teuscher.
Alan Turing: Life and Legacy of a Great. Springer</a> - Essays which
spans the entire rich spectrum of Turings life, research work and
legacy.</li>
<li><a href="http://www.charlespetzold.com/AnnotatedTuring/">Petzold.
The Annotated Turing: A Guided Tour Through Alan Turings Historic Paper
on Computability and the Turing Machine</a> - A Guided Tour through Alan
Turings Historic Paper on Computability and the Turing Machine.</li>
<li><a href="https://www.springer.com/gp/book/9780387982694">Shasha
&amp; Lazere. Out of their Minds: The Lives and Discoveries of 15 Great
Computer Scientists</a> - Interviews with eras greatest scientists
about their inspirations, discoveries, and personal interests. ## Cheat
Sheets<a name=other_cheat_sheets></a></li>
<li><a
href="https://www.cosy.sbg.ac.at/~held/teaching/aads/TCS-cheat_sheet.pdf">TCS
Cheat Sheet</a> - A sheet of notes containing essential toolboxes needed
by any theoretical computer scientist.</li>
<li><a href="http://www.lkozma.net/inequalities_cheat_sheet/">Useful
Inequalities Cheat Sheet</a> # Related
Lists<a name=related_lists></a></li>
<li><a
href="https://github.com/tayllan/awesome-algorithms">Algorithms</a>.</li>
<li><a href="https://github.com/rossant/awesome-math">Mathematics</a> -
Freely available lecture notes on mathematics.</li>
<li><a href="https://ncatlab.org/nlab/show/mathematics">nLab</a> &amp;
<a href="https://github.com/jozefg/learn-tt">Gratzer</a> - Logic, Math,
Proof Assistants, and Type Theory.</li>
<li><a
href="https://github.com/sobolevn/awesome-cryptography">Cryptography</a>.</li>
<li><a
href="https://github.com/desireevl/awesome-quantum-computing">Quantum
Computing</a>.</li>
<li><a href="https://github.com/ossu/math">Math</a> and <a
href="https://github.com/ossu/computer-science">CS</a> curricula by <a
href="https://github.com/ossu">Open Source Society University</a>.</li>
</ul>
<p><a
href="https://github.com/mostafatouny/awesome-theoretical-computer-science">theoreticalcomputerscience.md
Github</a></p>