Form of learning:
Target group and prerequisites
This course gives an introduction to computer architecture and program execution from gate level to high-level programming languages.
- Computer architecture, binary data, and logic.
- Programming abstractions and analysis of program performance.
- Aspects of functional programming, e.g. recursive definitions and recursion.
- Introduction to computer science and problem-solving with algorithms.
Upon successfully completing the course, the student
- understands the essential functional structure of a programmable computer and its operation during program execution.
- understands the physical limitations and possibilities of computers, including the main computational resources (time, space, parallelism, etc) and how to put these into use.
- can determine/measure the performance of a computer program in practice, in simple cases by inspecting only the structure of the program.
- understands what is meant by an abstract interface and its implementation, including the possibility of alternative implementations with different performance characteristics.
- understands the concept of recursion and can write programs that employ recursion and operate on recursive data structures.
- knows the basics of algorithm design and analysis, including selected designs for fundamental combinatorial tasks (searching, sorting, etc.).
Programming exercises, reading- and video-material. Please note that the exercise sessions will primarily be held on campus during daytime, but are not mandatory.
Weekly programming exercises.
Application deadline: 20.2.2022.