Skip to main content
Till KTH:s startsida

ID1022 The Art of Programming 7.5 credits

Information per 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.

Termin

Course syllabus as PDF

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

Course syllabus ID1022 (Autumn 2026–)
Headings with content from the Course syllabus ID1022 (Autumn 2026–) are denoted with an asterisk ( )

Content and learning outcomes

Course contents

  • Use of various software development tools: version control systems, UNIX command line, compilers, integrated development environments, and debugging tools.
  • Programming using various data structures: lists, arrays, stacks, queues, and lookup structures.
  • Programming language concepts: pattern matching, recursion, loops, arithmetic, operators, variables, algorithms, immutable data, objects, classes, functions, pointers, data types, and polymorphism.
  • Software engineering: design, testing, debugging, and prompting (both for self-written programs and existing programs).
  • Programming language paradigms: historical perspective, overview of different languages ​​and paradigms, and study, discussion, and analysis of programming concepts in imperative programming (variables and pointers), functional programming (recursion and immutable data), and object-oriented programming (objects and classes).
  • Forms of input and output, including sound, image, text, and files.
  • AI tools: overview and short exercises with modern AI tools.
  • Individual project: own development of a non-trivial program, including problem formulation, design, testing, and presentation.

Intended learning outcomes

After passing the course, the student should be able to

  • use basic software development tools, data structures, algorithms, and data types
  • construct programs that contain functions and various control flow constructs using both static and dynamic type checking
  • compare, and analyse programming concepts within imperative programming, functional programming and object-oriented programming
  • debug and improve programs written by other people
  • program both with and without AI-based code generation
  • design, develop, and test a non-trivial program

in order to

  • being able as an individual student to design, develop and test their own programs without the help of other people
  • be well prepared to learn new programming languages, including other languages ​​that are imperative, functional or object-oriented.

For higher grades, the student should be able to

  • design, develop and test programs with more complex problem formulations, and with more advanced language concepts.

Literature and preparations

Specific prerequisites

No information inserted

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

  • DAT1 - Computer-Based Assessment, 6.0 credits, grading scale: A, B, C, D, E, FX, F
  • PRO1 - Individual Project, 1.5 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. If the course is discontinued, students may request to be examined during the following two academic years.

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

Overlaps partially (3-6 credits) with DD1310-DD1319, DD1321, DD1331, DD1333, DD100N, DD1337, ID1018.