ID1018 Programming I 7.5 credits

Programmering I

  • Education cycle

    First cycle
  • Main field of study

  • Grading scale

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

Course offerings

Autumn 19 for programme students

Autumn 19 TCOMK for programme students

Autumn 18 TCOMK for programme students

Autumn 18 for programme students

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

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


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.



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


  • LAB1 - Programming Assignments, 4.5, grading scale: A, B, C, D, E, FX, F
  • TEN1 - Written Exam, 3.0, grading scale: A, B, C, D, E, FX, F

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.

Requirements for final grade

At least grade E on all examination parts.

Offered by

EECS/Computer Science


Fredrik Kilander <>


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