| title | Learning Outcomes | |
|---|---|---|
| authors |
|
The students should be able to
- use programming to solve problems,
- apply the problem solving methodology also within other fields than programming,
- assess existing programs.
To be able to do this the students must learn to
- Lo01: design programs without code repetitions,
- Lo02: divide a larger problem in manageable parts,
- Lo03: divide a program
- Lo04: apply control structures
- Lo05: design and present user friendly output
- Lo06: create flexible applications
- Lo07: choose appropriate names of identifiers
- Lo08: design interactive programs
- Lo09: use and design composite data types (classes)
- Lo10: transfer data between file and program,
- Lo11: review others' programs.
The students should be able to
-
[algorithmic thinking] divide a problem into suitable sub-problems [Lo02], reassemble the solutions to the sub-problems into a solution for the original problem;
- thread of execution
- distinguish sub-problems/minimize redundancy (discover suitable
functions):
- determine prerequisites (suitable parameters/arguments) and results ("return values").
- distinguish iterations and recursion
- distinguish data structures
-
[programming language] write functions that solves the sub-problems and compose them into a function that solves the original problem [Lo{01,03,06}, implicitly Lo{04,09,10}];
- variables
- functions
- thread of execution
- scope: arguments and return values
- order of arguments
- order of return values (tuples)
- iterations: recursion, for, while
- when to use recursion,
- when to use for,
- when to use while.
- containers
- classes
- files
-
[usability] design usable text-based interfaces [Lo{05,08}];
- usable output
- usable input
-
[usability] write source code readable for humans [Lo07];
- good identifier names
- divide program into functions
- PEP8
-
[evaluation] review source code written by others [Lo11].