Skip to main content

DD1328 Fundamentals of Computer Science for Scientific Computing 9.0 credits

A basic course in computer science and parallel programming, for students from the degree programme in engineering mathematics.

Choose semester and course offering

Choose semester and course offering to see current information and more about the course, such as course syllabus, study period, and application information.

Headings with content from the Course syllabus DD1328 (Spring 2024–) are denoted with an asterisk ( )

Content and learning outcomes

Course contents

In this course, the students will build on their knowledge of algorithms, data structures and program design, learn basics of parallel and distributed programming and prepare for courses in computational mathematics, machine learning and theoretical computer science. Programming languages in the course are Python and one or more of the languages Go, Java and C.

Algorithms and data structures: A systematic overview of the concepts abstract data types, stacks, queues, lists, trees, searching, sorting and recursion based on the knowledge the students acquired in the course Fundamentals of programming. Hashing. Priority queues. Search trees. Problem trees. Text searching. Simple syntactical analysis. Algorithm analysis. Cryptography.

Program Design: Program quality. Abstraction. Modularisation. Testing. System calls. Standard modules.

Parallel Programming: Basic knowledge of how a computer is working and what it is made up of, both from hardware and software perspectives. Introduction to parallel and distributed programming with processes.

Intended learning outcomes

After passing the course, the student shall be able to

  • systematically test programs to discover errors
  • use abstraction as a tool to simplify the programming
  • select an appropriate algorithm for a given problem
  • compare algorithms with regard to time and memory usage
  • describe algorithms for searching and sorting and their properties
  • formulate and implement recursive algorithms
  • write a small BNF syntax (less than 10 rules) for a formal language and write a program that examines whether an expression follows a BNF syntax
  • model problems as search problems and implement algorithms for breadth-first search, depth-first search and best-first search implement and use basic data structuresdesign and analyse simple algorithms with data structures
  • design and implement simple parallel programs

in order to

  • become a good problem solver using programming
  • be able to use computational methods in application projects
  • take advanced courses in computational mathematics, machine learning and theoretical computer science.

Course disposition

No information inserted

Literature and preparations

Specific prerequisites

Knowledge and skills in programming, 5 credits, equivalent to completed course DD1337/DD1310-DD1319/DD1321/DD1331/DD100N/ID1018.

Active participation in a course offering where the final examination is not yet reported in LADOK is considered equivalent to completion of the course.

Being registered for a course counts as active participation.

The term 'final examination' encompasses both the regular examination and the first re-examination.

Recommended prerequisites

No information inserted


No information inserted


No information inserted

Examination and completion

If the course is discontinued, students may request to be examined during the following two academic years.

Grading scale

A, B, C, D, E, FX, F


  • HEM1 - Homework, 3.0 credits, grading scale: A, B, C, D, E, FX, F
  • HEM2 - Homework, 1.5 credits, grading scale: A, B, C, D, E, FX, F
  • LAB1 - Programming assignments, 3.0 credits, grading scale: A, B, C, D, E, FX, F
  • LAB2 - Programming assignments, 1.5 credits, grading scale: A, B, C, D, E, FX, F

Based on recommendation from KTH’s coordinator for disabilities, the examiner will decide how to adapt an examination for students with documented disability.

The examiner may apply another examination format when re-examining individual students.

Opportunity to complete the requirements via supplementary examination

No information inserted

Opportunity to raise an approved grade via renewed examination

No information inserted


Ethical approach

  • All members of a group are responsible for the group's work.
  • In any assessment, every student shall honestly disclose any help received and sources used.
  • In an oral assessment, every student shall be able to present and answer questions about the entire assignment and solution.

Further information

Course web

Further information about the course can be found on the Course web at the link below. Information on the Course web will later be moved to this site.

Course web DD1328

Offered by

Main field of study


Education cycle

First cycle

Add-on studies

No information inserted


Hedvig Kjellström (

Supplementary information

In this course, the EECS code of honor applies, see: