Skip to content
A list of things you might want to read if you like reading Computer Science things
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

CS As She Is Wrote

Subjects for which we ought to have lists of papers along with accrued accoutrements. Adapted from

Mathematical foundations

Game theory

Useful in artificial intelligence and cybernetics.

Graph theory

Foundations for data structures and searching algorithms.

Mathematical logic

Boolean logic and other ways of modeling logical queries; the uses and limitations of formal proof methods

Number theory

Theory of the integers. Used in cryptography as well as a test domain in artificial intelligence.

Algorithms and data structures


Sequential and parallel computational procedures for solving a wide range of problems.

Data structures

The organization and manipulation of data.

Artificial intelligence

The implementation and study of systems that exhibit an autonomous intelligence or behavior of their own.

Automated reasoning

Solving engines, such as used in Prolog, which produce steps to a result given a query on a fact and rule database, and automated theorem provers that aim to prove mathematical theorems with some assistance from a programmer.

Computer vision

Algorithms for identifying three-dimensional objects from a two-dimensional picture. Geometric Approach to tracking mechanical motion

Machine learning

Automated creation of a set of rules and axioms based on input.

Evolutionary computing

Biologically inspired algorithms.

Natural language processing

Building systems and algorithms that analyze, understand, and generate natural (human) languages.


Algorithms for controlling the behaviour of robots. Geometric Approach to tracking mechanical motion

Communication and security


Algorithms and protocols for reliably communicating data across different shared or dedicated media, often including error correction.

Computer security

Practical aspects of securing computer systems and computer networks.


Applies results from complexity, probability, algebra and number theory to invent and break codes, and analyze the security of cryptographic protocols.

Computer architecture

The design, organization, optimization and verification of a computer system, mostly about CPUs and Memory subsystem (and the bus connecting them).

Operating systems

Systems for managing computer programs and providing the basis of a usable system.

Computer graphics

Algorithms both for generating visual images synthetically, and for integrating or altering visual and spatial information sampled from the real world.

Image processing

Determining information from an image through computation.

Information visualization

Methods for representing and displaying abstract data to facilitate human interaction for exploration and understanding.

Concurrent, parallel, and distributed systems

Practical Foundations of Programming Languages (PFPL)

Parallel computing

The theory and practice of simultaneous computation; data safety in any multitasking or multithreaded environment.

  • PFPL chapter ?? TODO

Concurrency (computer science)

Computing using multiple concurrent threads of execution, devising algorithms for solving problems on multiple processors to achieve maximal speed-up compared to sequential execution.

  • PFPL chapter ?? TODO

Distributed computing

Computing using multiple computing devices over a network to accomplish a common objective or task and thereby reducing the latency involved in single processor contributions for any task.

  • PFPL chapter ?? TODO


Relational databases

the set theoretic and algorithmic foundation of databases.

Structured Storage

non-relational databases such as NoSQL databases.

Data mining

Study of algorithms for searching and processing information in documents and databases; closely related to information retrieval.

Programming languages and compilers

Compiler theory

Theory of compiler design, based on Automata theory.

Programming language pragmatics

Taxonomy of programming languages, their strength and weaknesses. Various programming paradigms, such as object-oriented programming.

Formal semantics

rigorous mathematical study of the meaning of programs.

Type theory

Formal analysis of the types of data, and the use of these types to understand properties of programs — especially program safety.

Scientific computing

Computational science

constructing mathematical models and quantitative analysis techniques and using computers to analyze and solve scientific problems.

Numerical analysis

Approximate numerical solution of mathematical problems such as root-finding, integration, the solution of ordinary differential equations; the approximation of special functions.

Symbolic computation

Manipulation and solution of expressions in symbolic form, also known as Computer algebra.

Computational physics

Numerical simulations of large non-analytic systems

Computational chemistry

Computational modelling of theoretical chemistry in order to determine chemical structures and properties

Bioinformatics and Computational biology

The use of computer science to maintain, analyse, store biological data and to assist in solving biological problems such as Protein folding, function prediction and Phylogeny.

Computational neuroscience

Computational modelling of neurophysiology.

Software engineering

The principles and practice of designing, developing, and testing programs, as well as proper engineering practices.

Testing programs

Approaches, principles and pragmatics of verifying programs

Formal methods

Mathematical approaches for describing and reasoning about software design.

Algorithm design

Using ideas from algorithm theory to creatively design solutions to real tasks.

Computer programming

The practice of using a programming language to implement algorithms.

Human–computer interaction

The study and design of computer interfaces that people use.

Reverse engineering

The application of the scientific method to the understanding of arbitrary existing software.

Theory of computation

Automata theory

Different logical structures for solving problems.

Computability theory

What is calculable with the current models of computers. Proofs developed by Alan Turing and others provide insight into the possibilities of what may be computed and what may not.

Computational complexity theory

Fundamental bounds (especially time and storage space) on classes of computations.

Quantum computing theory

Explores computational models involving quantum superposition of bits.


Interesting, but as yet uncategorized papers

You can’t perform that action at this time.