KURSPLAN
Matematik för mjukvaruutveckling, 6 högskolepoäng
Mathematics for Software Engineers, 6 credits
Kursplan för studenter vår 2019
Kurskod: TMMK16
Fastställd av: VD 2015-02-09
Reviderad av: Utbildningschef 2016-11-29
Gäller fr.o.m.: 2017-01-01
Version: 2
Diarienummer:JTH 2016/4552-313
Utbildningsnivå: Grundnivå
Utbildningsområde: Tekniska området (95%) och samhällsvetenskapliga området (5%)
Ämnesgrupp: MA1
Fördjupning: G1F

Lärandemål

After completing the course, the student shall

Kunskap och förståelse

- be familiar with different approaches from Discrete Mathematics applicable to problems in computer science and software engineering
- display knowledge of some standard algorithms based on the above mentioned branches of Mathematics
- demonstrate comprehension of chosen specific techniques illustrative for a wider class of applications.

Färdighet och förmåga

- demonstrate skills of transforming of a real world problem into formal description using the terms specific to corresponding branch of Mathematics
- demonstrate ability to find out particularities of corresponding theory and its application and then rapidly produce a proof-of-concept implementation of the solution in a scripting language
- demonstrate skills to use matehmatics in scientific work through the evaluation of alternative solutions to a problem using experimentation and other scientific methods.

Värderingsförmåga och förhållningssätt

- demonstrate ability to identify a real world problem to be treatable within the framework of some, possibly adapted/modified, known method or algorithm of the ones studied in this course;
- demonstrate understanding of the complexity and scaling properties of the algorithm implementation.

Innehåll

The course investigates mathematical concepts of direct relevance to programming and the construction of software systems. The course focuses on the use of mathematics as a tool for formalising and solving problems in programming and software engineering. Furthermore, the course makes use of scripting languages to implement proof-of-concept solutions to problems as well as other tools such as spreadsheets. The course also provides students with the confidence to approach mathematicians for support in addressing more complex software engineering challenges.

The course includes the following topics:
- Discrete mathematics (including abstract algebra, graph theory and the Z-transform)
- Generating functions and the use of recursive techniques
- Algorithm complexity and the effect on code performance
- Automata, formal machines and the programming of state-based behaviour
- Elements of coding theory
- The mathematical basis for encryption and cryptology
- Optimization techniques (including for example linear programming, dynamic programming or optimization in networks)

Undervisningsformer

The course will consist of lectures, seminars, exercises and practical work.

Undervisningen bedrivs på engelska.

Förkunskapskrav

General entry requirements and completed course Discrete Mathematics, 6 credits (eller motsvarande kunskaper).

Examination och betyg

Kursen bedöms med betygen 5, 4, 3 eller Underkänd.

The final grade for the course is based upon a balanced set of assessments. The final grade will only be issued after satisfactory completion of all assessments.

Poängregistrering av examinationen för kursen sker enligt följande system:
ExaminationsmomentOmfattningBetyg
Examination3 hp5/4/3/U
Laboratory work and project work3 hp5/4/3/U

Övrigt

Exemption from entry requirement allowed according to the selection groups of the program, where the course is included.

Kurslitteratur

The literature list for the course will be provided one month before the course starts.
Main textbook:
Title: Discrete and Combinatorial Mathematics: An applied Introduction
Author: Ralph P Grimaldi.
Publisher: Pearson, 2003.

Additional literature:
Title: Introduction to Computation and Programming Using Python
Author: John V Guttag,
Publisher: MIT Press, 2013.