Skip to content

DanilaFadeev/computer-science-course

Repository files navigation

Table of contents

  1. Introduction to Algorithms
  2. Grokking Algorithms
  3. Practice Python
  4. Other materials

Introduction to Algorithms

Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein

Table of contents

  • I Foundations

    • 1 The Role of Algorithms in Computing
    • 2 Getting Started
    • 3 Growth of Functions
    • 4 Divide-and-Conquer
    • 5 Probabilistic Analysis and Randomized Algorithms
  • II Sorting and Order Statistics

    • 6 Heapsort
    • 7 Quicksort
    • 8 Sorting in Linear Time
    • 9 Medians and Order Statistics
  • III Data Structures

    • 10 Elementary Data Structures
    • 11 Hash Tables
    • 12 Binary Search Trees
    • 13 Red-Black Trees
    • 14 Augmenting Data Structures
  • IV Advanced Design and Analysis Techniques

    • 15 Dynamic Programming
    • 16 Greedy Algorithms
    • 17 Amortized Analysis
  • V Advanced Data Structures

    • 18 B-Trees
    • 19 Fibonacci Heap
    • 20 Van Emde Boas Trees
    • 21 Data Structures for Disjoint Sets
  • VI Graph Algorithms

    • 22 Elementary Graph Algorithms
    • 23 Minimum Spanning Trees
    • 24 Single-Source Shortest Paths
    • 25 All-Pairs Shortest Paths
    • 26 Maximum Flow
  • VII Selected Topics

    • 27 Multithreaded Algorithms
    • 28 Matrix Operations
    • 29 Linear Programming
    • 30 Polynomials and the FFT
    • 31 Number-Theoretic Algorithms
    • 32 String Matching
    • 33 Computational Geometry
    • 34 NP-Completeness
    • 35 Approximation Algorithms
  • VIII Appendix: Mathematical Background

    • A Summations
    • B Sets, Etc.
    • C Counting and Probability
    • D Matrices

Grokking Algorithms

Aditya Y. Bhargava

Table of contents

  • Chapter 1. Introduction to Algorithms

  • Chapter 2. Selection Sort

  • Chapter 3. Recursion

  • Chapter 4. Quicksort

  • Chapter 5. Hash Tables

  • Chapter 6. Breadth-first Search

  • Chapter 7. Dijkstra’s algorithm

  • Chapter 8. Greedy algorithms

  • Chapter 9. Dynamic programming

  • Chapter 10. K-nearest neighbors

  • Chapter 11. Where to go next

Practice Python

Beginner Python exercises from resource https://www.practicepython.org/.

List of exercises

Other materials

  • C++ Essential Training (Video course)

    Learn C++ programming, starting with the basics. Widely used for both systems and applications development, C++ is available for virtually every operating system and has influenced and informed many derivative languages, including C# and Java. In this course, Bill Weinman guides you through the nuts and bolts of this essential language.


  • The C Programming Language (Book) The C Programming Language (sometimes termed K&R, after its authors' initials) is a computer programming book written by Brian Kernighan and Dennis Ritchie, the latter of whom originally designed and implemented the language, as well as co-designed the Unix operating system with which development of the language was closely intertwined.

About

Theory and practice computer science mastery πŸ‘¨β€πŸ’»

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published