DD1318 Programming and Scientific Computing 9.0 credits

Programmeringsteknik och tekniska beräkningar

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

  • Education cycle

    First cycle
  • Main field of study

  • Grading scale

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

Course offerings

Spring 19 prgtb19 for programme students

Spring 20 prgtb20 for programme students

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 main content

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.


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).



  • LAB1 - Computer labs, 1.5, grading scale: P, F
  • LAB2 - Computer test, 1.5, grading scale: P, F
  • LAB3 - Programming Assignments, 3.0, grading scale: A, B, C, D, E, FX, F
  • LAB4 - Computer labs, 3.0, grading scale: P, F

Offered by

EECS/Intelligent Systems


Christian Smith (ccs@kth.se)


Christian Smith <ccs@kth.se>

Supplementary information

Only one of the following courses may be counted in your exam:
DD100N, DD1310, DD1311, DD1312, DD1314, DD1315, DD1318, DD1340, DD1341, DD1342, DD1343, DD1345, DN1212, HI1024, HI1026, ID1004, ID1301.


Course syllabus valid from: Autumn 2018.
Examination information valid from: Spring 2019.