From charlesreid1

No edit summary
 
(87 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=


[[Primitive Data]]
{{Main|Study Guides}}


[[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).


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


[[Strings]]
=Topics=


[[Conditional Execution]]
==Computer Science Topics==


[[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


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


[[File Processing]]
===Data Structures===


[[Arrays]]
Main Data Structures Page: [[Data Structures]] (see also: [[Template:DataStructuresFlag]])


[[Classes]]
Polished summaries of information: [[Study Guides]]


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


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


[[Lists]]
===Algorithms===


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


[[Maps]]
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


[[Recursion]]


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


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


[[Stacks]]
===Combinatorics and Probability===


[[Queues]]
[[Analytic Combinatorics]]


[[Linked Lists]]
Outline of combinatorics content:


[[Binary Trees]]
* Combinatorial structures - use ordinary generating functions
* Labelled structures - use exponential generating functions
* Combinatorial parameters - use multivariate generating functions


[[Graphs]]
Basic Combinatorics:


[[Functional Programming]]
* [[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}}


Notes on graph theory:


[[Category:CS]]
* [[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