BMA1020 - Mathematics for Programming


Examination arrangement

Examination arrangement: Portfolio
Grade: Letter grades

Evaluation Weighting Duration Grade deviation Examination aids
Portfolio 100/100

Course content

Probability theory

Discrete Probability. Expectation and variance. Simulations. Absorbing Markov Chains.


Bitwise logic. Negative and floating point numbers in binary. Logical puzzles. Backtracking.


Transformations in 3 dimensions. Rotations, Euler angles and quaternions

Procedural Methods

Perlin noise and midpoint displacement. Interpolation.


Differentiation and integration. Newtons laws. Elastic collisions. Particle systems.

Introduction to functional programming in Python and Haskell.

Learning outcome

Knowledge about

  • Applications of mathematics in programming
  • Elementary mechanics for games/applications
  • The role of mathematics in software development

Skills in

  • Translating mathematics to code
  • Using relevant mathematical symbols and formulas
  • Applying mathematical libraries
  • General logical and mathematical reasoning

General competencies

  • Problem solving and description of problems and their solutions
  • Programming
  • Written communication in English

Learning methods and activities

  • Lectures and tutorials
  • Compulsory assignments:

Further on evaluation

The portfolio consist of:

- Ten weekly homework assignments to practice material covered in the course.

- A summary final assignment at the end of term given more weight to take the students development into account.

- Two challenging programming assignments requiring independence, creativity and problem solving skills.

Weighting is 60% for weekly assignments, 20% for challenge assignments and 20% for the final assignment. Each assignment is given a score, and the total sum forms the basis for the final grade. Students get continuous feedback on scores.

Weekly assignments are in part automatically graded where students get feedback while working.

The weekly assignments have a programming component which is graded manually. Students get feedback on all programming assignments individually, and assignments judged not satisfactory can be resubmitted once without penalty.

Students can ask questions to teachers and teaching assistants while working in weekly tutorial sessions, and assignments are discussed in plenary meetings and lectures.

We encourage discussions among the students, but work is done individually.

All submissions are digital on the learning platform.

Deadlines are for the most part weekly, but will be adjusted to create an even workload and avoid collisions with other courses.

Course materials

Published notes and downloadable books. Web resources.

More on the course



Version: 1
Credits:  7.5 SP
Study level: Foundation courses, level I


Term no.: 1
Teaching semester:  SPRING 2023

Language of instruction: English

Location: Gjøvik

Subject area(s)
  • Mathematics
Contact information
Course coordinator:

Department with academic responsibility
Department of Mathematical Sciences


Examination arrangement: Portfolio

Term Status code Evaluation Weighting Examination aids Date Time Examination system Room *
Spring ORD Portfolio 100/100
Room Building Number of candidates
Summer UTS Portfolio 100/100
Room Building Number of candidates
  • * The location (room) for a written examination is published 3 days before examination date. If more than one room is listed, you will find your room at Studentweb.

For more information regarding registration for examination and examination procedures, see "Innsida - Exams"

More on examinations at NTNU