BMA1020

Mathematics for Programming

Spring

Gjøvik

English

Overview

70 candidates

Average grade

D

2.36

0.03

Pass rate

66%

5 points

Grade distribution
Average over time
Pass rate over time

About this course

Content

Mathematics on a computer. Binary and floating point numbers.

Trigonometry and vectors.

Linear algebra. Systems of linear equations and linear transformations, especially in 2 and 3 dimensions. Projections. Rotations, complex numbers and quaternions.

Calculus. Derivative and integral. Differential equations.

Physics. Kinematics. Forces and Newtons laws. Elastic collisions. Torque and rotations. Optics and illumination.

Probability. Probabilistic algorithms and simulation.

Learning outcomes

Knowledge of all fields mentioned in "Course content", including and particularlyt:

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

Ability to:

  • Describe mathematically simple geometric objects such as lines, planes, triangles and circles. Find intersections of such objects. Find the normal to a plane, and reflected lines.
  • Set up and solve linear equations on a computer. Describe and apply linear transformations. Program complex numbers for rotations in 2D, and quaternions for rotations in 3D. Use projections in 3D graphics.
  • Explain the meaning of derivatives and integrals, and compute these numerically.
  • Conduct physical simulations, including by numerical solution of differential equations. Detect and resolve elastic collisions.
  • Apply knowledge of optics, geometry and linear transforms in graphics programming.
  • Generate (pseudo-) random numbers on a computer. Implement algorithms which use these, and understand their use and limitations in simulations.

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
  • Communication in English

Teaching methods

  • Lectures and tutorials
  • Compulsory assignments