Concepts inCS in parallel: modules for adding parallel computing to CS courses, from CS2 to theory of computation (abstract only)

Theory of computation

In theoretical computer science, the theory of computation is the branch that deals with whether and how efficiently problems can be solved on a model of computation, using an algorithm. The field is divided into three major branches: automata theory, computability theory and computational complexity theory. In order to perform a rigorous study of computation, computer scientists work with a mathematical abstraction of computers called a model of computation.
more from Wikipedia

Abstraction (computer science)

In computer science, abstraction is the process by which data and programs are defined with a representation similar in form to its meaning, while hiding away the implementation details. Abstraction tries to reduce and factor out details so that the programmer can focus on a few concepts at a time. A system can have several abstraction layers whereby different meanings and amounts of detail are exposed to the programmer.
more from Wikipedia

Parallel computing

Parallel computing is a form of computation in which many calculations are carried out simultaneously, operating on the principle that large problems can often be divided into smaller ones, which are then solved concurrently ("in parallel"). There are several different forms of parallel computing: bit-level, instruction level, data, and task parallelism.
more from Wikipedia

.cs

. cs was for several years the country code top-level domain (ccTLD) for Czechoslovakia. However, the country split into the Czech Republic and Slovakia in 1993, and the two new countries were soon assigned their own ccTLDs: . cz and . sk respectively. The use of . cs was gradually phased out, and the ccTLD was deleted some time around January 1995. Until the deletion of . yu in 2010, . cs was the most heavily used top-level domain ever to be deleted.
more from Wikipedia

Communicating sequential processes

In computer science, Communicating Sequential Processes (CSP) is a formal language for describing patterns of interaction in concurrent systems. It is a member of the family of mathematical theories of concurrency known as process algebras, or process calculi. CSP was highly influential in the design of the occam programming language, and also influenced the design of programming languages such as Limbo and Go. CSP was first described in a 1978 paper by C. A. R.
more from Wikipedia

Automatic parallelization

Automatic parallelization, also auto parallelization, autoparallelization, or parallelization, the last one of which implies automation when used in context, refers to converting sequential code into multi-threaded or vectorized (or even both) code in order to utilize multiple processors simultaneously in a shared-memory multiprocessor machine. The goal of automatic parallelization is to relieve programmers from the tedious and error-prone manual parallelization process.
more from Wikipedia

In theoretical computer science, the ¿-calculus (or pi-calculus) is a process calculus originally developed by Robin Milner, Joachim Parrow and David Walker as a continuation of work on the process calculus CCS. The ¿-calculus allows channel names to be communicated along the channels themselves, and in this way it is able to describe concurrent computations whose network configuration may change during the computation. The ¿-calculus is elegantly simple yet very expressive.
more from Wikipedia