COURSE SYLLABUS
Mathematics for Software Engineers, 6 credits
Matematik för mjukvaruutveckling, 6 högskolepoäng
Course Code: | TMMK16 |
Confirmed by: | Dean Feb 9, 2015 |
Revised by: | Director of Education Nov 29, 2016 |
Valid From: | Jan 1, 2017 |
Version: | 2 |
Reg number: | JTH 2016/4552-313 |
Education Cycle: | First-cycle level |
Disciplinary domain: | Technology (95%) and social sciences (5%)
|
Subject group: | MA1
|
Specialised in: | G1F
|
Intended Learning Outcomes (ILO)
After completing the course, the student shall
Knowledge and understanding
- 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.
Skills and abilities
- 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.
Judgement and approach
- 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.
Contents
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)
Type of instruction
The course will consist of lectures, seminars, exercises and practical work.
The teaching is conducted in English.
Prerequisites
General entry requirements and completed course Discrete Mathematics, 6 credits (or the equivalent).
Examination and grades
The course is graded 5,4,3 or Fail.
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.
Registration of examination:
Name of the Test | Value | Grading |
---|
Examination | 3 credits | 5/4/3/U |
Laboratory work and project work | 3 credits | 5/4/3/U |
Other information
Exemption from entry requirement allowed according to the selection groups of the program, where the course is included.
Course literature
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.