Course code INF200

INF200 Advanced Programming

Norsk emneinformasjon

Search for other courses here

Showing course contents for the educational year 2018 - 2019 .

Course responsible: Hans Ekkehard Plesser
ECTS credits: 10
Faculty: Faculty of Science and Technology
Teaching language: EN
(NO=norsk, EN=Engelsk)
Limits of class size:
Teaching exam periods:
This course starts in the autumn parallel. This course has teaching during the autumn parallel and teaching and evaluation during the January block.
Course frequency: Annually
First time: Study year 2010-2011
Preferential right:

This course has a limited number of places. Admission to the course will be according to the criteria given here and you will be informed when admission has been processed.

Ranking criteria:

  • students in a Master in Data Science program
  • students who have the course as mandatory part of their study plans
  • students in one of RealTeks other study programs
  • other students

It there are not enough slots for all students, students will be admitted according to the priority of the group they belong to and thereafter according to study progress.

Course contents:
  • Programming tools: development environment and version control
  • Repetition of basic programming in Python
  • Object-oriented programming in Python
  • Scientific computing in Python
  • Test-based programming and testsuites, documentation tools
  • Debugging
  • Profiling and optimization
  • User interfaces
  • Programming project
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.

Learning activities:

During the autumn parallel, 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. Mutual code review using modern collaborative tools is an important part of the learning process. 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.

Programming project during January block: You will carry out a programming project together with a fellow student. Through the project, you will learn to undertake and complete a larger project. The project will cover most of the techniques taught in the course and students will practice these techniques further by applying them to the project.

This is a full-time course in the January block and requires your full-time presence throughout the January block.

Teaching support:
Online discussion forum, assistance in the computer lab, tutoring during the programming project.
Will be announced ahead of the course start.
INF120 or INF121 or comparable programming competence: You are able to independently solve exercises from Langtangen, A Primer on Scientific Programming in Python, ch 1-6, 8. If you have programming competence in a different programming language, you should expect extra efforts to get into Python.
Recommended prerequisites:
Mandatory activity:
You must have gotten mandatory programming exercises approved during the autumn parallel to be allowed to commence work on the programming project in the January block. Details will be given at the beginning of the course.

Continuous exam of the project task. A-F.

Evaluation of the programming project in two parts:

  • Presentation of the project with discussion (0-30 points).
  • Handed-in source code and documentation (0-70 points).

If two students collaborate on a project, then a joint evaluation is given for part 2, while individual evaluations may be given for part 1. The overall grade is determined based on the total point score obtained.

Presentation and discussion may take place a few days into the spring parallell term.

Nominal workload:
  • Autumn parallel 150h = 26h lectures + 26 h computer lab + 98h self study with course book and programming exercises
  • January block 150h = 15h colloquium + 120h programming project + 15h preparation of final presentation
Entrance requirements:
Special requirements in Science.
Type of course:
  • Autumn parallel: 26h lectures, 26h computer lab
  • January block: 84h: 14 working days with a minimum of 6 hours project work

The course consists of instruction in advanced programming in the autumn parallel and a project task in the January block. Course participants have to be present full time during the January block.

Due to the intense project work in the January block, this course is not suitable for students who are about to write their 30 credit master thesis with deadline on 15 May the same year.

The external examiner will approve the the project task, as well as the examination instructions. The examiner participates in the evaluation of the students during the concluding individual presentations and the final grading.
Examination details: Continuous exam: A - E / Ikke bestått