From charlesreid1

Computer Science: the science of computing. Or, the science of problem-solving with computers, computational devices, and computational methods.

Study Notes

See CS study plan repo for more detailed notes: https://charlesreid1.com:3000/cs/study-plan

Topics

Computer Science

Link: https://charlesreid1.com:3000/cs/study-plan/src/master/TODOSoftwareEngineering.md

CS list of topics:

Data Structures

Algorithms

Mathematics - Combinatorics and Probability

Mathematics - Number Theory

Mathematics - Numerics

Languages

Data Structures

Main Data Structures Page: Data Structures (see also: Template:DataStructuresFlag)

Polished summaries of information: Study Guides

Link: https://charlesreid1.com:3000/cs/study-plan/src/master/TODOSoftwareEngineering.md

Topics:

Algorithms

Algorithms

Algorithms can be divided into categories:


Programming practice and writeups:

Combinatorics and Probability

Analytic Combinatorics textbook - link here: http://algo.inria.fr/flajolet/Publications/book.pdf

Outline of combinatorics content:

  • Combinatorial structures - use ordinary generating functions
  • Labelled structures - use exponential generating functions
  • Combinatorial parameters - use multivariate generating functions

Basic Combinatorics:

  • Algorithms/Combinatorics
    • Binomial coefficients
    • Multinomial coefficeints
    • Multisets
    • Art of Computer Programming coverage of combinatorics

Generating Functions:


Graph Theory

Graphs

Notes on graph theory:

Notes on data structures for graphs:

Number Theory

Languages and Tools:

  • Java for number theory
  • Pari GP
  • Mathematica

Numerics

Link: https://charlesreid1.com:3000/cs/study-plan/src/master/TODONumerics.md

Numerics topics corresponding to particular chapters:

  • Linear solvers - linear algebra
  • Nonlinear solvers -root-finding
  • Interpolation and extrapolation
  • Integration and function evaluation

Languages and Tools

Languages:

  • Java
  • Python
  • Go (minimal)
  • C++ (minimal)
  • Scala (minimal)

Tool categories:

  • Built-in data structures (solid)
  • Extended data structures libraries (Pandas, Guava) and utility libraries (itertools, Apache Commons)
  • Numerical libraries (big numbers, factoring, exponents, root finding, linear solvers, nonlinear solvers)
  • Graph library

Infrastructure:

  • Testing infrastructure & best practices (JUnit)
  • Build tools (Bezel, Maven)

Study Resources

Math:

Some nice awesome lists:

Meta:

Programming tests:

Growth hacking:

Flags

Computer Science





See also:

Data Structures




























Algorithms







CS/OldPage