In order to pass, it is required that the students
can analyse simple problems and design solutions using algorithms and programming;
can describe the algorithm concept and can construct algorithms with sequential and alternative composition and repetition (iteration/recursion);
can construct simple data structures;
know basic syntax and semantics for a functional programming language such as Standard ML;
can code and document programs for simple problems;
can describe - independently of the code - the task that a program performs and the preconditions that it requires;
can motivate that a program (or algorithm) with repetition terminates;
can carry out code inspection, testing and debugging for simple programs;
know basic concepts of programming languages, such as expression, value, type, function, binding, recursion, pointer, side-effect etc.
Introduction to programming: the purpose of programming, the phases of the programming process, programming in its context exemplified by applications, short history of programming, computer systems from the programmer's point of view, programming environments.
Algorithms: what is an algorithm, the program as algorithm, difference in precision between everyday algorithms and programs.
Basic functional programming in Standard ML or another functional language: function calls, values and types, function abstraction, definition abstraction.
Basic data structures: simple data types, lists, trees, fields. Data abstraction.