Skip to main content
Till KTH:s startsida

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.

Information per course offering

Termin

Information for Spring 2027 grudatt27 programme students

Course location

KTH Campus

Duration
12 Jan 2027 - 31 May 2027
Periods

Spring 2027: P3 (4 hp), P4 (5 hp)

Pace of study

33%

Application code

11772

Form of study

Normal Daytime

Language of instruction

Swedish

Course memo
Course memo is not published
Number of places

Min: 1

Target group
Only CTMAT.
Planned modular schedule
[object Object]

Contact

Examiner
No information inserted
Course coordinator
No information inserted
Teachers
No information inserted

Course syllabus as PDF

Please note: all information from the Course syllabus is available on this page in an accessible format.

Course syllabus DD1328 (Spring 2027–)
Headings with content from the Course syllabus DD1328 (Spring 2027–) 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 Go.

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. Simple syntactical analysis. Algorithm analysis.

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

Theory and practical exercises concerning fundamental parallel programming and software development, including HTTP, client-server architecture, and accessibility.

Intended learning outcomes

After passing the course, the student should be able to

  • systematically test programs to discover errors
  • use abstraction as a tool to simplify the programming
  • analyze and compare algorithms with regard to time and memory usage
  • determine the correctness of iterative and recursive algorithms
  • describe and implement fundamental algorithms and data structures
  • ​develop, ie., depending on the grade level, choose, combine, modify, or construct a suitable algorithm and data structure to solve a given problem
  • write and use simple BNF syntax
  • design and implement simple parallel programs
  • explain the fundamental principles of HTTP and client-server architecture, and implement simple client-server programs with regard to accessibility

 

in order to

  • become good at solving problems using programming
  • be able to use computational methods in application projects
  • be prepared for advanced courses in courses in computational mathematics, machine learning, and theoretical computer science.



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.

Literature and preparations

Specific prerequisites

Knowledge and skills in programming corresponding to completed course DD1337/DD1310-DD1319/DD1321/DD1331/DD1333/DD100N/DD100V/ID1018/ID1022.

Literature

You can find information about course literature either in the course memo for the course offering or in the course room in Canvas.

Examination and completion

Grading scale

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

Examination

  • LABB - Programming Assignment, 2.0 credits, grading scale: A, B, C, D, E, FX, F
  • LABC - Programming Assignment, 2.0 credits, grading scale: A, B, C, D, E, FX, F
  • HEM3 - Take-home Assignment, 3.0 credits, grading scale: P, F
  • LABA - Programming Assignment, 2.0 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.

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

The examination components LABA, LABB, and LABC comprise both laboratory assignments that must be presented in written and oral form, as well as workshop sessions with associated preparatory tasks. The examination component HEM3 assesses the parallel programming part of the course.

Examiner

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 room in Canvas

Registered students find further information about the implementation of the course in the course room in Canvas. A link to the course room can be found under the tab Studies in the Personal menu at the start of the course.

Offered by

Main field of study

Technology

Education cycle

First cycle

Supplementary information

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

http://www.kth.se/en/eecs/utbildning/hederskodex.