Pseudocode (College Board)
Paradigm(s) | imperative, procedural |
---|---|
Designed by | College Board |
Appeared in | Before 2018 |
Type system | static |
Memory system | variable-based |
Dimensions | one-dimensional |
Computational class | Turing complete |
Reference implementation | None |
Pseudocode is a programming language designed by College Board for the AP Computer Science Principles course. Pseudocode was created to provide language-agnostic examples and exam questions.
Syntax
Pseudocode has two official representations; textual and block. The formats are presented together on exams and in examples.
Standard functions:
DISPLAY (expr) INPUT () RANDOM (a, b)
DISPLAY
is effectively equivalent to the Python code print(expr, end=" ")
. RANDOM
includes both ends.
Assignment is done with
var ← expr
expr
can be an arithmetic expression containing procedure calls, operators, etc. The arithmetic operators are +
, -
, *
, /
(not floor division), MOD
(only positive arguments). Comparison operators are =
, ≠
, >
, <
, ≥
, ≤
. Connectives are NOT
, AND
, OR
. Expressions can be parenthesized for precedence.
List literals are [v1, v2, ...]
and a list variable l
would be indexed like l[i]
with the first valid i
being 1. Lists can be modified with the functions INSERT (l, i, v)
shifts list elements to accomodate an empty position at l[i
and sets it to v
, APPEND (l, v)
extends the list and puts v
at the end, REMOVE (l, i)
deletes the element l[i]
and shifts later elements back, LENGTH (l)
returns the length of the list.
Conditionals can be either
IF (expr) { code }
Or
IF (expr) { code } ELSE { code }
While loops are in the form:
REPEAT UNTIL expr { code }
With count loops being:
REPEAT n TIMES { code }
No variable is assigned for count loops.
Loop iteration:
FOR EACH v IN l { code }
The variable v
is assigned to each value of l
.
Functions are defined like:
PROCEDURE name (p1, p2, ...) { code }
Where p1
and so on are the untyped parameter names. code
is arbitrary code, which may include the RETURN (expr)
statement anywhere, which immediately returns from the function with a value if encountered.
The language also has a turtle system which is used via the commands:
MOVE_FORWARD() // one unit ROTATE_LEFT() // 90 degrees ROTATE_RIGHT() // 90 degrees CAN_MOVE(dir) // left, right, forward, backward
Movement is 1 unit, rotations are 90°, dir
can be left
, right
, forward
, or back
.
See also
External links
- APCSP CREATE GitHub repo Online demo
- APScript GitHub repo Online demo
- College Board Pseudocode Interpreter GitHub repo Online demo
- JavaScript to Pseudocode Transpiler GitHub repo Online demo