Skip to main content

DD1318 Programming and Scientific Computing 9.0 credits

A basic course in programming techniques, and solving basic scientific problems using a computer.

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 DD1318 (Spring 2019–) are denoted with an asterisk ( )

Content and learning outcomes

Course contents

Fundamental computer concepts.

Programming in a modern programming language. Data structures and classes. Problem-solving through division into sub problems. Program structuring. Several smaller programming assignments as well as a larger, individual programming assignment with strong emphasis on structuring and specification of included modules.

Technical computations for the solution of mathematical problems. Two and three-dimensional graphical presentation.

Intended learning outcomes

Aims of the course: After passing the course, the students should be able to:

  • follow the rules in the syntax of the programming language
  • apply and account for rules for good programming style (such as user-friendliness, comments, error handling, structuring, flexibility)
  • discover and correct programming errors
  • modify given programs
  • transfer data between file and program
  • identify the need of and use control structures (conditional statements and loops)
  • divide a larger problem into manageable parts and design functions for these
  • use the data structures that are embedded in the programming language, as well as choose data structures that fit for the current problem
  • use classes as well as design own classes
  • review others' programs
  • handle matrices and use matrix operations
  • use built-in functions from libraries for technical computations and visualisation
  • differentiate and integrate functions numerically
  • solve scalar equations numerically
  • solve large linear equation system
  • use the least squares method
  • solve optimisation problems numerically
  • write and plot functions of complex numbers
  • plot curves
  • plot surfaces
  • make frequency analysis FFT, of vectors/sound and matrices/images

in order to have the possibility to:

  • use programming to solve problems
  • apply the problem solving methodology also in other fields than programming
  • discuss software development with experts
  • utilise the computer as aid for mathematical computations and visualisation in other courses.

The course contributes to satisfy the following aims for the Master of science in engineering programme in Media technology

  • The Media Technology programme will give the student the fundamental knowledge and abilities needed to successfully work with and from an engineering perspective solve technical, organisational, methodological, design-related, and user-related problems within the media field. The programme gives knowledge about the technical as well as multi-disciplinary foundation that media and their technology for production, distribution, and consumption rely upon.
  • The student will also have the ability to plan and and implement qualified assignments within given constraints and considering sustainability.

Course disposition

No information inserted

Literature and preparations

Specific prerequisites

No information inserted

Recommended prerequisites

High school mathematics (scientific program). Some computer experience (the concepts of operating system and file and experience from one computer application, e.g. word processing).


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


  • LAB1 - Computer labs, 1.5 credits, grading scale: P, F
  • LAB2 - Computer test, 1.5 credits, grading scale: P, F
  • LAB3 - Programming Assignments, 3.0 credits, grading scale: A, B, C, D, E, FX, F
  • LAB4 - Computer labs, 3.0 credits, grading scale: P, 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

An approved grade can be raised via renewed examination within a year from the start of the course offering. The end of this period normally coincides with the start of next year's corresponding course offering.


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 DD1318

Offered by

Main field of study


Education cycle

First cycle

Add-on studies

DD1320 Applied Computer Science and DD1380 Java Programming for Python Programmers.


Christian Smith (

Supplementary information

Only one of the following courses may be counted in your exam:
DD100N, DD1310-DD1318, DD1331, DD1337, DD1340-DD1343, DD1345, DN1212, HI1024, HI1026, ID1004, ID1018, ID1201, ID1301, SF1511, SF1513, SF1516-SF1519.

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