The Blueprint
The Blueprint is a hierarchical structure describing common concepts in programming languages. These concepts are used to describe the prerequisites of assignments and the concepts that can be practiced with the assignment. Below is a mind map of the blueprint and a textual representation.
Textual representation
Expressions
Operators
- relational operators
- logical operators
- arithmetic operators
- bit operators
Evaluation
- precedence
- lazy evaluation
Data
User-defined structures
- trees
- stacks
- queues
- graphs
Type conversion
Types (built-in)
-
primitive
-
composite
-
dictionaries
- sets
-
sequences
- array
Multi-threading
Synchronization
Design principles
Top-down
Bottom-up
Object orientation (OO)
Objects
-
instantiation
- garbage collection
- referencing
Access modifiers
- public
- protected
- private
- package private
Inheritance
- overriding
- duck typing (polymorphism)
- extension
- class inheritance
- interface inheritance
-
abstract classes
Interfaces
- interface methods
- default methods
- interface constants
Classes
-
methods
- static methods
- instance methods
- final methods
- overloading
-
fields
- final class
- constructors
Testing
Manual testing
Automated testing
Coding conventions
Naming conventions
- PEP 8
- Java Code Conventions
Documentation
environment
IDE
- debugging
- editor
- compiler
Version control
Libraries
- guizero
- numpy
- random
- pandas
- java.util.stream
Testing frameworks
Packaging
IO
Files
Standard
Imperative programming
Functions
-
signature
-
arguments/parameters
-
return type
- calling functions
- return
-
anonymous function
-
lambda
- functional interfaces
- method references
-
algorithms
- creating/defining
Variables
- constants
-
scope
- global variables
- local variables
- assignment
- variable declaration
Control flow
Conditionals
Loops
Exceptions
Jumping