REA1121

Mathematics for Programming

Last taught 2019

Spring

Gjøvik

English

Overview

5 candidates

Pass rate

100%

18 points

Grade distribution
Average over time
Pass rate over time

About this course

Content

Logic
- Logic puzzles
- Solving logic puzzles by programming
- Bitwise logic

Probability
- Elementary probability and enumeration
- Conditional probability
- Random variables
- Modelling using Markov chains
- Expectation and variance
- Programming simulations

Mathematics for 3d-graphics
- Trigonometry and vector algebra
- Linear transformations in 3d
- Complex numbers and quaternions

Introduction to Functional Programming 
- Functional programming concepts
- Introduction to functional programming in C++
- Lazy data structures in C++
- Automatic differentiation

A selection of applications
- Implementation of the A*-algorithm for pathfinding
- Noise and procedural generation
- Flocking behaviour

Mechanics for games/applications
- Differentiation and integration
- Newtonian mechanics
- Numerical solution of the equations of motion
- Elastic and inelastic collisions
- Inverse kinematics
- Particle systems

Learning outcomes

After completing the subject the students should have knowledge of:
- Applications of mathematical logic in programming
- Algorithms for pathfinding
- Functional programming
- Elementary mechanics for games/applications
- The role of mathematics in software development

Skills in:
- Programming in logic and functional paradigms 
- Creating pathfinding solutions
- Constructing and analysing Markov Chain models
- Turning mathematical descriptions into programming code

General competence of:
- General logical and mathematical reasoning
- Problems solving and rigorous descriptions of solutions
- General programming ability
- Communication in written and spoken English

Teaching methods

Lectures, assignments

Up to 5 compulsory assignments