REA1121
Mathematics for Programming
Last taught 2019
Spring
Gjøvik
English
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