From charlesreid1

computer science: the science of problem-solving with computers, computational devices, and computational methods.

Study Notes

We put together a repository with a detailed outline of topics in computer science as part of a CS study plan. We updated it with notes and code (links to this wiki, and to git repos).

That repository can be found here: https://git.charlesreid1.com/cs/study-plan

Topics

Computer Science Topics

List of topics, with links to notes on this wiki and code in git repos: https://git.charlesreid1.com/cs/study-plan/src/master/TODOSoftwareEngineering.md

List of topics:

  • Data Structures
  • Algorithms
  • Mathematics
    • Combinatorics
    • Probability
    • Number Theory
    • Numerics
  • Languages and APIs

Data Structures

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

Polished summaries of information: Study Guides

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

Topics:

Algorithms

Algorithms can be divided into categories:


Programming practice and writeups:

Combinatorics and Probability

Analytic Combinatorics

Outline of combinatorics content:

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

Basic Combinatorics:

Generating Functions:

Excellent textbook: http://algo.inria.fr/flajolet/Publications/book.pdf

Graph Theory

Notes on graph theory:

Notes on data structures for graphs:

Numerics

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

Numerics topics:

  • Linear Algebra and linear solvers
  • Solving Nonlinear Equations and root-finding
  • Interpolation and extrapolation
  • Integration and function evaluation
  • Minimization and maximization, optimization
  • Model-building

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 libraries

Infrastructure:

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

Study Resources

Math:

Algorithms:

Meta:

Flags

Computer Science





See also:

Data Structures
































Algorithms







CS/OldPage