INF201 Advanced Programming

Credits (ECTS):5

Course responsible:Jonas Kusch

Campus / Online:Taught campus Ås

Teaching language:Engelsk

Course frequency:Annually

Nominal workload:125h = 26h lectures + 26 h computer lab + 73h self study with course book and programming exercise

Teaching and exam period:This course starts in the autumn parallel. This course has teaching and evaluation during the autumn parallel.

About this course

  • Programming tools: development environment and version control
  • Object-oriented programming in Python
  • Scientific computing in Python
  • Test-based programming and testsuites, documentation tools
  • Debugging
  • Profiling and optimization
  • User interfaces

Learning outcome

After completing the course, you will be able to:

  • develop programs based on procedural and object-oriented programming
  • read and understand programs at an equivalent level of complexity
  • analyse tasks and implement algorithms to solve them
  • use functionality delivered by standard libraries
  • localize errors in programs
  • optimize program performance
  • use programming tools such as debuggers, profilers, testsuites, documentation tools and version control.

You will be able to evaluate the applicability of more complex programs and able to assert their quality, and will have developed an insight into the programmer's responsibility for the correct and reliable functioning of his or her own programs, their quality and documentation.

  • The course builds upon your solid, basic programming skills, preferably in Python.

    You will extend your knowledge of more advanced programming techniques through lectures and develop your skills in exercises in the computer lab, where you will be working on shorter programming assignments. Your active participation is essential for success in the course.

    Self study: You need to actively train the programming concepts and skills covered in the course to develop good programming skills. Thus, as a student in INF200, you have to write and improve smaller programs on your own.

  • Online discussion forum, assistance in the computer lab.
  • Solid, basic programming skills, preferably in Python, and corresponding to the level reached at the end of INF120. You should be able to solve mandatory exercises from INF120 on your own. If you have programming skills in a different programming language, you should expect some extra effort.
  • Pass/fail.

    Portfolio evaluation based on tasks during the term. Details will be given at the beginning of the course.



  • The external examiner approves the tasks and evaluation instructions for the tasks included in the portfolio evaluation.
  • During the first weeks of the term, attendance during computer labs is mandatory to get to know fellow students. Details will be given at the beginning of the course.
  • We recommend that you do a programming project either in INF202 or INF203 to practice the concepts introduced in INF201.
  • 26h lectures, 26h computer la
  • INF200: 5 stp
  • Special requirements in Science.