title | authors | |
---|---|---|
Learning Outcomes |
|
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].