From charlesreid1

 
(39 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
==Computer Science Topics==


Algorithms
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


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


===Data Structures===
===Data Structures===


For polished/digested study guides see: [[Study Guides]]
Main Data Structures Page: [[Data Structures]] (see also: [[Template:DataStructuresFlag]])


Link: https://charlesreid1.com:3000/cs/study-plan/src/master/TODOSoftwareEngineering.md
Polished summaries of information: [[Study Guides]]


See also: [[Template:DataStructuresFlag]]
Link: https://git.charlesreid1.com/cs/study-plan/src/master/TODOSoftwareEngineering.md


Topics:
* [[Data Structures]]
* [[Data Structures]]
* [[Algorithm complexity]]
* [[Algorithm complexity]]
Line 41: 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:
* [[Algorithms/Sort]] - basic and advanced algorithms for sorting data
* [[Algorithms/Search]] - search algorithms for searching and search-related data structures
* [[Algorithms/Combinatorics and Heuristics]] - solving problems involving finding permutations or searching large solution spaces
* [[Algorithms/Dynamic Programming]] - solving problems by breaking them down into sub-problems
* [[Algorithms/Strings]] - algorithms for operations on strings
* [[Algorithms/Data Structures]] - algorithmic analysis of data structures
* [[Algorithms/Data Structures]] - algorithmic analysis of data structures
* [[Algorithms/Strings]] - algorithms for operations on strings
* [[Algorithms/Graphs]] - graph theory, construction of graphs, graph algorithms
* [[Algorithms/Search]] - search algorithms for searching and search-related data structures
* [[Algorithms/Sort]] - basic and advanced algorithms for sorting data
* [[Algorithms/Graphs]] -
* [[Algorithms/Optimization]] -


Programming practice and writeups:
Programming practice and writeups:
Line 62: Line 67:
===Combinatorics and Probability===
===Combinatorics and Probability===


===Number Theory===
[[Analytic Combinatorics]]


===Numerics===
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 coefficients
** Multisets
** Coverage of combinatorics in [[Art of Computer Programming]]
 
[[Generating Functions]]:
 
* [[Ordinary Generating Functions]]
 
* [[Exponential Generating Functions]]
 
Excellent textbook: http://algo.inria.fr/flajolet/Publications/book.pdf
 
===Graph Theory===
 
{{Main|Graphs}}


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


Following the content of Numerical Recipes - algorithmic analysis, &c.
* [[Graphs/Definitions]]
* [[Graphs/Matching]]
* [[Graphs/Connectivity]]


[[Numerics]] topics corresponding to particular chapters:
Notes on data structures for graphs:


* Linear algebra
* [[Graphs/Data Structures]]
* [[Graphs/ADT]]


* Interpolation and Extrapolation
===Numerics===


* Integration and Evaluation of [[Functions]]
Link: https://git.charlesreid1.com/cs/study-plan/src/master/TODONumerics.md


* Root Finding
[[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 and Tools===


Languages:
Languages:
* Java (solid)
* [[Java]]
* Python (solid)
* [[Python]]
* Go (minimal)
* Go (minimal)
* C++ (minimal)
* C++ (minimal)
* Scala (minimal)


Tool categories:
Tool categories:
* Built-in data structures (solid, comfortable with its API)
* Built-in data structures (solid)
* Extended data structures (Pandas, Guava) and utilities (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 103: 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 110: 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