English   Danish

2025/2026  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
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
Course coordinator
  • Somnath Mazumdar - Department of Digitalisation (DIGI)
Main academic disciplines
  • Information technology
Teaching methods
  • Face-to-face teaching
Last updated on 12-05-2025

Relevant links

Learning objectives
Students should meet the following learning objectives:
  • Understand fundamental Python programming concepts, techniques and methods.
  • Design and implement programs using Python programming language using its appropriate syntax and features.
  • Demonstrate understanding of imperative, declarative and object-oriented language features of Python language and know when it is appropriate to use each.
  • Write programs in Python programming language that make use of external libraries, APIs, etc.
  • Demonstrate a basic understanding of algorithm analysis and program complexity.
  • Exhibit deeper knowledge and understanding of the topics as part of the project and the report should reflect on critical awareness of the methodological choices with written skills to accepted academic standards.
Course prerequisites
It is recommended to have a basic understanding of logic, algorithms and programming.

This course will introduce programming basics, computation methods, and problem-solving algorithm development. It also includes algorithmic analysis, program design and object-oriented design. Therefore it requires an interest in and commitment to hands-on learning during exercise sessions.
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 max. 5 pages + appendix, written in a group of 2-4 students. The students have to get 2 out of 3 assignments approved to go to the exam.

There will not be any extra attempts provided to the students before the ordinary exam. If a student cannot hand in due to documented illness, or if a student does not get the activity approved in spite of making a real attempt to pass the activity, then the student will be given one extra attempt before the re-exam. Before the re-exam, there will be an individual home assignment (max.15 pages) which will cover 2 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 provides an introduction to Python programming and object-oriented design. Furthermore, this course provides knowledge primarily on below three topics

 

  1. Introduction to Python programming language such as programming basics, functions, classes, modules, data structures, collections, and others.
  2. Introduction to object-oriented design: concept, class and object, inheritance, encapsulation and polymorphism.
  3. Introduction to algorithmic analysis, and complexity.

 

The course provides the students with practical hands-on experience on the above topics. After completing the course the students will be able to apply and use various programming constructs in Python language.

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 consists of lectures, exercises, and mandatory assignments. The lectures will ONLY be delivered offline and the hands-on exercise sessions will be conducted on campus. There will be teaching assistant(s) providing technical support for the hands-on exercise sessions.

The presented theories, concepts and methods should be applied in practice in the exercise sessions. The students will work on the mandatory assignments to consolidate their understanding of the concepts and the application of the concepts using the practical skills obtained from the hands-on exercises.
Feedback during the teaching period
During the hands-on exercises following each lecture, the students will receive help and feedback in solving the practical hands-on exercises from the teacher and the teaching assistant(s).
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
Expected literature

Textbooks:

  1. 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).
  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).
Last updated on 12-05-2025