Programming and Data Structures
15.0 ECTS creditsModule 1
This module covers the basics of problem-solving in a high-level language. The following content is included:
Structure and function of a computer
Basic syntax and semantics
Sequence, selection, and iteration
Data types and references
Operators and expressions
Debugging and testing
Functions
Algorithms
Sorting and searching
Memory management
Recursion
File handling
Documentation techniques
Module 2
This module covers both programming in an object-oriented language and techniques in software development that promote abstraction, modularisation, and reusability. Additionally, software testing and code documentation are introduced. The following content is included:
Object-oriented programming
Abstraction
Modularisation
Modeling
Analysis
Testing (unit and end-user tests)
Documentation
Exceptions and error handling
Basic data structures (e.g., lists, queues, stacks, trees)
Development models and software quality
Module 3
This module covers basic data structures (sequence, list, stack, queue, tree, graph) and operations on these data structures. The module also covers a number of algorithms that use the aforementioned data structures: sorting, searching, hashing, and navigating within a specific data structure, as well as the shortest path between two nodes in a graph, shortest path trees, cycle detection, minimum spanning trees, strong components, and spanning forests. The concept of heuristics is introduced. Evaluation of algorithms and elementary complexity theory are also introduced.
Both theory and practice are included. The theory is conveyed through literature supported by lectures and reading instructions. The practical component consists of exercises and laboratory sessions.
This module covers the basics of problem-solving in a high-level language. The following content is included:
Structure and function of a computer
Basic syntax and semantics
Sequence, selection, and iteration
Data types and references
Operators and expressions
Debugging and testing
Functions
Algorithms
Sorting and searching
Memory management
Recursion
File handling
Documentation techniques
Module 2
This module covers both programming in an object-oriented language and techniques in software development that promote abstraction, modularisation, and reusability. Additionally, software testing and code documentation are introduced. The following content is included:
Object-oriented programming
Abstraction
Modularisation
Modeling
Analysis
Testing (unit and end-user tests)
Documentation
Exceptions and error handling
Basic data structures (e.g., lists, queues, stacks, trees)
Development models and software quality
Module 3
This module covers basic data structures (sequence, list, stack, queue, tree, graph) and operations on these data structures. The module also covers a number of algorithms that use the aforementioned data structures: sorting, searching, hashing, and navigating within a specific data structure, as well as the shortest path between two nodes in a graph, shortest path trees, cycle detection, minimum spanning trees, strong components, and spanning forests. The concept of heuristics is introduced. Evaluation of algorithms and elementary complexity theory are also introduced.
Both theory and practice are included. The theory is conveyed through literature supported by lectures and reading instructions. The practical component consists of exercises and laboratory sessions.
Progressive specialisation:
G1N (has only upper‐secondary level entry requirements)
Education level:
Undergraduate level
Admission requirements
General admission requirements and upper secondary level Mathematics 3c/D
Selection:
Selection is usually based on your grade point average from upper secondary school or the number of credit points from previous university studies, or both.
This course is included in the following programme
- Artificial Intelligence - Bachelor Programme in Computer Science (studied during year 1)