Lectures: Not scheduled yet, please check back soon! (David Corfield, Jaroslav Nešetřil, Tomas Petricek)
Page in SIS: NPRG086
Grading: Exam
We take computer science concepts like functions, trees, and processes for granted, but where do they come from, how did they evolve, and do we even agree on what they mean? In this course, we will look at a number of computer science concepts from historical perspectives. We will follow the concepts as they change when they cross different disciplines and cross the boundaries between formal definitions, concrete implementations and intuitive metaphors.
This is a (most likely) one-off course jointly taught by David Corfield, Jaroslav Nešetřil, and Tomáš Petříček. We will look at entities from our respective domains from technical, historical and philosophical perspective.
This is planned as a two-semester course, followed by Functions, trees, processes (summer).
Course sylabus
The seminar will focus on history of selected computer science concepts. Specific concepts will be decided at the start of the semmester and may include, for example:
- Functions - mathematical origins, subroutines in early computers, procedures and functions
- Trees - trees in mathematics, graph theory, tree as an abstract data type and structured data format
- Processes - early operating systems, processes in UNIX, distributed systems, process calculi
- Graphs - graphs in geometry and theoretical computer science, their representations, knowledge graphs
- Objects - simulations, objects and actors, object-oriented programming
- Types - logical origins, types in lambda calculus, abstract data types, type systems, dependent types
- Monads - category theoretical origins, semantics of effects, monads in programming languages
