Course syllabus


DAT425 Introductory course in programming LP1 HT22 (6 hp)
DAT505 Introductory course in programming LP1 HT22 (7.5 hp)
DAT455 Introduction to Programming in Python LP1 HT22 (7.5 hp)


Course is offered by the department of Computer Science and Engineering

Contact details

  • examiner: Krasimir Angelov <>
  • Teaching assistants:
    • Henrik Valter
    • Wincent Stålbert Holm
    • Alex Lech
    • Axel Gustavsson
    • David Memedov
    • Dennis Christensen
    • Edgar Young
    • Elvira Moberg
    • Emil Nylander
    • Emmy Haavisto
    • Felix Jönsson
    • Jakob Renmark
    • Karl Wiklund
    • Kevin Collins
    • Leo Woxberg
    • Love Lindqvist
    • Ludvig Nordberg
    • Marcus Wassenius
    • Max Hilding
    • Melker Rååd
    • Muhammad Abdullah Arshad
    • Omar Younes
    • Osama Al Sheikh Ali
    • Oscar Palm
    • Roj Mert Tekin
    • Samuel Lloyd
    • Tim Bakkenes
    • Timothy Jarebrant
    • Viktoria Andersson
  • Student Representatives:
    • TKAUT
      • Jens Franzén <>
      • Kerim Gishkaev <>
      • Arvid Petersson <>
      • Assal Sadawi <>
      • Vincent Sahlström <>
    • TKGBS
      • Malin Lindgren <>
      • Samuel Vallgren Nilsson <>


Join workspace

Course purpose

Computer programming is a basic skill needed in both studies and professional life. This course gives the basic skills that the participants can both accomplish programming tasks typical of science and engineering tasks and understand the fundamental principles of computers and programming.


The course schedule is available in TimeEdit

Course literature

John M. Zelle, Python Programming: An Introduction to Computer Science, 3rd edition, Franklin, Beedle, & Associates, 2017

The book is also available as e-book:

Course design

The course consists of two lectures and three supervision sessions every week on campus.

Learning objectives and syllabus

Learning objectives:

On successful completion of the course the student will be able to: 

Knowledge and understanding

  • Express mathematical formulas as programming language expressions and algorithms
  • Choose appropriate data types and data structures for different kinds of data
  • Structure large programs into manageable and reusable units by the use of concepts such as modules, classes, and functions
  • Search and find relevant program libraries and use them in adequate ways
  • Explain the relations between hardware, operating system, and user programs
  • Use programming for basic data analysis involving large files

Competence and skills

  • Write programs that manipulate numeric and textual data to perform standard programming tasks
  • Build interactive programs with both text-based and graphical user interfaces
  • Make programs that read, transform, and generate files in the file system
  • Use standard libraries and follow best programming practices
  • Test programs by methods such as unit, regression, and property-based testing
  • Use programming tools such as code editors and revision control systems

Judgement and approach

  • Assess the difficulty and resources needed for typical programming tasks
  • Analyse code written by others and find errors and possibilities for improvement

Link to the syllabus on Studieportalen.

Study plan DAT425

Study plan DAT505

Study plan DAT455

Examination form

To pass the course it is necessary to do:

  • 3 obligatory labs which must be submitted before the deadline and approved by a supervisor. The grading will be mostly based on an automatic testing, but the supervisors also have the right to reject submissions after manual inspections of the code.
  • A digital exam.