Eduqas A500QS 1.4: Principles of programming
The free BugBot lessons that teach this point, a robot to try it on, and the past-paper questions that test it.
What it covers
At GCSE you met five data types (F1.8): integer, real, Boolean, character and string, and the three constructs sequence, selection and iteration (F2). A level keeps all of that and asks for more precision. There are more types to know, including ones you build yourself, and the exam expects the exact names for kinds of loop and for the difference between a variable and a constant.
- The types you need to know
- References: two names, one value
- User-defined types
- Declaration, assignment and constants
- Iteration: definite and indefinite
Or do it in the simulator, with tasks that mark themselves
Lessons that teach it
- A1.1 Data types and programming constructs Programming techniques and object-oriented programming
The A level data types, references and user-defined types, constants, and definite and indefinite iteration. - A1.2 Operations, strings and random numbers Programming techniques and object-oriented programming
Integer division and MOD with negatives, rounding and truncation, XOR, string and date conversions, and pseudo-random numbers. - A1.4 Subroutines, parameters and passing by reference Programming techniques and object-oriented programming
Out-of-line subroutines and their interfaces, returning several values, and passing by value and by reference. - A1.6 Programming paradigms and procedural programming Programming techniques and object-oriented programming
Procedural, object-oriented, declarative and low-level paradigms, the structured approach, and hierarchy charts. - A1.7 Classes and objects Programming techniques and object-oriented programming
Classes, objects, attributes, methods and constructors; encapsulation, access specifiers, getters and setters, and class diagrams. - A1.8 Inheritance, polymorphism and overriding Programming techniques and object-oriented programming
Subclasses and super, overriding, polymorphism, and abstract, virtual and static methods, with robot behaviours as subclasses. - A1.9 Aggregation, composition and class diagrams Programming techniques and object-oriented programming
Has-a relationships, drawing them on class diagrams, and the design principles that favour composition over inheritance. - A1.10 Project: the behaviour controller Programming techniques and object-oriented programming
Get past a wall to the dock with prioritised behaviour classes, a controller that aggregates them, and an exception to finish. - A13.1 The functional paradigm Functional programming
Side effects, pure functions and referential transparency, immutability and statelessness, with the robot's side effects kept at the edges. - A13.3 First-class objects and higher-order functions Functional programming
Functions as values in variables, lists and dictionaries, passed as arguments and returned as results, lambdas, closures and a robot… - A13.4 Partial application and composition Functional programming
Why every Haskell function takes one argument, partial function application, functools.partial, and composing functions into a sensor… - A13.5 Map, filter and fold Functional programming
The three higher-order functions, foldl and foldr, and a pipeline over a log of sensor readings. - A13.6 List processing Functional programming
Lists as a head and a tail, the empty list, prepend and append, and recursion over a list to drive a route there and back. - A13.7 Functional programming and big data Functional programming
Volume, velocity and variety, why big data needs distributed processing, and how immutability, statelessness and higher-order functions… - A13.8 Project: the way out Functional programming
Sweep the bay, decide with a pipeline of pure functions built by composition, map, filter and fold, then drive out.
Try it on a robot
The task from A1.1 Data types and programming constructs, running here. Change the program and press Run.
The specification is Eduqas's own document; this page says which of our lessons teach point 1.4 and is not endorsed by the board.