Print

Mathematics for Software Engineering

Code

IT-MSE1

Version

1.0

Offered by

ICT Engineering

ECTS

5

Prerequisites

The course requires mathematics corresponding to the admission requirements for the Software Engineering Programme.

Main purpose

The main purpose of the course is to give the students the mathematical prerequisites to work with technical IT and specifically software engineering. With regard to the competency profile of the Software Engineering Programme, the focus of the course will be to

- supply competences in analyzing and generalizing algorithms and problems that occur in the context of software development.
- supply skills in expressing ones knowledge clearly and concisely.
- formalize statements in a logically and computationally correct manner.
- supply analytical problem-solving skills.

​After having successfully completed the course, the students will have acquired a solid understanding of the mathematics used in software engineering, a clear analytical mindset, as well as skills in the methodology of software engineering. 

Knowledge

After completing the course, students will be able to:
- Explain the principles of basic arithmetic and number systems, essential for all computational tasks.
- Describe Boolean algebra's applications in logic circuits and programming conditionals.
- Discuss combinatorial problems and basic problems in probability theory.
- Summarise the concept of linear equations, solution sets, and linear dependence in the context of data structures and algorithm optimization.
- Explain matrix algebra, its significance in complex computations, and applications in software technology.
- Examine the application of eigenvalues and eigenvectors in software technology.
- Outline the fundamentals of asymptotic analysis and Big O notation for evaluating algorithm efficiency.
- Account for the concept of functions and loops in programming, emphasizing their importance in creating efficient and reusable code.

Skills

Upon course completion, students will gain skills in:
- Performing arithmetic operations and utilizing different number systems for varied computational contexts.
- Applying Boolean algebra in developing and optimizing logical expressions and algorithms.
- Solving combinatorial problems and employing probability theory to analyze and predict outcomes in software projects.
- Utilizing conditional probability and Bayes' Theorem
- Solving linear equations, understanding solution sets and linear dependence to enhance data analysis and algorithm development.
- Manipulating matrices and applying matrix algebra in transformations and complex calculations.
- Determining eigenvalues and eigenvectors
- Applying asymptotic analysis and Big O notation to assess and improve algorithm performance.
- Creating functions and implementing loops in programming to improve code efficiency, readability, and maintainability.

Competences

After the course, students will be competent in:
- Formulating and solving linear and combinatorial problems analytically and algorithmically, preparing them for complex challenges in software engineering.
- Designing and optimizing algorithms using Boolean algebra, matrix operations, and asymptotic analysis, crucial for high-performance software development.
- Developing the basis for predictive models and decision-making systems by applying concepts of probability, conditional probability, and Bayes' Theorem.
- Applying the acquired mathematical skills and programming techniques in more advanced software engineering courses and real-world projects, enabling them to tackle complex problems with confidence.

Topics

Teaching methods and study activities

The course duration is 12 weeks. The total workload for the student is estimated at 130 hours. The teaching method is classroom instruction with theory review combined with problem-solving. It is expected that the student will read the assigned literature and solve problems between the theoretic lessons and in the tutorial sessions.​

Resources

​All material will be made available to the student.​

Evaluation

Examination

Exam prerequisites:

1. Attendance (≥ 75%) 
2. Eight out of ten mandatory assignments approved.

If the exam prerequisites are not met, the student must complete a written assignment in WISEflow to qualify for the re-exam.
This assignment will be scheduled after the ordinary exam. 

Type of exam:  
The exam has two parts:

The first part is a Flowlock exam in Wiseflow.
The second part is a Wiseflow exam without Flowlock.

The exam has a total duration of 4 hours. 
The student will not be able to access the second part before the first part is concluded. 
Each part has an equal weight in the final grade. 

Internal assessment.

Tools allowed:
In the first part the students are allowed to use any notes, books, and/or other written/printed material and will have access to pdf files on their laptop. The student may bring their own calculator.

In the second part all supplementary materials and aids are allowed, e.g., using a computer to do calculations, but the student is not allowed to go online, i.e. no Internet access.

Even more so, it is not allowed to use AI-tools such as CoPilot, ChatGPT, Bing, etc. as per the general VIA rules.
Communication of any sort is not allowed during the exam and will lead to expulsion of all involved parties from the exam.

​Re-exam:
Please note that re-exams may be oral.

Grading criteria

​Grading according to the 7-point grading scale.​

Additional information

Responsible

Richard Brooks (rib)

Valid from

8/1/2024 12:00:00 AM

Course type

Compulsory Course for all ICT Engineering
1. semester

Keywords

Mathematical analysis, Algorithms, Systems of linear equations, Matrix algebra, Probability theory, Boolean algebra, Asymptotic analysis, Eigenvalues and eigenvectors, Combinatorics, Functions and loops