Skip to content
This repository was archived by the owner on Apr 13, 2025. It is now read-only.

docs: overview of building a scientific and rigourous disciple of computer programming #2

Merged
merged 1 commit into from
Mar 30, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -172,5 +172,8 @@ node_modules
.metals

.DS_Store
accreditation/
ecosystem/
scratch_pad/
journal/
accreditation.txt
applications/
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
def programming_model:
- formal: ???

- in words: ???

- plain english: ???

- intuition: ???

- properties: ???

- examples: ???

- use cases: ???

- proof: ???

References: ???
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
def programming_model:
- formal: ???

- in words: ???

- plain english: ???

- intuition: ???

- properties: ???

- examples: ???

- use cases: ???

- proof: ???

References: ???
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
def programming_model:
- formal: ???

- in words: ???

- plain english: ???

- intuition: ???

- properties: ???

- examples: ???

- use cases: ???

- proof: ???

References: ???
18 changes: 18 additions & 0 deletions 0_computation_models/0_general/3_stateful/1_programming_model.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
def programming_model:
- formal: ???

- in words: ???

- plain english: ???

- intuition: ???

- properties: ???

- examples: ???

- use cases: ???

- proof: ???

References: ???
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
def programming_model:
- formal: ???

- in words: ???

- plain english: ???

- intuition: ???

- properties: ???

- examples: ???

- use cases: ???

- proof: ???

References: ???
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
def programming_model:
- formal: ???

- in words: ???

- plain english: ???

- intuition: ???

- properties: ???

- examples: ???

- use cases: ???

- proof: ???

References: ???
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
def programming_model:
- formal: ???

- in words: ???

- plain english: ???

- intuition: ???

- properties: ???

- examples: ???

- use cases: ???

- proof: ???

References: ???
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
def programming_model:
- formal: ???

- in words: ???

- plain english: ???

- intuition: ???

- properties: ???

- examples: ???

- use cases: ???

- proof: ???

References: ???
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
def programming_model:
- formal: ???

- in words: ???

- plain english: ???

- intuition: ???

- properties: ???

- examples: ???

- use cases: ???

- proof: ???

References: ???
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
def programming_model:
- formal: ???

- in words: ???

- plain english: ???

- intuition: ???

- properties: ???

- examples: ???

- use cases: ???

- proof: ???

References: ???
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
def programming_model:
- formal: ???

- in words: ???

- plain english: ???

- intuition: ???

- properties: ???

- examples: ???

- use cases: ???

- proof: ???

References: ???
66 changes: 40 additions & 26 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,34 +3,48 @@
![build status](https://github.com/praisetompane/computer_programming/actions/workflows/computer_programming.yaml/badge.svg) <br>

## Objectives
- Attempts to define a unified discipline of computer programming independent of programming language implementations.
- Attempts to define a unified scientific discipline of computer programming independent of programming language implementations.

## Definitions:
- def programming concepts (Van Roy, Haridi S. 2004:xiii):
- these are organized in terms of/in relation to computation models:
- def computation model: formal system, that defines how computations are done (Van Roy, Haridi S. 2004:xiii):
- based on a simple core language called its kernel language (Van Roy, Haridi S. 2004:xiv)
- def kernel language: TBD
- defined in terms of (Van Roy, Haridi S. 2004:xiii):
- data types
- operations
- a programming language

**NB** there are other ways to define computation models: - finite automata (Sipser, 2012:xvii)

- provides:
- a programming model:
- def programming model: a set of programming techniques and design principles
used to write programs
in the language of the computation model (Van Roy, Haridi S. 2004:29).
- def programming techniques: TBD
- def design principles: TBD
- set of techniques for:
- reasoning about programs

- def creative extension principle: main criterion for when and which concept to add to a computation mode/kernel language (Van Roy, Haridi S. 2004:xiv)

- def computer programming: the act of extending or changing a system's functionality (Van Roy, Haridi S. 2004:xv).
- def computation model(Haridi and Van Roy, 2004:xiii):
- formal: ???

- in words: formal system, that defines how computations are done

- plain english: ???

- intuition: ???

- properties:
- based on a simple core language called its kernel language (Haridi and Van Roy, 2004:xiv)
- def kernel language: TBD
- defined in terms of (Haridi and Van Roy, 2004:xiii):
- data types
- operations
- a programming language

**NB** there are other ways to define computation models: - finite automata (Sipser, 2012:xvii)

- provides:
- a programming model:
- def programming model: a set of programming techniques and design principles
used to write programs
in the language of the computation model (Haridi and Van Roy, 2004:29).
- def programming techniques: TBD
- def design principles: TBD
- set of techniques for:
- reasoning about programs

- examples: ???

- use cases: ???

- proof: ???


- def creative extension principle: main criterion for when and which concept to add to a computation mode/kernel language (Haridi and Van Roy, 2004:xiv)

- def computer programming: the act of extending or changing a system's functionality (Haridi and Van Roy, 2004:xv).
- practitioners:
- general users: by changing the setting of an alarm
- expert users: by writing new features for the system or updating existing
Expand Down
1 change: 1 addition & 0 deletions todo.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
- lectures:
- readings:
- Van Roy, P. 2004. Concepts, Techniques, and Models of Computer Programming
- current: 1 Introduction to Programming Concepts pg 31
- assignments:
- exams:

Expand Down