Principles of Computer Programming (B-KUL-X0A06A)
Aims
This course offers methods to solve small and medium sized problems an to implement them in a higher programming language. The emphasis is on the aspect of problem solving, not the programming language itself.
Targets:
- Students should be able to analyse a problem and to propose appropriate data stuctures to represent the problem data.
- Students should be able to develop solutions for algorithmic problems using the principles of stepwise refinement and the divide-and-conquer principle.
- Students should be able to implement both iterative and recursive algorithms, and should be able to organise their methods using procedural abstraction.
- Students should be able to reason about the correctness and finiteness of simple algoritms.
- Students should have insight in different sorting strategies.
- Students should be able to grasp the time and space complexity of algorithms.
- Students should be able to design a class diagram for medium sized problems, and to implement this in an object-oriented programming language.
Previous knowledge
No prior knowledge is required.
Order of Enrolment
This course unit is a prerequisite for taking the following course units:
H01O9A : Data Base Systems
H01P5B : Computer Architecture and Software Systems
Identical courses
This course is identical to the following courses:
G0N28A : Principles of Computer Programming
Is included in these courses of study
- Bachelor of Business Economics (Kortrijk) (Progression Route 'Information Systems Engineering') 180 ects.
- Bachelor of Informatics (Programme for students started before 2022-2023) (Kortrijk) 180 ects.
- Bachelor of Informatics (Programme for students started in 2022-2023 or later) (Kortrijk) 180 ects.
Activities
2 ects. Principles of Computer Programming: Exercises 1 (B-KUL-X0A07a)
Content
Exercises related to lecture 1.
Course material
Exercises on Toledo
Format: more information
Students make exercises and solve problem statements related to the topics from the lectures.
Is also included in other courses
0.5 ects. Principles of Computer Programming: Exercises 2 (B-KUL-X0A08a)
Content
Exercises related to lecture 2.
Course material
Exercises on Toledo
3 ects. Principles of Computer Programming: Lecture 1 (B-KUL-X0C15a)
Content
The lectures discuss:
- Introduction: computer architecture, executing programs, variables, strings, operators, if-then-else
- Iterations: loops and collections
- Collections: list, set, dictionary
- Functions: parameters, local variables, decomposition
- Problem solving: integrated exercises
- Recursion: divide-and-conquer, parameter binding
- Object orientation: basic principles, modelling, inheritance
- Complexity: time and space complexity: intuitive approach
- Applications: searching and sorting, rounding errors, simulation and optimisation
All programs are written in Python (v3).
Course material
Book: Python for everyone. (Wiley)
Is also included in other courses
0.5 ects. Principles of Computer Programming: Lecture 2 (B-KUL-X0C16a)
Content
The lectures discuss:
- Complexity: time and space complexity: formal approach
All programs are written in Python (v3).
Course material
Slides on Toledo.