From charlesreid1

No edit summary
 
(85 intermediate revisions by the same user not shown)
Line 1: Line 1:
The outline of basic computer science topics to cover:
computer science: the science of problem-solving with computers, computational devices, and computational methods.


[[Intro and Hello World]]
=Study Notes=
* [[Intro and Hello World/Java]]
* [[Intro and Hello World/Go]]
* [[Intro and Hello World/Cpp]]
* [[Intro and Hello World/Python]]
* [[Intro and Hello World/Perl]]
* [[Intro and Hello World/Bash]]


[[Primitive Data]]
{{Main|Study Guides}}
* [[Primitive Data/Java]]
* [[Primitive Data/Go]]
* [[Primitive Data/Cpp]]
* [[Primitive Data/Python]]
* [[Primitive Data/Perl]]
* [[Primitive Data/Bash]]


[[For Loops]]
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).
* [[For Loops/Java]]
* [[For Loops/Go]]
* [[For Loops/Cpp]]
* [[For Loops/Python]]
* [[For Loops/Perl]
* [[For Loops/Bash]]


[[Parameters]]
That repository can be found here: https://git.charlesreid1.com/cs/study-plan
* [[Parameters/Java]]
* [[Parameters/Go]]
* [[Parameters/Cpp]]
* [[Parameters/Python]]
* [[Parameters/Perl]
* [[Parameters/Bash]]


[[Strings]]
=Topics=
* [[Strings/Java]]
* [[Strings/Go]]
* [[Strings/Cpp]]
* [[Strings/Python]]
* [[Strings/Perl]]
* [[Strings/Bash]]


[[Conditional Execution]]
==Computer Science Topics==
* [[Conditional Execution/Java]]
* [[Conditional Execution/Go]]
* [[Conditional Execution/Cpp]]
* [[Conditional Execution/Python]]
* [[Conditional Execution/Perl]]
* [[Conditional Execution/Bash]]


[[Program Logic]]
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
* [[Program Logic/Java]]
* [[Program Logic/Go]]
* [[Program Logic/Cpp]]
* [[Program Logic/Python]]
* [[Program Logic/Perl]]
* [[Program Logic/Bash]]


[[Indefinite Loops]]
List of topics:
* [[Indefinite Loops/Java]]
* Data Structures
* [[Indefinite Loops/Go]]
* Algorithms
* [[Indefinite Loops/Cpp]]
* Mathematics
* [[Indefinite Loops/Python]]
** Combinatorics
* [[Indefinite Loops/Perl]]
** Probability
* [[Indefinite Loops/Bash]]
** Number Theory
** Numerics
* Languages and APIs


[[File Processing]]
===Data Structures===
* [[File Processing/Java]]
* [[File Processing/Go]]
* [[File Processing/Cpp]]
* [[File Processing/Python]]
* [[File Processing/Perl]]
* [[File Processing/Bash]]


[[Arrays]]
Main Data Structures Page: [[Data Structures]] (see also: [[Template:DataStructuresFlag]])
* [[Arrays/Java]]
* [[Arrays/Go]]
* [[Arrays/Cpp]]
* [[Arrays/Python]]
* [[Arrays/Perl]]
* [[Arrays/Bash]]


[[Classes]]
Polished summaries of information: [[Study Guides]]
* [[Classes/Java]]
* [[Classes/Go]]
* [[Classes/Cpp]]
* [[Classes/Python]]


[[Inheritance]]
Link: https://git.charlesreid1.com/cs/study-plan/src/master/TODOSoftwareEngineering.md
* [[Inheritance/Java]]
* [[Inheritance/Go]]
* [[Inheritance/Cpp]]
* [[Inheritance/Python]]


[[Interfaces]]
Topics:
* [[Interfaces/Java]]
* [[Data Structures]]
* [[Interfaces/Go]]
* [[Algorithm complexity]]
* [[Interfaces/Cpp]]
* [[Arrays]]
* [[Interfaces/Python]]
* [[Lists]]
* [[StacksQueues]]
* [[Priority Queues]]
* [[Maps]]
* [[Binary Trees]]
* [[Graphs]]
* [[Abstract Data Types]] - ADTs for general design of data structure classes


[[Lists]]
===Algorithms===
* [[Lists/Java]]
* [[Lists/Go]]
* [[Lists/Cpp]]
* [[Lists/Python]]


[[Sets]]
{{Main|Algorithms}}
* [[Sets/Java]]
* [[Sets/Go]]
* [[Sets/Cpp]]
* [[Sets/Python]]


[[Maps]]
Algorithms can be divided into categories:
* [[Maps/Java]]
* [[Algorithms/Sort]] - basic and advanced algorithms for sorting data
* [[Maps/Go]]
* [[Algorithms/Search]] - search algorithms for searching and search-related data structures
* [[Maps/Cpp]]
* [[Algorithms/Combinatorics and Heuristics]] - solving problems involving finding permutations or searching large solution spaces
* [[Maps/Python]]
* [[Algorithms/Dynamic Programming]] - solving problems by breaking them down into sub-problems


[[Recursion]]
* [[Recursion/Java]]
* [[Recursion/Go]]
* [[Recursion/Cpp]]
* [[Recursion/Python]]


[[Searching]]
* [[Algorithms/Strings]] - algorithms for operations on strings
* [[Searching/Java]]
* [[Algorithms/Data Structures]] - algorithmic analysis of data structures
* [[Searching/Go]]
* [[Algorithms/Graphs]] - graph theory, construction of graphs, graph algorithms
* [[Searching/Cpp]]
* [[Searching/Python]]


[[Sorting]]
Programming practice and writeups:
* [[Sorting/Java]]
* Competitive programming
* [[Sorting/Go]]
* [[Project Euler]]
* [[Sorting/Cpp]]
* Research and Teaching Blog - https://charlesreid1.github.io
* [[Sorting/Python]]


[[Stacks]]
===Combinatorics and Probability===
* [[Stacks/Java]]
* [[Stacks/Go]]
* [[Stacks/Cpp]]
* [[Stacks/Python]]


[[Queues]]
[[Analytic Combinatorics]]
* [[Queues/Java]]
* [[Queues/Go]]
* [[Queues/Cpp]]
* [[Queues/Python]]


[[Linked Lists]]
Outline of combinatorics content:
* [[Linked Lists/Java]]
* [[Linked Lists/Go]]
* [[Linked Lists/Cpp]]
* [[Linked Lists/Python]]


[[Binary Trees]]
* Combinatorial structures - use ordinary generating functions
* [[Binary Trees/Java]]
* Labelled structures - use exponential generating functions
* [[Binary Trees/Go]]
* Combinatorial parameters - use multivariate generating functions
* [[Binary Trees/Cpp]]
* [[Binary Trees/Python]]


[[Graphs]]
Basic Combinatorics:
* [[Graphs/Java]]
* [[Graphs/Go]]
* [[Graphs/Cpp]]
* [[Graphs/Python]]


[[Functional Programming]]
* [[Algorithms/Combinatorics]]
* [[Functional Programming/Java]]
** Binomial coefficients
* [[Functional Programming/Go]]
** Multinomial coefficients
* [[Functional Programming/Cpp]]
** Multisets
* [[Functional Programming/Python]]
** Coverage of combinatorics in [[Art of Computer Programming]]


[[Generating Functions]]:


* [[Ordinary Generating Functions]]


[[Category:CS]]
* [[Exponential Generating Functions]]
 
Excellent textbook: http://algo.inria.fr/flajolet/Publications/book.pdf
 
===Graph Theory===
 
{{Main|Graphs}}
 
Notes on graph theory:
 
* [[Graphs/Definitions]]
* [[Graphs/Matching]]
* [[Graphs/Connectivity]]
 
Notes on data structures for graphs:
 
* [[Graphs/Data Structures]]
* [[Graphs/ADT]]
 
===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:
* Awesome math: https://github.com/rossant/awesome-math
 
Algorithms:
* Awesome algorithms: https://github.com/tayllan/awesome-algorithms
* Awesome challenges: https://github.com/mauriciovieira/awesome-challenges
 
Meta:
* awesome-awesomeness: https://github.com/sindresorhus/awesome
* sindresorhus/awesome: https://github.com/sindresorhus/awesome
 
=Flags=
 
==Computer Science==
 
{{CSFlag}}
 
==Data Structures==
 
{{DataStructuresFlag}}
 
==Algorithms==
 
{{AlgorithmsFlag}}
 
 
[[CS/OldPage]]

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