- Variables, types, floating-point numbers and inaccuracy problems..
- Operators and their precedence.
- Assignment, conditional statements and loops..
- Program structure: comments, indentation.
- List / array operations.
- Code decomposition.
- Function definitions and calls, parameter passing.
- Local identifiers and their scope.
- Modularity of programs..
- Passing function as an argument to another function.
- Using libraries, import, graphics output.
- String processing.
- Type system in greater detail.
- Other structured data types.
- Classes and objects. Objects as abstractions of real-world entities.
- Derivation of types, inheritance.
- Linear linked lists.
- Tree data structures.
- Debugging, defensive programming.
- Unit, regression and integration tests.
- Throwing and catching exceptions. Assertions.
Input and output. File processing.
A first course about programming and algorithms for first-year students studying computer science and computer science education. The course covers principles of algorithms, basic algorithms, data structures, programming techniques, typical programming environments and practical program design and debugging.