English   Danish

2026/2027  KAN-CDSCO2402U  Programming, Algorithms and Data Structures

English Title
Programming, Algorithms and Data Structures

Course information

Language English
Course ECTS 7.5 ECTS
Type Mandatory (also offered as elective)
Level Full Degree Master
Duration One Semester
Start time of the course Autumn
Timetable Course schedule will be posted at calendar.cbs.dk
Study board
Study Board for Digitalisation, Technology and Communication
Programme Master of Science (MSc) in Business Administration and Data Science
Course coordinator
  • Somnath Mazumdar - Department of Digitalisation (DIGI)
Main academic disciplines
  • Information technology
Teaching methods
  • Face-to-face teaching
Last updated on 15-06-2026

Relevant links

Learning objectives
Students should meet the following learning objectives:
  • Apply core Python programming concepts (including procedural, object-oriented, and functional paradigms) to formulate and solve problems.
  • Design and implement well-structured Python programs that follow best practices in readability, modularity, and maintainability appropriate for application workflows.
  • Use key Python libraries (NumPy, pandas, Matplotlib/Seaborn, and similar tools) to load, manipulate and analyze structured datasets.
  • Assess the computational efficiency of common data processing operations and select appropriate algorithmic strategies when working with large or complex datasets.
  • Evaluate and justify programming and analytical choices (such as data structures, library selection, or processing pipelines) with clear technical reasoning.
  • Communicate technical work through clean, well-documented/commented code and structured written reports that meet graduate-level academic standards.
Course prerequisites
Prerequisites: A basic understanding of logic, and programming is recommended.

The course covers Python fundamentals, computational methods, algorithm design and analysis, and object-oriented programming. Active participation in hands-on exercise sessions is essential for success.
Prerequisites for registering for the exam (activities during the teaching period)
Number of compulsory activities which must be approved (see section 13 of the Programme Regulations): 2
Compulsory home assignments
Each assignment is a Python-based coding assignment and is completed in groups of 2-4 students. Students must have 2 out of 3 assignments approved in order to be eligible to sit the exam.

No additional attempts will be offered prior to the ordinary exam. If a student is unable to submit due to documented illness, or if a student does not receive approval despite making a genuine attempt to meet the requirements, the student will be granted one additional attempt before the re-exam.

Prior to the re-exam, students must complete an individual coding-based home assignment, which will be based on the three mandatory assignments.
Examination
Programming, Algorithms and Data Structures:
Exam ECTS 7,5
Examination form Written sit-in exam on CBS' computers
Individual or group exam Individual exam
Assignment type Written assignment
Duration 4 hours
Grading scale 7-point grading scale
Examiner(s) One internal examiner
Exam period Winter
Aids Limited aids, see the list below:
The student is allowed to bring
  • An approved calculator. Only the models HP10bll+ or Texas BA ll Plus are allowed (both models are non-programmable, financial calculators).
  • In Paper format: Books (including translation dictionaries), compendiums and notes
The student will have access to
  • Advanced IT application package
Make-up exam/re-exam
Same examination form as the ordinary exam
The number of registered candidates for the make-up examination/re-take examination may warrant that it most appropriately be held as an oral examination. The programme office will inform the students if the make-up examination/re-take examination instead is held as an oral examination including a second examiner or external examiner.
Description of the exam procedure

No Internet/WiFi connection will be available during the examination period. Students will get PCs with the required installed packages. 

 

Students must download the Python file (format ipynb) and solve the coding exercises in that file and upload after completing the questions.

Course content, structure and pedagogical approach

This course covers three core areas:

  1. Python Programming: Fundamentals, functions, classes, modules, data structures, and collections with emphasis on writing readable, modular, and maintainable code using best practices. Includes hands-on use of key libraries.
  2. Object-Oriented Design: Core concepts (including classes and objects, inheritance, encapsulation, and polymorphism) applied to structuring robust and reusable Python programs.
  3. Algorithmic Analysis: Algorithm design principles and computational complexity, with a focus on evaluating efficiency and selecting appropriate strategies for large or complex datasets.

 

Through lectures and hands-on exercises, students gain practical experience applying these concepts. By the end of the course, students will be able to confidently use Python and relevant libraries to solve problems. 

 

The use of Generative AI tools or applications is not permitted during written sit-in exams or in any mandatory home assignments for this course.

Research-based teaching
CBS’ programmes and teaching are research-based. The following types of research-based knowledge and research-like activities are included in this course:
Research-based knowledge
  • Classic and basic theory
  • New theory
  • Methodology
Research-like activities
  • Analysis
  • Discussion, critical reflection, modelling
Description of the teaching methods
The course combines offline lectures with on-campus hands-on exercise sessions supported by teaching assistants. Students apply theoretical concepts in practice during exercises and consolidate their understanding through mandatory assignments.
Feedback during the teaching period
During hands-on exercise sessions, students receive guidance and feedback from the teacher and teaching assistant(s) as they work through practical problems.
Student workload
Lectures 32 hours
Exercises 32 hours
Prepare to class 44 hours
Project work & report 80 hours
Exam and prepare 10 hours
Total 206 hours
Further Information

 

 

 

 

 

 

Expected literature

Textbooks:

  1. Allen, D. (2024). Think Python: How to think like a computer scientist. Green Tea Press. O'Reilly Media; 3rd edition (2024, ISBN-10: 1098155432, ISBN-13: 978-1098155438).
  2. Wengrow, J. (2020). A common-sense guide to data structures and algorithms: level up your core programming skills. O'Reilly Media; 2nd edition (1 Sept. 2020, ISBN-10: ‎1680507222, ISBN-13: 978-1680507225).
  3. Sweigart, A. (2019). Automate the boring stuff with Python: practical programming for total beginners. No Starch Press. 2nd Edition (12 Nov. 2019, ISBN-10: 1593279922, ISBN-13: 978-1593279929).
Last updated on 15-06-2026