IN1910 – Programming with Scientific Applications

Schedule, syllabus and examination date

Choose semester

Course content

The course is a continuation of the course IN1900, and provides an introduction to more advanced concepts in programming and software development. The central goal of the subject is to introduce new tools and concepts for scientific programming.

Learning outcome

After taking IN1910 you will:

  • Have knowledge of and experience with more advanced use of Python programming language, including heritage and object-oriented programming, as well as using Python in combination with other programming languages.
  • Have basic knowledge and experience with programming in C ++, including key concepts in object-orientation such as abstract classes and virtual methods.
  • Have knowledge of some key data structures such as arrays and linked lists, with associated algorhythms
  • Be able to generate random numbers and use these to run stochastic simulations.
  • Know esier forms of algorithm analysis and optimization, such as profiling and parallelization.
  • Be able to use version control and verification tools, including device testing and regression testing.

Prerequisites

Formal prerequisite knowledge

One of the courses IN1000, IN1900, INF1000, INF1100, IN105. INF101

Recommended previous knowledge

This course assumes knowledge of how to program using Python. Students whose only experience lies with other programming languages are recommended to read up on basic Python before the lectures starts. This could for example be done as self-study based on the first few chapter in the recommended curriculum.

Overlapping courses

Teaching

Access to teaching

4 hours of lectures and 2 hours of exercises each week. The lectures will be a combination of ordinary lectures and supervised work with projects and exercises.

Examination

Portfolio assessment and an oral exam. The students will develop and submit a larger application system with corresponding documentation, and everyone will have an oral exam where they demonstrate that their program works and explains central parts of the program and the underlying mathematics.

Both the portfolio- and exam-part must be passed to pass the course.

Examination support material

All kinds of aid are permitted.

Language of examination

You may write your examination paper in Norwegian, Swedish, Danish or English.

Grading scale

Grades are awarded on a pass/fail scale. Read more about the grading system.

Explanations and appeals

Resit an examination

This course offers both postponed and resit of examination. Read more:

Withdrawal from an examination

It is possible to take the exam up to 3 times. If you withdraw from the exam after the deadline or during the exam, this will be counted as an examination attempt.

Special examination arrangements

Application form, deadline and requirements for special examination arrangements.

Curriculum:

  • Goodrich, Tamassia, Goldwasser: Data structures and algorithms in Python

  • elements of H. P. Langtangen: A primer on scientific programming with Python

Facts about this course

Credits

10

Level

Bachelor

Teaching

Every autumn

Examination

Every autumn

Teaching language

Norwegian