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.
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.