From charlesreid1

 
(23 intermediate revisions by the same user not shown)
Line 1: Line 1:
Computer Science: the science of computing. Or, the science of problem-solving with computers, computational devices, and computational methods.
computer science: the science of problem-solving with computers, computational devices, and computational methods.


=Study Notes=  
=Study Notes=  


See CS study plan repo for more detailed notes: https://charlesreid1.com:3000/cs/study-plan
{{Main|Study Guides}}


=Topics=
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).


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


Link: https://charlesreid1.com:3000/cs/study-plan/src/master/TODOSoftwareEngineering.md
=Topics=
 
[[CS]] list of topics:
 
Data Structures
 
Algorithms
 
Mathematics - Combinatorics and Probability


Mathematics - Number Theory
==Computer Science Topics==


Mathematics - Numerics
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


Languages
List of topics:
* Data Structures
* Algorithms
* Mathematics
** Combinatorics
** Probability
** Number Theory
** Numerics
* Languages and APIs


===Data Structures===
===Data Structures===
Line 31: Line 31:
Polished summaries of information: [[Study Guides]]
Polished summaries of information: [[Study Guides]]


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


Topics:
Topics:
Line 42: Line 42:
* [[Maps]]
* [[Maps]]
* [[Binary Trees]]
* [[Binary Trees]]
* [[Abstract Data Types]] - general classes of data structures
* [[Graphs]]
* [[Abstract Data Types]] - ADTs for general design of data structure classes


===Algorithms===
===Algorithms===


[[Algorithms]]
{{Main|Algorithms}}


Algorithms can be divided into categories:
Algorithms can be divided into categories:
Line 66: Line 67:
===Combinatorics and Probability===
===Combinatorics and Probability===


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


Outline of combinatorics content:
Outline of combinatorics content:


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


Basic Combinatorics:
Basic Combinatorics:
Line 82: Line 79:
* [[Algorithms/Combinatorics]]
* [[Algorithms/Combinatorics]]
** Binomial coefficients
** Binomial coefficients
** Multinomial coefficeints
** Multinomial coefficients
** Multisets
** Multisets
** Art of Computer Programming coverage of combinatorics
** Coverage of combinatorics in [[Art of Computer Programming]]
 
 


[[Generating Functions]]:
[[Generating Functions]]:
Line 94: Line 89:
* [[Exponential Generating Functions]]
* [[Exponential Generating Functions]]


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


===Graph Theory===


[[Probability Distributions]]:
{{Main|Graphs}}


* [[Gaussian Distribution]]
Notes on graph theory:


* [[Binomial Distribution]]
* [[Graphs/Definitions]]
* [[Graphs/Matching]]
* [[Graphs/Connectivity]]


* [[Multinomial Distribution]]
Notes on data structures for graphs:


* [[Bernoulli Distribution]] - the Bernoulli distribution is a special case of the binomial distribution for a single trial
* [[Graphs/Data Structures]]
 
* [[Graphs/ADT]]
* [[Poisson Distribution]]
 
* [[Cauchy Distribution]]
 
See https://github.com/rossant/awesome-math
 
===Number Theory===
 
Languages and Tools:
* Java for number theory
* Pari GP
* Mathematica


===Numerics===
===Numerics===


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


[[Numerics]] topics corresponding to particular chapters:
[[Numerics]] topics:
* Linear solvers - linear algebra
* [[Linear Algebra]] and linear solvers
* Nonlinear solvers -root-finding
* [[Solving Nonlinear Equations]] and root-finding
* Interpolation and extrapolation
* Interpolation and extrapolation
* Integration and function evaluation
* Integration and function evaluation
* Minimization and maximization, optimization
* Model-building


===Languages and Tools===
===Languages and Tools===


Languages:
Languages:
* Java
* [[Java]]
* Python
* [[Python]]
* Go (minimal)
* Go (minimal)
* C++ (minimal)
* C++ (minimal)
Line 142: Line 131:
* Extended data structures libraries (Pandas, Guava) and utility libraries (itertools, Apache Commons)
* Extended data structures libraries (Pandas, Guava) and utility libraries (itertools, Apache Commons)
* Numerical libraries (big numbers, factoring, exponents, root finding, linear solvers, nonlinear solvers)
* Numerical libraries (big numbers, factoring, exponents, root finding, linear solvers, nonlinear solvers)
* Graph library
* Graph libraries


Infrastructure:
Infrastructure:
Line 153: Line 142:
* Awesome math: https://github.com/rossant/awesome-math
* Awesome math: https://github.com/rossant/awesome-math


Some nice awesome lists:
Algorithms:
* Awesome algorithms: https://github.com/tayllan/awesome-algorithms
* Awesome algorithms: https://github.com/tayllan/awesome-algorithms
* Awesome challenges: https://github.com/mauriciovieira/awesome-challenges
* Awesome challenges: https://github.com/mauriciovieira/awesome-challenges
Line 160: Line 149:
* awesome-awesomeness: https://github.com/sindresorhus/awesome
* awesome-awesomeness: https://github.com/sindresorhus/awesome
* sindresorhus/awesome: https://github.com/sindresorhus/awesome
* sindresorhus/awesome: https://github.com/sindresorhus/awesome
Programming tests:
* http://smarterer.com/tests/categories/Programming
Growth hacking:
* https://github.com/btomashvili/awesome-growth-hacking


=Flags=
=Flags=

Latest revision as of 15:58, 12 March 2019

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