Computer science learning path
My number #2
learning path.
Learning goals:
- Unlock potential to solve complex, challenging problems.
- Give me opportunity for properly organize the architecture of program/computing system.
- Make world better with efficient written programs, which solve human problems.
Computer science is closely related to programming learning path.
High-level topics
- computational complexity
- big O notation
- Asymptotic analysis
- Data Structures
- array
- set
- Linked Lists
- stack
- queue
- hash table
- More Knowledge
- linear search
- binary search
- Bitwise operations
- Trees
- sorting algorithm
- selection sort
- insertion sort
- heapsort
- quicksort
- mergesort
- graph
- directed
- undirected
- adjacency matrix
- adjacency list
- traversals: BFS, DFS
- Even More Knowledge
- recursion
- dynamic programming
- Design Patterns
- combinatorics
- NP, NP-Complete and Approximation Algorithms
- How computers process a program
- cache computing
- Processes and Threads
- software testing
- String searching & manipulations
- Tries
- floating-point arithmetic
- Unicode
- Endianness
- Networking
Optional Extra Topics & Resources
- System Design, Scalability, Data Handling
- Additional Learning
- compiler
- Emacs and Neovim
- Unix commands
- information theory
- Parity & Hamming Code
- Entropy
- cryptography
- Compression
- computer security
- garbage collection
- Parallel Programming
- Messaging, Serialization, and Queueing Systems
- A*
- Fast Fourier Transform
- Bloom Filter
- HyperLogLog
- Locality-Sensitive Hashing
- van Emde Boas Trees
- Augmented Data Structures
- Balanced search trees
- AVL trees
- Splay trees
- Red/black trees
- 2-3 search trees
- 2-3-4 Trees (aka 2-4 trees)
- N-ary (K-ary, M-ary) trees
- B-Trees
- k-D Trees
- Skip lists
- Network Flows
- Disjoint Sets & Union Find
- Math for Fast Processing
- Treap
- Linear Programming
- Geometry, Convex hull
- Discrete math
Cheat sheets, glossaries, outlines
- Wikipedia-Glossary of computer science
- Algorithm
- Wikipedia - List of algorithms
- Nova Byrne-Tech yourself computer science
Resources
-
The Man Who Revolutionized Computer Science With Math - YouTube
-
[!] Cormen et al-Introduction to algorithms. In fact, I need to improve my mathematics skills for this book.
-
Hopcroft and Motwani and Ullman-Introduction to Automata Theory Languages and Computation
-
Visualising data structures and algorithms through animation
External links
- Хирьянов - Алгоритмы и структуры данных.
- Khan Academy - Computer science
- OpenCourseWare - Introduction to Computer Science and Programming in Python
- OpenCourseWare - Introduction to Computer Science and Programming
- San Diego University-Algorithmic Toolbox
- Stepic - computer science
- Algorithms Specialization
- Coursera - Algorithms on Graphs
- AlgoList - алгоритмы, методы, исходники
- Keon-Pythonic Data Structures
- Introduction to Computer Science and Programming in Python
- Python Data Structures/Algorithms Class
- Problem Solving with Algorithms and Data Structures using Python