Course Syllabus for

# Computational Programming with Python Beräkningsprogrammering med Python

## NUMA01F, 7.5 credits

Valid from: Autumn 2018
Decided by: Professor Thomas Johansson
Date of establishment: 2018-11-15

## General Information

Division: Mathematics
Course type: Course given jointly for second and third cycle
The course is also given at second-cycle level with course code: NUMA01
Teaching language: English

## Aim

The aim of the the course is to give an introduction to computational programming in Python for postgraduate students without previous programming knowledge. Python is a modern scripting language with strong ties to Scientific Computing.

## Goals

Knowledge and Understanding

For a passing grade the doctoral student must

• be able to explain and use basic programming concepts, data structures, conditional statements.
• be able do describe the structure of a Python program.

Competences and Skills

For a passing grade the doctoral student must

• be able to convert algorithms into programming code
• be able to visualise, interpret and critically assess numerical results
• be able to report solutions to problems and numerical results in speech, writing and graphic form
• be able to use appropriate terminology in a logical and well-structured manner
• be able organise, implement and orally present a major programming project in carried out in group.

Judgement and Approach

For a passing grade the doctoral student must be able to critically analyse the programs produced by fellow students and assess alternatives to his or her own programming solutions

## Course Contents

Basic programming concepts, data structures, conditional statements, functions and classes. Problem-solving using a few basic numerical methods associated with mathematics and physics. The basic functions and data types of the Python programming language: arithmetic operations, arrays of vectors, matrices, graphics functions, lists, tuples, dictionaries, file management. Use of modules such as NumPy, SciPy and Matplotlib The representation of floating point numbers and their implications for arithmetic Syntax: [for], [if-else], [while], list comprehensions, generators Nested functions, self-defined functions and modules Classes and inheritance applied to mathematical objects Tests and profiling

## Course Literature

Fuhrer, C., Solem, J. & Verdier, O.: Scientific Computing with Python 3 - Second Edition. 2016. ISBN 9781786463517.

## Instruction Details

Types of instruction: Lectures, exercises, project

## Examination Details

Examination format: Miscellaneous. Reports on programming exercises during the course, and a major programming project to be completed in groups.