Skip to main content

ID1018 Programming I 7.5 credits

Choose semester and course offering

Choose semester and course offering to see information from the correct course syllabus and course offering.

Headings with content from the Course syllabus ID1018 (Spring 2019–) are denoted with an asterisk ( )

Content and learning outcomes

Course contents

Fundamental constructs:

  • Basic syntax and semantics of a higher-level language
  • Variables, types, expressions and assignment
  • Simple I/O
  • Conditional and iterative control structures
  • Functions and parameter passing
  • Structured decomposition

Data structures:

  • Representation of numeric data
  • Range, precision, and rounding errors
  • Arrays
  • Representation of character data
  • Strings and string processing
  • Runtime storage management
  • Pointers and references

Algorithmic problem solving:

  • Problem-solving strategies
  • The role of algorithms in the problem-solving process
  • Implementation strategies for algorithms
  • Debugging strategies
  • The concept and properties of algorithms

Object-oriented programming:

  • Object-oriented design
  • Encapsulation and information-hiding
  • Separation of behavior and implementation
  • Classes and subclasses
  • Inheritance
  • Polymorphism


  • Exception handling

Intended learning outcomes

Upon completion of the course the student is able to:

  • Analyze, explain, modify and expand a simple program in terms of fundamental programming constructs and concepts.
  • Describe the representation of numeric and character data, and discuss the use of primitive data types and built-in data structures.
  • Design, implement, test and debug a program using basic computation, simple I/O, standard conditional and iterative structures, and the definition of functions.
  • Discuss the importance of algorithms, identify the necessary properties of good algorithms and create algorithms for solving simple problems.
  • Develop code that responds to exceptional situations during execution.
  • Justify the philosophy of object-oriented design and the concepts of encapsulation, abstraction, inheritance, and polymorphism.
  • Design, implement, test, and debug simple programs in an object-oriented programming language.

Course disposition

The course runs over a KTH period. Teaching forms that are used:

  • Lectures. In a lecture (for all students) different concepts are introduced and developed.
  • Labs (programming exercises). The student solves different programming problems with the help of a computer, and in that way verifies and deepens her/his knowledge and abilities.
  • Seminars. Students prepare solutions to problems and discuss them in groups.

Literature and preparations

Specific prerequisites

No information inserted

Recommended prerequisites

No information inserted


No information inserted


Programmeringsprinciper i Java upplaga 1:1
ISBN: 978-91-44-09442-7

Programmeringsprinciper i Java exempel och övningar upplaga 1:1
ISBN: 978-91-44-09440-3

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 - Programming Assignments, 4.5 credits, grading scale: A, B, C, D, E, FX, F
  • TEN1 - Written Exam, 3.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.

Description of examination parts:

  • LAB1 - The student demonstrates creative and programming skills by showing the ability to complete a sufficient number of assignments.
  • TEN1 - The student demonstrates analytical, argumentative and conceptual programming skills.

Other requirements for final grade

At least grade E on all examination parts.

Opportunity to complete the requirements via supplementary examination

No information inserted

Opportunity to raise an approved grade via renewed examination

No information inserted


Profile picture Fredrik Kilander

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 ID1018

Offered by

EECS/Computer Science

Main field of study


Education cycle

First cycle

Add-on studies

No information inserted

Supplementary information

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