""
Language skills
required
Programme length
Full time study for two academic years.
Study mode
Face-to-face learning
Application status
International students:
Students with Icelandic or Nordic citizenship:
Overview

  • Would you like to be an engineer?
  • Do you want to specialise in a specific area of software engineering?
  • Are you interested in creating new knowledge?
  • Would you like to learn more testing and maintaining software?

The MS in software engineering offers students dynamic research opportunities, strong links with industry, and international partnerships, which ensures that student projects are based on real-world conditions and the most up-to-date knowledge.

Thesis projects are usually practical and completed in collaboration with companies or institutes. They may be inspired by the student's interest in a certain topic or related to an instructor's research.

Programme structure

The programme is 120 ECTS and is organised as two years of full-time study.

The programme is made up of:

  • Courses, 60 ECTS
  • Master's thesis, 60 ECTS

In addition to mandatory courses, students also choose elective courses in consultation with the academic supervisor, related to the student's chosen area of specialisation.

Students may choose between the following specialisations:

  • General software engineering
  • Innovation and entrepreneurship

Organisation of teaching

This programme is taught in Icelandic but most textbooks are in English.

Part of the programme can be taken abroad at one of UI's partner universities.

Main objectives

Students are expected to specialise in a specific area of software engineering and learn to create new knowledge.

Other

After completing the Master's degree in software engineering, students can apply for the right to use the title of engineer. This professional title is legally protected.

Completing a Master's degree in software engineering allows you to apply for doctoral studies.

  1. A BS degree in software engineering or a related subject with grade point average 6.5 or higher. Those who do not have a degree in software engineering must fulfill prerequisites set by the Department of Computer Science.
  2. All international applicants, whose native language is not English, are required to provide results of the TOEFL (79) or IELTS (6.5) tests as evidence of English proficiency.
  3. Applicants are asked to submit a letter of motivation, 1 page, where they should state the reasons they want to pursue graduate work, their academic goals and a suggestion or outline for a final paper.
  4. Letters of recommendation (2) should be submitted. These should be from faculty members or others who are familiar with your academic work and qualified to evaluate your potential for graduate study. Please ask your referees to send their letters of recommendation directly to the University of Iceland electronically by e-mail (PDF file as attachment) to transcript@hi.is.

120 ECTS credits have to be completed for the qualification. Organised as a two-year programme, 60 ECTS credits in courses and 60 ECTS credits in an individual project. Graduate courses (marked M or F) should be chosen in cooperation with a supervisor or departmental coordinator. At least 30 ECTS credits shall be from the Computer Science programme (courses marked TÖL, HBV or REI). The courses should all be graduate courses marked M or F.

Students need a personal laptop with either Microsoft Windows, Apple macOS, or a Linux distribution in order to install and run the software that will be used in courses.

The following documents must accompany an application for this programme:
  • CV
  • Statement of purpose
  • Reference 1, Name and email
  • Reference 2, Name and email
  • Certified copies of diplomas and transcripts
  • Proof of English proficiency

Further information on supporting documents can be found here

Programme structure

Check below to see how the programme is structured.

Year unspecified | Whole year courses
Mentor in Sprettur (GKY001M)
Free elective course within the programme
5 ECTS, credits
Course Description

In the course, the student's task consists in being a mentor for participants that are upper secondary school students and university students in the project "Sprettur". Mentors' main role is to support and encourage participants in their studies and social life. As well as creating a constructive relationship with the participants, being a positive role model, and participating in events organized in Sprettur. The mentor role centers around building relationships and spending meaningful time together with the commitment to support participants. 

Sprettur is a project that supports students with an immigrant or refugee background who come from families with little or no university education. The students in this course are mentors of the participants and are paired together based on a common field of interest. Each mentor is responsible for supporting two participants. Mentors plan activities with participants and spend three hours a month (from August to May) with Sprettur’s participants, three hours a month in a study group and attend five seminars that are spread over the school year. Students submit journal entries on Canvas in November and March. Diary entries are based on reading material and students' reflections on the mentorship. Compulsory attendance in events, study groups, and seminars. The course is taught in Icelandic and English. 

Students must apply for a seat in the course. Applicants go through an interview process and 15-30 students are selected to participate. 

See the digital application form. 

More information about Sprettur can be found here: www.hi.is/sprettur  

Language of instruction: Icelandic/English
Face-to-face learning
The course is taught if the specified conditions are met
Prerequisites
Attendance required in class
Year unspecified | Fall
Secure Software Engineering (HBV506M)
A mandatory (required) course for the programme
6 ECTS, credits
Course Description

Secure software engineering involves identifying and mitigating vulnerabilities to reduce threats to an application. In this module, students will gain an understanding of secure engineering practices and the means to apply them throughout the complete software development life cycle.

Working in teams, students will design, develop, and maintain a web application for a customer following secure software engineering principles. Students will illustrate their understanding and practical competency of white box and black box security assessment through testing their own and other team’s applications for vulnerabilities against the OWASP top 10 most critical security risks to web applications.

It is therefore assumed the students have knowledge in web application development using JavaScript.

Language of instruction: English
Face-to-face learning
Prerequisites
Year unspecified | Fall
Distributed Systems (TÖL503M)
A mandatory (required) course for the programme
6 ECTS, credits
Course Description

Usually taught every second year.

This course covers concepts of distributed systems and their application. Besides foundations on characteristics and models of distributed systems, networking and security, this includes network-based low-level interprocess communication, high-level remote procedure calls, the distributed object model and remote method invocation, services relevant in distributed systems (such as name services or distributed file systems), selected topics of distributed algorithms and their implementation (such as coordination, agreement,  time, replication). Furthermore, special types of distributed systems may be covered (such as peer-to-peer systems, Cloud and Grid computing).  Current technologies (such as Java RMI, Web Services, gRPC) are used as case study and as platform for developing distributed applications using high-level programming languages (such as Java).

Note: while this is an "M" course, it is rather on MSc. level. BSc. students who take this course need to be advanced in their BSc. studies. (E.g. we will implement middleware in Java, so you should have programming experience well beyond "TÖL101G Computer Science 1". As a middleware adds functionality on top of an Operating System, you should have also passed TÖL401G Operating Systems.)

Language of instruction: English
Face-to-face learning
The course is taught if the specified conditions are met
Year unspecified | Fall
Final project (HBV442L)
A mandatory (required) course for the programme
0 ECTS, credits
Course Description
  • The topic of the Master's thesis must be chosen under the guidance of the supervisor and the Faculty Coordinator of the student. The thesis represents 60 credits. All Master's student have been assigned to a Faculty Coordinator from the beginning of their studies, who advises the student regarding the organization of the program. If a student does not have a supervisor for the final project, he / she must turn to the Faculty Coordinator for assistance.
  • The choice of topic is primarily the responsibility of the student in collaboration with his or her project supervisor. The topic of the project should fall within the student's area of study, i.e. course of study and chosen specialisation.
  • The master’s student writes a thesis according to the School’s template and defends it in a master’s defense.
  • Final project exam is divided into two parts: Oral examination and open lecture
  • Present at the oral exam is the student, supervisor, examiner and members of the Master's committee. The student presents a brief introduction on his / her project. It is important that the objectives and research question(s) are clearly stated, and that main findings and lessons to be drawn from the project are discussed.
  • The student delivers a thesis and a project poster.
  • According to the rules of the Master's program, all students who intend to graduate from the School of Engineering and Natural Sciences need to give a public lecture on their final project.
  • All students graduating from the University of Iceland shall submit an electronic copy of their final Master's thesis to Skemman.is. Skemman is the digital repository for all Icelandic universities and is maintained by the National and University Library.
  • According to regulations of University of Iceland all MS thesis should have open access after they have been submitted to Skemman.

Learning Outcomes:

Upon completion of an MS thesis, the student should be able to:

  • Formulate engineering design project  / research questions
  • Use an appropriate theoretical framework to shed light on his / her topic
  • Analyze and solve engineering tasks in a specialized field.
  • Perform a literature search and a thorough review of the literature.
  • Demonstrate initiative and independent creative thinking.
  • Use economic methodology to answer a specific research question
  • Competently discuss the current knowledge within the field and contribute to it with own research
  • Work with results, analyze uncertainties and limitations and interpret results.
  • Assess the scope of a research project and plan the work accordingly
  • Effectively display results and provide logical reasoning and relate results to the state of knowledge.
Language of instruction: Icelandic/English
Self-study
Part of the total project/thesis credits
Not taught this semester
Year unspecified | Fall
Software Maintenance (HBV103M)
A mandatory (required) course for the programme
6 ECTS, credits
Course Description

Usually taught every second year (typically in fall of odd years, but this is subject to change in 2024).

The first part of the course is based on flipped-classroom style weekly reading, videos and assignments on:

  • Evolution of Software and Lehman’s laws,
  • Maintenance processes,
  • Metrics useful for maintenance,
  • Software analysis,
  • Re-engineering,
  • Reverse engineering,
  • Code Smells & Refactoring,
  • Basics of (Regression-)Testing,
  • Design principles to support change & Design Patterns,
  • Tools for software maintenance (including advanced features of an IDE).

In the second part of this course, these techniques will be applied in order to maintain a real legacy software written in Java.

Note: while this is an "M" course, it is rather on MSc. level. BSc. students who take this course need to be advanced in their BSc. studies and you need solid Java programming experience: we will maintain a complex software and being able to understand how such a grown software works and to fix bugs is even more difficult to write such a software from scratch. Hence, you should have passed HBV501G Software Project 1, preferably even HBV601G Software Project 2. (It is impossible to maintain a software if you would not even be able to develop it.) Also, BSc. students should not take this course, if they know that they are going to continue with MSc. studies, because they might then experience a lack of suitable courses in their MSc. studies.

Language of instruction: English
Face-to-face learning
The course is taught if the specified conditions are met
Year unspecified | Fall
Network Measurements and Analysis (TÖL104M)
Free elective course within the programme
6 ECTS, credits
Course Description

This course provides an introduction to carrying out different measurements in Internet, an overview on related software tools, and advanced data analysis methods. We discuss, e.g., both passive and active packet, flow and routing measurements, as well as, some selected techniques related to cyber security operations (e.g. detection of Botnets and anomalies). Course includes also a sufficient coverage of related ethical and legal questions. In course exercises, students process real measurement data using statistical and mathematical software packages (e.g., NumPy or R), and carry out various network measurements. The measurement data are analysed and reported.

Course composition:

1. Lectures (first part)
2. Laboratory work and self-study (second part; measurements)
3. Final presentations (optional)

Language of instruction: English
Face-to-face learning
Prerequisites
Year unspecified | Fall
Usable Privacy and Security (HBV507M)
Free elective course within the programme
6 ECTS, credits
Course Description

Survey of the field of usable security and privacy with an emphasis on emerging technologies. Topics include authentication, location privacy, social network privacy, behavioral advertising, - health privacy, anonymity, cryptocurrency, technical writing and ethical conduct of usable privacy and security research.

Language of instruction: English
Face-to-face learning
Year unspecified | Fall
Machine Learning (REI505M)
Free elective course within the programme
6 ECTS, credits
Course Description

An overview of some of the main concepts, techniques and algorithms in machine learning. Supervised learning and unsupervised learning. Data preprocessing and data visualization. Model evaluation and model selection. Linear regression, nearest neighbors, support vector machines, decision trees and ensemble methods. Deep learning. Cluster analysis and the k-means algorithm. The students implement simple algorithms in Python and learn how to use specialized software packages. At the end of the course the students work on a practical machine learning project.

Language of instruction: English
Face-to-face learning
Not taught this semester
Year unspecified | Fall
Machine Learning for Earth Observation powered by Supercomputers (REI506M)
Free elective course within the programme
6 ECTS, credits
Course Description

This course exposes the students to the physical principles underlying satellite observations of Earth by passive sensors, as well as parallel Deep Learning (DL) algorithms that scale on High Performance Computing (HPC) systems. 

For the different theoretical concepts (represented by 4 modules), the course provides hands-on exercises. These exercises are part of a project in the context of Remote Sensing (RS) image classification that the students are asked to develop during the whole duration of the course.

Language of instruction: English
Face-to-face learning
Year unspecified | Fall
Programming Projects on Internet of Things (TÖL103M)
Free elective course within the programme
6 ECTS, credits
Course Description

This course offers a hands-on introduction to programming small devices (microcontrollers, single-board computers) used in the context of Internet of Things, sensor networking, and home automation.

Such devices are often equipped with a large number of I/O pins, some RAM and flash memory, and wireless communication capabilities (e.g. WiFi and/or Bluetooth), making them attractive for tasks involving data acquisition,
processing, and wireless communication.

The course consists of bi-weekly programming tasks dealing with serial communication, data acquisition and analysis, programming of real-time O/S (RTOS), wireless communication and TCP/IP client-servers paradigm.

The biweekly assignments lead to a final project.

Language of instruction: English
Face-to-face learning
Not taught this semester
Year unspecified | Fall
From an Idea to Reality (TÖL109F)
Free elective course within the programme
6 ECTS, credits
Course Description

The course has been in development for over a decade under the name "Computer Systems and Marketing". 

The course is based on teacher lectures and individual and group projects that help students to think outside the box. Teacher will tell of his experiences of making ideas become real and have a special focus on the mistakes that have been made along with the successful stories.
The final project of the course is a business plan that will be presented in an oral final exam. The business plan focuses on the idea of each student and how the student plans to realize his project.

Language of instruction: Icelandic
Face-to-face learning
Year unspecified | Fall
Human Computer Interaction (TÖL502M)
Free elective course within the programme
6 ECTS, credits
Course Description

Usually taught every second year.

The objective of the course is to allow students to examine more closely than is done in the introductory course Graphical User Interface Programming  HBV201G specific factors of HCI. The factors covered are user interface design using prototyping, programming of smart devices and users‘ acceptability of the software. There will be emphasis on different techniques and tools to develop prototypes. Also, on the design of user interfaces and native programming for smart phones or pads. The development process will be aimed at ensuring accessibility and acceptability of users. Students work on small projects individually, or on larger projects in groups. 

Language of instruction: Icelandic
Face-to-face learning
The course is taught if the specified conditions are met
Prerequisites
Year unspecified | Fall
Introduction to deep neural networks (TÖL506M)
Free elective course within the programme
6 ECTS, credits
Course Description

In this course we cover deep neural networks and methods related to them. We study networks and methods for image, sound and text analysis. The focus will be on applications and students will present either a project or a recent paper in this field.

Language of instruction: Icelandic
Face-to-face learning
Year unspecified | Fall
Thesis skills: project management, writing skills and presentation (VON001F)
Free elective course within the programme
4 ECTS, credits
Course Description

Introduction to the scientific method. Ethics of science and within the university community.
The role of the student, advisors and external examiner. Effective and honest communications.
Conducting a literature review, using bibliographic databases and reference handling. Thesis structure, formulating research questions, writing and argumentation. How scientific writing differs from general purpose writing. Writing a MS study plan and proposal. Practical skills for presenting tables and figures, layout, fonts and colors. Presentation skills. Project management for a thesis, how to divide a large project into smaller tasks, setting a work plan and following a timeline. Life after graduate school and being employable.

Language of instruction: English
Face-to-face learning
Online learning
Year unspecified | Spring 1
Fundamentals of Ethical Hacking (TÖL605M)
A mandatory (required) course for the programme
6 ECTS, credits
Course Description

Ethical hacking is the discipline of attacker perspective security analysis. Using tools and techniques used by malicious hackers, ethical hackers gain unique and unique and valuable insights used for improving system security.

This course will introduce students to the fundamentals of ethical hacking tools and techniques. Students will begin by configuring a secure lab using virtualisation tools. Then every two weeks a new stage of the ethical hacking methodology and some related tools will be introduced. The students will submit weekly lab reports evidencing their theoretical and practical understanding of the methodology and tools. 

For the best experience, students should own a PC able to run virtualisation software with an x86 image. Mac users with Apple CPU or those with PCs whose CPUs lack virtualisation support or who have limited RAM might have issues running a stable lab on their machine. Students who lack suitable hardware can use VMs on the department's cybersecurity server infrastructure.

Language of instruction: English
Face-to-face learning
Prerequisites
Year unspecified | Spring 1
Applied Cryptography (TÖL213M)
A mandatory (required) course for the programme
6 ECTS, credits
Course Description

In this course, students will take a practical approach to understanding the building and breaking of cryptographic implementations. The first half of this module will involve programming tasks while the second half will involve two mini projects. 

Starting from simplistic approaches used historically, such as the Caeser cipher, to modern day protocols used to secure telecommunications ubiquitously, such as AES and TLS. Students will also consider the role of cryptography in society more broadly by researching how contentious technologies such as end-to-end encryption and Tor impact justice and privacy, and distributed ledgers can enable the decentralisation of key societal systems. Finally, the course will conclude with a mini project demonstrating a practical attack against a cryptographic implementation using ethical hacking approaches e.g. WiFi cracking, password bruteforcing or man-in-the-middle attack of an encrypted connection to sniff traffic. 

The course will encompass the following stages: 

1) Building cryptographic primitives in a programming language of choice. 

2) Application engineering best practices. 

3) A research project in cryptography and society. 

4) A practical project in ethical hacking approaches to demonstrating weaknesses in cryptography implementations. 

Language of instruction: English
Face-to-face learning
Prerequisites
Year unspecified | Spring 1
Seminar in computer science (TÖL606M)
A mandatory (required) course for the programme
2 ECTS, credits
Course Description

Students in computer science, software engineering and computational engineering attend weekly seminars where they present talks on their research projects or other related topics of interest.

Language of instruction: Icelandic
Face-to-face learning
Prerequisites
Year unspecified | Spring 1
Software Testing (HBV205M)
A mandatory (required) course for the programme
6 ECTS, credits
Course Description

Usually taught every second year (typically in spring of odd years, but this is subject to change in 2024).

This course covers testing of software. Besides basic foundations, this includes both dynamic testing where the software under test is executed and static approaches where software and other artefacts produced during software development are investigated without executing them. The focus of this course is, however, on dynamic testing. The different levels of testing (component test, integration test, system and acceptance test) and types of testing (functional, non-functional, structural and change-related) are covered as well as different test design techniques (black box test and white box test). Furthermore, test management and principles of test tools are discussed. In addition, selected advanced topics may be covered (for example, test languages, testing of object-oriented software, test process improvement, agile testing). The covered topics are a superset of the International Software Testing Qualifications Board's (ISTQB) certified tester foundation level syllabus.

The first part of the course is based on flipped-classroom style weekly reading, videos and assignments. In the second part, students work independently on some project related to software testing.

Note: while this is an "M" course, it is rather on MSc. level. BSc. students who take this course need to be very advanced in their BSc. studies, i.e. have experience in programming languages, software development and applying it in some software project, but should also be familiar with theoretical concepts from automata theory.

Also, BSc. students should not take this course, if they know that they are going to continue with MSc. studies, because they might then experience a lack of suitable courses in their MSc. studies.

Language of instruction: English
Face-to-face learning
The course is taught if the specified conditions are met
Year unspecified | Spring 1
Final project (HBV442L)
A mandatory (required) course for the programme
0 ECTS, credits
Course Description
  • The topic of the Master's thesis must be chosen under the guidance of the supervisor and the Faculty Coordinator of the student. The thesis represents 60 credits. All Master's student have been assigned to a Faculty Coordinator from the beginning of their studies, who advises the student regarding the organization of the program. If a student does not have a supervisor for the final project, he / she must turn to the Faculty Coordinator for assistance.
  • The choice of topic is primarily the responsibility of the student in collaboration with his or her project supervisor. The topic of the project should fall within the student's area of study, i.e. course of study and chosen specialisation.
  • The master’s student writes a thesis according to the School’s template and defends it in a master’s defense.
  • Final project exam is divided into two parts: Oral examination and open lecture
  • Present at the oral exam is the student, supervisor, examiner and members of the Master's committee. The student presents a brief introduction on his / her project. It is important that the objectives and research question(s) are clearly stated, and that main findings and lessons to be drawn from the project are discussed.
  • The student delivers a thesis and a project poster.
  • According to the rules of the Master's program, all students who intend to graduate from the School of Engineering and Natural Sciences need to give a public lecture on their final project.
  • All students graduating from the University of Iceland shall submit an electronic copy of their final Master's thesis to Skemman.is. Skemman is the digital repository for all Icelandic universities and is maintained by the National and University Library.
  • According to regulations of University of Iceland all MS thesis should have open access after they have been submitted to Skemman.

Learning Outcomes:

Upon completion of an MS thesis, the student should be able to:

  • Formulate engineering design project  / research questions
  • Use an appropriate theoretical framework to shed light on his / her topic
  • Analyze and solve engineering tasks in a specialized field.
  • Perform a literature search and a thorough review of the literature.
  • Demonstrate initiative and independent creative thinking.
  • Use economic methodology to answer a specific research question
  • Competently discuss the current knowledge within the field and contribute to it with own research
  • Work with results, analyze uncertainties and limitations and interpret results.
  • Assess the scope of a research project and plan the work accordingly
  • Effectively display results and provide logical reasoning and relate results to the state of knowledge.
Language of instruction: Icelandic/English
Self-study
Part of the total project/thesis credits
Year unspecified | Spring 1
Governance of the Internet (TÖL212F)
Free elective course within the programme
6 ECTS, credits
Course Description

This course aims to provide a comprehensive overview of Internet governance and challenges in regulating cyberspace. Topics include the evolution of formalized internet governance, and the role of national governments, supranational organizations and private corporations in shaping the international regulatory framework for Internet governance.

The course will also explore the balance of privacy versus security, including the role of regulations such as GDPR and NIS2 to establish minimum requirements of “privacy” or “security” by design. The emergence of a “cyber-public” space has created new challenges for enforcing laws ranging from copyright to illegal content. Furthermore, the question of public/private cooperation in fighting against cybercrime and regulatory challenges regarding the emergence of cyberwarfare will be examined.

This course will be taught as a series of weekly lectures and bi-weekly seminars for student discussions and debates in internet governance topics.

Language of instruction: English
Face-to-face learning
Not taught this semester
Year unspecified | Spring 1
Fundaments of the Internet (RAF617M)
Free elective course within the programme
6 ECTS, credits
Course Description

Modern day telecommunications are characterised by the fact that communicated data is carried on fixed telecommunications infrastructure on a majority of the path between tranmitter and receiver. Wireless infrastructure often conveys the signals at the end of the path. This yields both high speed and the comfort of wireless communications. It is of utmost importance for engineers working in telecoms to have a fundamental knowledge of fixed networks and the range of technologies deployed.

In this course, the structure of fixed backbone and access networks will be described. Optical fibre and related technologies will be introduced, e.g. DWDM, SDH, Ethernet, ATM and MPLS-TP. Access network technologies on copper, coax and optical fibres will be treated, e.g. ADSL. VDSL, G.fast and  DOCSIS. Different FTTH (Fibre to the Home) technologies will be treated such as PON (Passive Optical Network), Active Ethernet and point-to-point Ethernet. 

IP (Internet Protocol) has become a fundamental technology for modern fixed networks. IP native technologies will be described from the physical to the application layer. On the link layer, Ethernet will be in the focus as well as MPLS. Circuit and packet switching will be treated as well as circuit and packet orientation of networks. Sevices such as PSTN, VoIP, OTT and P2P will be treated. Backhauling of wireless networks such as mobile networks and Wi-Fi will also be treated.
In introduction to network virtualisation and network function virtualisation (NFV) will be given as well as software defined networking (SDN). Legal and regulatory aspects will be introduced and aspects like network neutrality discfussed. Important players and stakeholders will be discussed, e.g. Google, Apple, Microsoft, Netflix and telecommunications service providers.
Finally, local area networks will be discussed, home networking, smart homes, set-top-boxes, NAS, PLC, plastic optical fibres, MOCA and Wi-Fi introduced.

The teaching form will be lectures and projects on IP communications will be worked. Students will write four papers on selected subjects and give presentations. 

Language of instruction: Icelandic
Face-to-face learning
Year unspecified | Spring 1
Algorithms in the real world (TÖL608M)
Free elective course within the programme
6 ECTS, credits
Course Description

The course will cover the design and analysis of algorithms, with emphasis on algorithms for large datasets and real world applications.

The algorithms covered will be drawn from various subfields, e.g. data and text compression, error correcting codes, large scale text search and search engines, parallel programming, GPU programming, streaming algorithms, probabilistic algorithms, nearest neighbor search in high dimensional datasets.

Language of instruction: Icelandic
Year unspecified | Spring 1
The AI lifecycle (REI603M)
Free elective course within the programme
6 ECTS, credits
Course Description

In this course, we study the AI lifecycle, i.e. the productionisation of AI methods.
We explore the following parts of the lifecycle:
- Data collection and preparation
- Feature engineering
- Model training
- Model evaluation
- Model deployment
- Model serving
- Model monitoring
- Model maintenance
Three large projects will be handed out during the semester where students compete to solve AI problems.

Language of instruction: English
Face-to-face learning
Not taught this semester
Year unspecified | Spring 1
Seminar on Machine Learning (TÖL028M)
Free elective course within the programme
2 ECTS, credits
Course Description

In this course, students familiarize themselves with a particular topic in artificial intelligence (e.g. computer vision, natural language processing, data processing, generative modeling or other topics) by studying relevant academic literature and preparing a talk on this topic for their classmates.

Students can choose from a selection of topics provided by the teacher, or propose a topic that they are interested in on their own.

Besides learning about the subject matter of the talks, the goal of the course is to practice presentation skills.

The course starts on June 8th and will finish on August 17th. 

Language of instruction: Icelandic
Face-to-face learning
Not taught this semester
Year unspecified | Spring 1
From an idea to reality II (TÖL211F)
Free elective course within the programme
6 ECTS, credits
Course Description

The course is a continuation of the course "From an idea to reality". Students are expected to continue to develop their idea that they had in the "From an Idea to Reality" course. If the students are not satisfied with their previous idea and think they have come up with a better idea, that's fine, and if the teacher is satisfied with the new idea the student can continue with the new idea.

Students must apply for grants in the competition fund. Practice pitching your idea to potential investors and your fellow students.

The teacher will cover accounting and planning based on probability.

The teacher will cover company formation and tax matters.

Language of instruction: Icelandic
Face-to-face learning
Attendance required in class
Year unspecified | Spring 1
Reasoned Programming (TÖL212M)
Free elective course within the programme
6 ECTS, credits
Course Description

Fundamental concepts in program verification and reasoned programming are covered. Emphasis is placed on using reasoned programming to develop solid and proved versions of well-known algorithms, especially in the areas of searching, sorting, and binary search trees. Among algorithms covered are various versions of insertion sort, selection sort, quicksort, binary search, and searching in binary search trees. Emphasis will be placed on deepening the understanding of the algorithms as well as getting a good grip on program verification. Some exercises will use verification tools such as Dafny or OpenJML.

Language of instruction: Icelandic/English
Face-to-face learning
The course is taught if the specified conditions are met
Year unspecified | Year unspecified
Software Quality Management (HBV505M)
A mandatory (required) course for the programme
6 ECTS, credits
Course Description

The course is based on flipped-classroom style weekly reading, videos and assignments on software quality management-related aspects of the Software Development Life Cycle (SDLC) and by covering some parts of DevOps also Application Lifecycle Management (ALM). In parallel to theoretical concepts, the application of source code-centric tools relevant for quality management is trained by applying them to a codebase throughout the course using the ALM tool GitLab. The concepts and tools are independent from a particular software development process and cover:

  • Software Quality Foundations, Software Quality Models.
  • Configuration management (CM) and traceability:
    • Version management (e.g. Git),
    • Change management (e.g. issue tracker),
    • Build management (e.g. Maven),
    • Release management
  • Continuous integration (CI) (e.g. using GitLab pipelines).
  • Integrating testing into a CI pipeline (e.g. using JUnit and GitLab).
  • Reviews (e.g. tool-based code review)
  • Static analysis (e.g. SonarCloud)
  • Metrics for quality management (product and process metrics).
  • Quality standards:
    • Software Life Cycle Processes,
    • Software Process Improvement and maturity assessment (e.g. CMMI).
  • Using a Wiki to create a quality plan and other documentation.

Students chose their own codebase (e.g. from the Software Project 1 or 2 course) to which they apply the concepts and tools tought in this course. While the teaching material and tools assumes Java as programming language, students are welcome to use a codebase in another programming language.

Software quality in agile development processes is covered by student presentations at the end of the course.

Note: while this is an "M" course, it is rather on MSc. level. BSc. students who take this course need to be advanced in their BSc. studies and you need Java programming experience. Hence, you should have passed HBV501G Software Project 1, preferably even HBV601G Software Project 2.
Also, BSc. students should not take this course, if they know that they are going to continue with MSc. studies, because they might then experience a lack of suitable courses in their MSc. studies.

Language of instruction: English
Face-to-face learning
The course is taught if the specified conditions are met
Year unspecified | Year unspecified
Introduction to Information Security (TÖL029M)
A mandatory (required) course for the programme
6 ECTS, credits
Course Description

Þetta námskeið byggir grunn að skilningi á lykilatriðum sem tengjast verndun upplýsinga, ákvörðun á verndarstigi og viðbrögð við öryggisatvikum, og hönnun á samræmdu raunhæfu upplýsingaöryggiskerfi, með viðeigandi innbrotsskynjun og tilkynningum.  Tilgangur námskeiðsins er að veita nemandanum yfirsýn yfir svið upplýsingaöryggis og upplýsingatrygginga.  Nemendur munu sjá ýmsar gerðir öryggisaðgerða, aðferðafræða og verklags.  Umfjöllunin mun taka fyrir skoðun og vernd upplýsingaeigna, uppgötvun og viðbrögð við ógnum við upplýsingaeignir, verklagsreglur fyrir og eftir öryggisatvik, tæknileg og stjórnunarleg viðbrögð og yfirlit yfir skipulagningu upplýsingaöryggis og starfsmannahald.  Meðal efnis eru áhættumat, auðkenning, veföryggi, öryggi forrita, persónuvernd og gagnavernd, kynning á dulmálskóðun, öryggisarkitektúr, eldveggir og önnur tæki og netskipulag.

Language of instruction: English
Face-to-face learning
Year unspecified | Year unspecified
Field Course in Innovation and Entrepreneurship (II) (IÐN216F)
Free elective course within the programme
7,5 ECTS, credits
Course Description

The course is a continuation of the course "Field Course in Innovation and Entrepreneurship (I)". This part of the course consists of detailed development of the business model related to a particular business opportunity. This work takes place in groups, where cross-disciplinary collaboration, between individuals with a background in business and individuals with a background in a particular technical or professional field related to the relevant opportunity, is emphasized. Projects can originate in an independent business idea or in collaboration with companies that partner with the course. In both cases, the emphasis will be on product or service develepment, built on technical or professional expertise, where the business case of the opportunity and its verification is in the foreground.

Language of instruction: Icelandic
Face-to-face learning
Course taught second half of the semester
Year unspecified | Year unspecified
Time Series Analysis (IÐN113F)
Free elective course within the programme
7,5 ECTS, credits
Course Description

ARMAX and other similar time series models. Non-stationary time series. Correlation and spectral analysis. Parameter estimation, parametric and non-parametric approaches, Least Squares and Maximum Likelihood. Model validation methods. Models with time dependent parameters. Numerical methods for minimization. Outlier detection and interpolation. Introduction to nonlinear time series models. Discrete state space models. Discrete state space models. Extensive use of MATLAB, especially the System Identification Toolbox.

Language of instruction: English
Distance learning
Self-study
Not taught this semester
Year unspecified | Year unspecified
Fundaments of the Internet (RAF617M)
Free elective course within the programme
6 ECTS, credits
Course Description

Modern day telecommunications are characterised by the fact that communicated data is carried on fixed telecommunications infrastructure on a majority of the path between tranmitter and receiver. Wireless infrastructure often conveys the signals at the end of the path. This yields both high speed and the comfort of wireless communications. It is of utmost importance for engineers working in telecoms to have a fundamental knowledge of fixed networks and the range of technologies deployed.

In this course, the structure of fixed backbone and access networks will be described. Optical fibre and related technologies will be introduced, e.g. DWDM, SDH, Ethernet, ATM and MPLS-TP. Access network technologies on copper, coax and optical fibres will be treated, e.g. ADSL. VDSL, G.fast and  DOCSIS. Different FTTH (Fibre to the Home) technologies will be treated such as PON (Passive Optical Network), Active Ethernet and point-to-point Ethernet. 

IP (Internet Protocol) has become a fundamental technology for modern fixed networks. IP native technologies will be described from the physical to the application layer. On the link layer, Ethernet will be in the focus as well as MPLS. Circuit and packet switching will be treated as well as circuit and packet orientation of networks. Sevices such as PSTN, VoIP, OTT and P2P will be treated. Backhauling of wireless networks such as mobile networks and Wi-Fi will also be treated.
In introduction to network virtualisation and network function virtualisation (NFV) will be given as well as software defined networking (SDN). Legal and regulatory aspects will be introduced and aspects like network neutrality discfussed. Important players and stakeholders will be discussed, e.g. Google, Apple, Microsoft, Netflix and telecommunications service providers.
Finally, local area networks will be discussed, home networking, smart homes, set-top-boxes, NAS, PLC, plastic optical fibres, MOCA and Wi-Fi introduced.

The teaching form will be lectures and projects on IP communications will be worked. Students will write four papers on selected subjects and give presentations. 

Language of instruction: Icelandic
Face-to-face learning
Year unspecified | Year unspecified
Field Course in Innovation and Entrepreneurship (I) (IÐN222F)
Free elective course within the programme
7,5 ECTS, credits
Course Description

The course is taught in two parts, and the expectation is that students register for both parts. The course will cover the practical issues related to innovation and entrepreneurship. It covers the emergence of a business idea and the initial evaluation of the business opportunity, and the development and testing of a business model. This part of the course consists of lectures and case discussions that deal with various aspects of innovation and entrepreneurship: Analysis of business opportunities, evaluation of market size and unit contribution, the management of organizational units that are involved in innovation, financing, and other issues. Students will also tackle projects where they apply the methods taught in the class to isolated tasks in product and business development in both new and existing firms.

Language of instruction: Icelandic
Face-to-face learning
Prerequisites
Course taught first half of the semester
Year unspecified | Year unspecified
Performance analysis of computer systems (REI503M)
Free elective course within the programme
6 ECTS, credits
Course Description

Usually taught every second year.

This course provides students with an introduction to modeling and performance evaluation of computer and communication systems. Large-scale distributed computer systems process arriving requests, e.g., web page queries, in parallel in order to optimize performance metrics, such as response time and user satisfaction. Other important performance metrics include throughput and service-level agreement in general. This course covers basic mathematical tools needed to evaluate such dynamic systems and to understand the strengths and weaknesses, for example in different designs, scheduling disciplines, and operating policies. The approach is based on operations research methods, in particular, queueing theory and Markov processes (previous knowledge of these methods is not required).

Attendance is strongly recommended.

Language of instruction: English
Face-to-face learning
The course is taught if the specified conditions are met
Not taught this semester
Year unspecified | Year unspecified
From an Idea to Reality (TÖL109F)
Free elective course within the programme
6 ECTS, credits
Course Description

The course has been in development for over a decade under the name "Computer Systems and Marketing". 

The course is based on teacher lectures and individual and group projects that help students to think outside the box. Teacher will tell of his experiences of making ideas become real and have a special focus on the mistakes that have been made along with the successful stories.
The final project of the course is a business plan that will be presented in an oral final exam. The business plan focuses on the idea of each student and how the student plans to realize his project.

Language of instruction: Icelandic
Face-to-face learning
Not taught this semester
Year unspecified | Year unspecified
Quantum Cryptography (TÖL113F, TÖL113F)
Free elective course within the programme
6/6 ECTS, credits
Course Description

In this course, students learn about quantum computing and, in particular, quantum cryptography. Quantum computing will cause a revolution in cryptography as many cryptosystems based on computational complexity will become obsolete. They will replaced by so-called quantum secure crypto systems.

Language of instruction: English
Face-to-face learning
Not taught this semester
Year unspecified | Year unspecified
Quantum Computing and Quantum Cryptography (TÖL113F, TÖL113F)
Free elective course within the programme
6/6 ECTS, credits
Course Description

In this course, students learn about quantum computing and quantum cryptography. Quantum computing will cause a revolution in cryptography as many cryptosystems based on computational complexity will become obsolete. They will be replaced by so-called quantum secure crypto systems.

Topics covered:

  • Cryptography: An Overview
  • Quantum Mechanics
  • Quantum Cryptography
  • An Introduction to Error-Correcting Codes
  • Quantum Cryptography Revisited
  • Generalized Reed-Solomon Codes
  • Quantum Computing

This is a regular course: the students are expected to attend class every week. 

Language of instruction: English
Face-to-face learning
Year unspecified | Whole year courses
Mentor in Sprettur (GKY001M)
Free elective course within the programme
5 ECTS, credits
Course Description

In the course, the student's task consists in being a mentor for participants that are upper secondary school students and university students in the project "Sprettur". Mentors' main role is to support and encourage participants in their studies and social life. As well as creating a constructive relationship with the participants, being a positive role model, and participating in events organized in Sprettur. The mentor role centers around building relationships and spending meaningful time together with the commitment to support participants. 

Sprettur is a project that supports students with an immigrant or refugee background who come from families with little or no university education. The students in this course are mentors of the participants and are paired together based on a common field of interest. Each mentor is responsible for supporting two participants. Mentors plan activities with participants and spend three hours a month (from August to May) with Sprettur’s participants, three hours a month in a study group and attend five seminars that are spread over the school year. Students submit journal entries on Canvas in November and March. Diary entries are based on reading material and students' reflections on the mentorship. Compulsory attendance in events, study groups, and seminars. The course is taught in Icelandic and English. 

Students must apply for a seat in the course. Applicants go through an interview process and 15-30 students are selected to participate. 

See the digital application form. 

More information about Sprettur can be found here: www.hi.is/sprettur  

Language of instruction: Icelandic/English
Face-to-face learning
The course is taught if the specified conditions are met
Prerequisites
Attendance required in class
Year unspecified | Fall
Software Quality Management (HBV505M)
A mandatory (required) course for the programme
6 ECTS, credits
Course Description

The course is based on flipped-classroom style weekly reading, videos and assignments on software quality management-related aspects of the Software Development Life Cycle (SDLC) and by covering some parts of DevOps also Application Lifecycle Management (ALM). In parallel to theoretical concepts, the application of source code-centric tools relevant for quality management is trained by applying them to a codebase throughout the course using the ALM tool GitLab. The concepts and tools are independent from a particular software development process and cover:

  • Software Quality Foundations, Software Quality Models.
  • Configuration management (CM) and traceability:
    • Version management (e.g. Git),
    • Change management (e.g. issue tracker),
    • Build management (e.g. Maven),
    • Release management
  • Continuous integration (CI) (e.g. using GitLab pipelines).
  • Integrating testing into a CI pipeline (e.g. using JUnit and GitLab).
  • Reviews (e.g. tool-based code review)
  • Static analysis (e.g. SonarCloud)
  • Metrics for quality management (product and process metrics).
  • Quality standards:
    • Software Life Cycle Processes,
    • Software Process Improvement and maturity assessment (e.g. CMMI).
  • Using a Wiki to create a quality plan and other documentation.

Students chose their own codebase (e.g. from the Software Project 1 or 2 course) to which they apply the concepts and tools tought in this course. While the teaching material and tools assumes Java as programming language, students are welcome to use a codebase in another programming language.

Software quality in agile development processes is covered by student presentations at the end of the course.

Note: while this is an "M" course, it is rather on MSc. level. BSc. students who take this course need to be advanced in their BSc. studies and you need Java programming experience. Hence, you should have passed HBV501G Software Project 1, preferably even HBV601G Software Project 2.
Also, BSc. students should not take this course, if they know that they are going to continue with MSc. studies, because they might then experience a lack of suitable courses in their MSc. studies.

Language of instruction: English
Face-to-face learning
The course is taught if the specified conditions are met
Year unspecified | Fall
Secure Software Engineering (HBV506M)
Free elective course within the programme
6 ECTS, credits
Course Description

Secure software engineering involves identifying and mitigating vulnerabilities to reduce threats to an application. In this module, students will gain an understanding of secure engineering practices and the means to apply them throughout the complete software development life cycle.

Working in teams, students will design, develop, and maintain a web application for a customer following secure software engineering principles. Students will illustrate their understanding and practical competency of white box and black box security assessment through testing their own and other team’s applications for vulnerabilities against the OWASP top 10 most critical security risks to web applications.

It is therefore assumed the students have knowledge in web application development using JavaScript.

Language of instruction: English
Face-to-face learning
Prerequisites
Not taught this semester
Year unspecified | Fall
Quality Management (IÐN101M)
Free elective course within the programme
6 ECTS, credits
Course Description

Organization and management systems. The systems approach. Quality management, quality concepts. Historical development of quality management. Quality cost. Quality in manufacturing. x, R, p, c and cusum-chart. Statistical quality control. Tests of hypotheses. Acceptance sampling - OC curves. Inspection planning. Quality systems and quality assurance. Quality handbook and organizing for quality. ISO 9001. Total Quality Management, improvement step by step, motivations theories. Quality tools. Practical assignment: Designing a quality system for a company.

Language of instruction: Icelandic
Face-to-face learning
Not taught this semester
Year unspecified | Fall
Computational Intelligence (IÐN102M)
Free elective course within the programme
6 ECTS, credits
Course Description

Basic aspects of computational intelligence, which is the study of algorithms that improve automatically through experience.

Language of instruction: Icelandic
Face-to-face learning
The course is taught if the specified conditions are met
Year unspecified | Fall
Time Series Analysis (IÐN113F)
Free elective course within the programme
7,5 ECTS, credits
Course Description

ARMAX and other similar time series models. Non-stationary time series. Correlation and spectral analysis. Parameter estimation, parametric and non-parametric approaches, Least Squares and Maximum Likelihood. Model validation methods. Models with time dependent parameters. Numerical methods for minimization. Outlier detection and interpolation. Introduction to nonlinear time series models. Discrete state space models. Discrete state space models. Extensive use of MATLAB, especially the System Identification Toolbox.

Language of instruction: English
Distance learning
Self-study
Year unspecified | Fall
Performance analysis of computer systems (REI503M)
Free elective course within the programme
6 ECTS, credits
Course Description

Usually taught every second year.

This course provides students with an introduction to modeling and performance evaluation of computer and communication systems. Large-scale distributed computer systems process arriving requests, e.g., web page queries, in parallel in order to optimize performance metrics, such as response time and user satisfaction. Other important performance metrics include throughput and service-level agreement in general. This course covers basic mathematical tools needed to evaluate such dynamic systems and to understand the strengths and weaknesses, for example in different designs, scheduling disciplines, and operating policies. The approach is based on operations research methods, in particular, queueing theory and Markov processes (previous knowledge of these methods is not required).

Attendance is strongly recommended.

Language of instruction: English
Face-to-face learning
The course is taught if the specified conditions are met
Not taught this semester
Year unspecified | Fall
Bayesian Data Analysis (STÆ529M)
Free elective course within the programme
8 ECTS, credits
Course Description

Goal: To train students in applying methods of Bayesian statistics for analysis of data. Topics: Theory of Bayesian inference, prior distributions, data distributions and posterior distributions. Bayesian inference  for parameters of univariate and multivariate distributions: binomial; normal; Poisson; exponential; multivariate normal; multinomial. Model checking and model comparison: Bayesian p-values; deviance information criterion (DIC). Bayesian computation: Markov chain Monte Carlo (MCMC) methods; the Gibbs sampler; the Metropolis-Hastings algorithm; convergence diagnostistics. Linear models: normal linear models; hierarchical linear models; generalized linear models. Emphasis on data analysis using software, e.g. Matlab and R.

Language of instruction: English
Face-to-face learning
The course is taught if the specified conditions are met
Not taught this semester
Year unspecified | Fall
Security Engineering for Critical Information Infrastructures (TÖL106M)
Free elective course within the programme
6 ECTS, credits
Course Description

The overarching objective of this experimental course is to provide a practical technical and policy introduction for the foundations of the building and operating of dependable, complex distributed national information infrastructures.

The course teaches university students how to model, design, implement, operate, and defend these national information infrastructures (NII) to withstand errors and attacks.

We will introduce complementary engineering methodologies intended to assist NII policymakers, stewards, operators, and engineering professionals to implement protective initiatives to design and improve the survivability of NII systems, critical functions, and processes.

The course will include cyber threat intelligence tradecraft and the experimental use of both open-source intelligence and an artificial intelligence tool i.e. ChatGPT

Language of instruction: English
Face-to-face learning
Not taught this semester
Year unspecified | Fall
Cyber Conflicts, Cyber Security Threats and Engineering, National Information Infrastructures (NII) (TÖL107M)
Free elective course within the programme
6 ECTS, credits
Course Description

This interdisciplinary course examines underlying and emerging information technologies, cyber security engineering and policies associated with surveillance, cyber warfare, and cyber threats.

The technological concepts reviewed in this course include but are not limited to National Information Infrastructures, the Internet, Dark Web, networks and sensors, and trends associated with our emerging Internet of Things.

The course will review some salient cyber conflict history, international and national policies concerning cyber conflict and security engineering - secure by design, military/civilian doctrine, and some lessons learned from the use of cyber operations in past, present and future conflicts.

Language of instruction: English
Face-to-face learning
Year unspecified | Fall
Distributed Systems (TÖL503M)
Free elective course within the programme
6 ECTS, credits
Course Description

Usually taught every second year.

This course covers concepts of distributed systems and their application. Besides foundations on characteristics and models of distributed systems, networking and security, this includes network-based low-level interprocess communication, high-level remote procedure calls, the distributed object model and remote method invocation, services relevant in distributed systems (such as name services or distributed file systems), selected topics of distributed algorithms and their implementation (such as coordination, agreement,  time, replication). Furthermore, special types of distributed systems may be covered (such as peer-to-peer systems, Cloud and Grid computing).  Current technologies (such as Java RMI, Web Services, gRPC) are used as case study and as platform for developing distributed applications using high-level programming languages (such as Java).

Note: while this is an "M" course, it is rather on MSc. level. BSc. students who take this course need to be advanced in their BSc. studies. (E.g. we will implement middleware in Java, so you should have programming experience well beyond "TÖL101G Computer Science 1". As a middleware adds functionality on top of an Operating System, you should have also passed TÖL401G Operating Systems.)

Language of instruction: English
Face-to-face learning
The course is taught if the specified conditions are met
Not taught this semester
Year unspecified | Fall
Algorithms in Bioinformatics (TÖL504M)
Free elective course within the programme
6 ECTS, credits
Course Description

This course will cover the algorithmic aspects of bioinformatic. We  will start with an introduction to genomics and algorithms for students new to the field. The course is divided into modules, each module covers a single problem in bioinformatics that will be motivated based on current research. The module will then cover algorithms that solve the problem and variations on the problem. The problems covered are motif finding, edit distance in strings, sequence alignment, clustering, sequencing and assembly and finally computational methods for high throughput sequencing (HTS).

Language of instruction: Icelandic
Face-to-face learning
Year unspecified | Fall
Computer Graphics (TÖL105M)
Free elective course within the programme
6 ECTS, credits
Course Description

The main emphasis is on fundamental concepts and mathematics for 3D computer graphics. Two and three-dimensional transformations. Viewing projections. Light and the shading of objects. Texture mapping, blending, bump maps. Programmable shaders. Curves and surfaces. Programming assignments in WebGL.

Language of instruction: Icelandic
Face-to-face learning
Year unspecified | Fall
Final project (HBV442L)
A mandatory (required) course for the programme
0 ECTS, credits
Course Description
  • The topic of the Master's thesis must be chosen under the guidance of the supervisor and the Faculty Coordinator of the student. The thesis represents 60 credits. All Master's student have been assigned to a Faculty Coordinator from the beginning of their studies, who advises the student regarding the organization of the program. If a student does not have a supervisor for the final project, he / she must turn to the Faculty Coordinator for assistance.
  • The choice of topic is primarily the responsibility of the student in collaboration with his or her project supervisor. The topic of the project should fall within the student's area of study, i.e. course of study and chosen specialisation.
  • The master’s student writes a thesis according to the School’s template and defends it in a master’s defense.
  • Final project exam is divided into two parts: Oral examination and open lecture
  • Present at the oral exam is the student, supervisor, examiner and members of the Master's committee. The student presents a brief introduction on his / her project. It is important that the objectives and research question(s) are clearly stated, and that main findings and lessons to be drawn from the project are discussed.
  • The student delivers a thesis and a project poster.
  • According to the rules of the Master's program, all students who intend to graduate from the School of Engineering and Natural Sciences need to give a public lecture on their final project.
  • All students graduating from the University of Iceland shall submit an electronic copy of their final Master's thesis to Skemman.is. Skemman is the digital repository for all Icelandic universities and is maintained by the National and University Library.
  • According to regulations of University of Iceland all MS thesis should have open access after they have been submitted to Skemman.

Learning Outcomes:

Upon completion of an MS thesis, the student should be able to:

  • Formulate engineering design project  / research questions
  • Use an appropriate theoretical framework to shed light on his / her topic
  • Analyze and solve engineering tasks in a specialized field.
  • Perform a literature search and a thorough review of the literature.
  • Demonstrate initiative and independent creative thinking.
  • Use economic methodology to answer a specific research question
  • Competently discuss the current knowledge within the field and contribute to it with own research
  • Work with results, analyze uncertainties and limitations and interpret results.
  • Assess the scope of a research project and plan the work accordingly
  • Effectively display results and provide logical reasoning and relate results to the state of knowledge.
Language of instruction: Icelandic/English
Self-study
Part of the total project/thesis credits
Not taught this semester
Year unspecified | Fall
Software Maintenance (HBV103M)
A mandatory (required) course for the programme
6 ECTS, credits
Course Description

Usually taught every second year (typically in fall of odd years, but this is subject to change in 2024).

The first part of the course is based on flipped-classroom style weekly reading, videos and assignments on:

  • Evolution of Software and Lehman’s laws,
  • Maintenance processes,
  • Metrics useful for maintenance,
  • Software analysis,
  • Re-engineering,
  • Reverse engineering,
  • Code Smells & Refactoring,
  • Basics of (Regression-)Testing,
  • Design principles to support change & Design Patterns,
  • Tools for software maintenance (including advanced features of an IDE).

In the second part of this course, these techniques will be applied in order to maintain a real legacy software written in Java.

Note: while this is an "M" course, it is rather on MSc. level. BSc. students who take this course need to be advanced in their BSc. studies and you need solid Java programming experience: we will maintain a complex software and being able to understand how such a grown software works and to fix bugs is even more difficult to write such a software from scratch. Hence, you should have passed HBV501G Software Project 1, preferably even HBV601G Software Project 2. (It is impossible to maintain a software if you would not even be able to develop it.) Also, BSc. students should not take this course, if they know that they are going to continue with MSc. studies, because they might then experience a lack of suitable courses in their MSc. studies.

Language of instruction: English
Face-to-face learning
The course is taught if the specified conditions are met
Year unspecified | Fall
Network Measurements and Analysis (TÖL104M)
Free elective course within the programme
6 ECTS, credits
Course Description

This course provides an introduction to carrying out different measurements in Internet, an overview on related software tools, and advanced data analysis methods. We discuss, e.g., both passive and active packet, flow and routing measurements, as well as, some selected techniques related to cyber security operations (e.g. detection of Botnets and anomalies). Course includes also a sufficient coverage of related ethical and legal questions. In course exercises, students process real measurement data using statistical and mathematical software packages (e.g., NumPy or R), and carry out various network measurements. The measurement data are analysed and reported.

Course composition:

1. Lectures (first part)
2. Laboratory work and self-study (second part; measurements)
3. Final presentations (optional)

Language of instruction: English
Face-to-face learning
Prerequisites
Year unspecified | Fall
Usable Privacy and Security (HBV507M)
Free elective course within the programme
6 ECTS, credits
Course Description

Survey of the field of usable security and privacy with an emphasis on emerging technologies. Topics include authentication, location privacy, social network privacy, behavioral advertising, - health privacy, anonymity, cryptocurrency, technical writing and ethical conduct of usable privacy and security research.

Language of instruction: English
Face-to-face learning
Year unspecified | Fall
Machine Learning (REI505M)
Free elective course within the programme
6 ECTS, credits
Course Description

An overview of some of the main concepts, techniques and algorithms in machine learning. Supervised learning and unsupervised learning. Data preprocessing and data visualization. Model evaluation and model selection. Linear regression, nearest neighbors, support vector machines, decision trees and ensemble methods. Deep learning. Cluster analysis and the k-means algorithm. The students implement simple algorithms in Python and learn how to use specialized software packages. At the end of the course the students work on a practical machine learning project.

Language of instruction: English
Face-to-face learning
Not taught this semester
Year unspecified | Fall
Machine Learning for Earth Observation powered by Supercomputers (REI506M)
Free elective course within the programme
6 ECTS, credits
Course Description

This course exposes the students to the physical principles underlying satellite observations of Earth by passive sensors, as well as parallel Deep Learning (DL) algorithms that scale on High Performance Computing (HPC) systems. 

For the different theoretical concepts (represented by 4 modules), the course provides hands-on exercises. These exercises are part of a project in the context of Remote Sensing (RS) image classification that the students are asked to develop during the whole duration of the course.

Language of instruction: English
Face-to-face learning
Year unspecified | Fall
Programming Projects on Internet of Things (TÖL103M)
Free elective course within the programme
6 ECTS, credits
Course Description

This course offers a hands-on introduction to programming small devices (microcontrollers, single-board computers) used in the context of Internet of Things, sensor networking, and home automation.

Such devices are often equipped with a large number of I/O pins, some RAM and flash memory, and wireless communication capabilities (e.g. WiFi and/or Bluetooth), making them attractive for tasks involving data acquisition,
processing, and wireless communication.

The course consists of bi-weekly programming tasks dealing with serial communication, data acquisition and analysis, programming of real-time O/S (RTOS), wireless communication and TCP/IP client-servers paradigm.

The biweekly assignments lead to a final project.

Language of instruction: English
Face-to-face learning
Not taught this semester
Year unspecified | Fall
From an Idea to Reality (TÖL109F)
Free elective course within the programme
6 ECTS, credits
Course Description

The course has been in development for over a decade under the name "Computer Systems and Marketing". 

The course is based on teacher lectures and individual and group projects that help students to think outside the box. Teacher will tell of his experiences of making ideas become real and have a special focus on the mistakes that have been made along with the successful stories.
The final project of the course is a business plan that will be presented in an oral final exam. The business plan focuses on the idea of each student and how the student plans to realize his project.

Language of instruction: Icelandic
Face-to-face learning
Year unspecified | Fall
Human Computer Interaction (TÖL502M)
Free elective course within the programme
6 ECTS, credits
Course Description

Usually taught every second year.

The objective of the course is to allow students to examine more closely than is done in the introductory course Graphical User Interface Programming  HBV201G specific factors of HCI. The factors covered are user interface design using prototyping, programming of smart devices and users‘ acceptability of the software. There will be emphasis on different techniques and tools to develop prototypes. Also, on the design of user interfaces and native programming for smart phones or pads. The development process will be aimed at ensuring accessibility and acceptability of users. Students work on small projects individually, or on larger projects in groups. 

Language of instruction: Icelandic
Face-to-face learning
The course is taught if the specified conditions are met
Prerequisites
Year unspecified | Fall
Introduction to deep neural networks (TÖL506M)
Free elective course within the programme
6 ECTS, credits
Course Description

In this course we cover deep neural networks and methods related to them. We study networks and methods for image, sound and text analysis. The focus will be on applications and students will present either a project or a recent paper in this field.

Language of instruction: Icelandic
Face-to-face learning
Year unspecified | Fall
Thesis skills: project management, writing skills and presentation (VON001F)
Free elective course within the programme
4 ECTS, credits
Course Description

Introduction to the scientific method. Ethics of science and within the university community.
The role of the student, advisors and external examiner. Effective and honest communications.
Conducting a literature review, using bibliographic databases and reference handling. Thesis structure, formulating research questions, writing and argumentation. How scientific writing differs from general purpose writing. Writing a MS study plan and proposal. Practical skills for presenting tables and figures, layout, fonts and colors. Presentation skills. Project management for a thesis, how to divide a large project into smaller tasks, setting a work plan and following a timeline. Life after graduate school and being employable.

Language of instruction: English
Face-to-face learning
Online learning
Not taught this semester
Year unspecified | Spring 1
Fundaments of the Internet (RAF617M)
Free elective course within the programme
6 ECTS, credits
Course Description

Modern day telecommunications are characterised by the fact that communicated data is carried on fixed telecommunications infrastructure on a majority of the path between tranmitter and receiver. Wireless infrastructure often conveys the signals at the end of the path. This yields both high speed and the comfort of wireless communications. It is of utmost importance for engineers working in telecoms to have a fundamental knowledge of fixed networks and the range of technologies deployed.

In this course, the structure of fixed backbone and access networks will be described. Optical fibre and related technologies will be introduced, e.g. DWDM, SDH, Ethernet, ATM and MPLS-TP. Access network technologies on copper, coax and optical fibres will be treated, e.g. ADSL. VDSL, G.fast and  DOCSIS. Different FTTH (Fibre to the Home) technologies will be treated such as PON (Passive Optical Network), Active Ethernet and point-to-point Ethernet. 

IP (Internet Protocol) has become a fundamental technology for modern fixed networks. IP native technologies will be described from the physical to the application layer. On the link layer, Ethernet will be in the focus as well as MPLS. Circuit and packet switching will be treated as well as circuit and packet orientation of networks. Sevices such as PSTN, VoIP, OTT and P2P will be treated. Backhauling of wireless networks such as mobile networks and Wi-Fi will also be treated.
In introduction to network virtualisation and network function virtualisation (NFV) will be given as well as software defined networking (SDN). Legal and regulatory aspects will be introduced and aspects like network neutrality discfussed. Important players and stakeholders will be discussed, e.g. Google, Apple, Microsoft, Netflix and telecommunications service providers.
Finally, local area networks will be discussed, home networking, smart homes, set-top-boxes, NAS, PLC, plastic optical fibres, MOCA and Wi-Fi introduced.

The teaching form will be lectures and projects on IP communications will be worked. Students will write four papers on selected subjects and give presentations. 

Language of instruction: Icelandic
Face-to-face learning
Year unspecified | Spring 1
Field Course in Innovation and Entrepreneurship (II) (IÐN216F)
Free elective course within the programme
7,5 ECTS, credits
Course Description

The course is a continuation of the course "Field Course in Innovation and Entrepreneurship (I)". This part of the course consists of detailed development of the business model related to a particular business opportunity. This work takes place in groups, where cross-disciplinary collaboration, between individuals with a background in business and individuals with a background in a particular technical or professional field related to the relevant opportunity, is emphasized. Projects can originate in an independent business idea or in collaboration with companies that partner with the course. In both cases, the emphasis will be on product or service develepment, built on technical or professional expertise, where the business case of the opportunity and its verification is in the foreground.

Language of instruction: Icelandic
Face-to-face learning
Course taught second half of the semester
Year unspecified | Spring 1
Field Course in Innovation and Entrepreneurship (I) (IÐN222F)
Free elective course within the programme
7,5 ECTS, credits
Course Description

The course is taught in two parts, and the expectation is that students register for both parts. The course will cover the practical issues related to innovation and entrepreneurship. It covers the emergence of a business idea and the initial evaluation of the business opportunity, and the development and testing of a business model. This part of the course consists of lectures and case discussions that deal with various aspects of innovation and entrepreneurship: Analysis of business opportunities, evaluation of market size and unit contribution, the management of organizational units that are involved in innovation, financing, and other issues. Students will also tackle projects where they apply the methods taught in the class to isolated tasks in product and business development in both new and existing firms.

Language of instruction: Icelandic
Face-to-face learning
Prerequisites
Course taught first half of the semester
Not taught this semester
Year unspecified | Spring 1
Introduction to Systems Biology (LVF601M)
Free elective course within the programme
6 ECTS, credits
Course Description

Systems biology is an interdisciplinary field that studies the biological phenomena that emerge from multiple interacting biological elements. Understanding how biological systems change across time is a particular focus of systems biology. In this course, we will prioritize aspects of systems biology relevant to human health and disease.

This course provides an introduction to 1) basic principles in modelling molecular networks, both gene regulatory and metabolic networks; 2) cellular phenomena that support homeostasis like tissue morphogenesis and microbiome resilience, and 3) analysis of molecular patterns found in genomics data at population scale relevant to human disease such as patient classification and biomarker discovery. In this manner, the course covers the three major scales in systems biology: molecules, cells and organisms.

The course activities include reading and interpreting scientific papers, implementation of computational algorithms, working on a research project and presentation of scientific results.

Lectures will comprise of both (1) presentations on foundational concepts and (2) hands-on sessions using Python as the programming language. The course will be taught in English.

Language of instruction: English
Face-to-face learning
Year unspecified | Spring 1
High Performance Computing (REI204M)
Free elective course within the programme
6 ECTS, credits
Course Description

Design of parallel computers and parallel programming models. Shared memory architecture. Message passing and distributed memory architecture. Parallel programming of computer clusters using MPI and multicore programming using OpenMP. Parallel algorithms for sorting, searching, linear algebra, and various graph problems.

Course topics will be very similar like HPC in Fall 2019:

http://www.morrisriedel.de/hpc-course-fall-2019

Positioning in the Field of High-Performance Computing (HPC)

  • Consists of techniques for programming & using large-scale HPC Systems
  • Approach: Get a broad understanding of what HPC is and what can be done
  • Goal: Train general HPC techniques and systems and selected details of domain-specific applications

Course Motivation

Parallel processing and distributed computing

  • Matured over the past three decades
  • Both emerged as a well-developed field in computer science
  • Still a lot of innovation, e.g. from hardware/software

‘Scientific computing‘ with Maple, Matlab, etc.

  • Performed on small (‘serial‘) computing machines like Desktop PCs or Laptops
  • An increasing number of cores enables ‘better scientific computing‘ today
  • Good for small & fewer complex applications, quickly reach memory limits

‘Advanced scientific computing‘

  • Used with computational simulations and large-scale machine & deep learning
  • Performed on large parallel computers; often scientific domain-specific approaches
  • Use orders of magnitude multi-core chips & large memory & specific many-core chips
  • Enables ‘simulations of reality‘ - often based on known physical laws and numerical methods

Language of instruction: English
Face-to-face learning
Not taught this semester
Year unspecified | Spring 1
Compilers (TÖL202M)
Free elective course within the programme
6 ECTS, credits
Course Description

The design of programming languages. The structure and design of compilers. Lexical analysis. Top down and bottom up parsing. Code generation. Each student writes his or her own compiler.

Language of instruction: Icelandic/English
Face-to-face learning
The course is taught if the specified conditions are met
Not taught this semester
Year unspecified | Spring 1
Algorithms in Bioinformatics (TÖL604M)
Free elective course within the programme
6 ECTS, credits
Course Description

This course will cover the algorithmic aspects of bioinformatic. We  will start with an introduction to genomics and algorithms for students new to the field. The course is divided into modules, each module covers a single problem in bioinformatics that will be motivated based on current research. The module will then cover algorithms that solve the problem and variations on the problem. The problems covered are motif finding, edit distance in strings, sequence alignment, clustering, sequencing and assembly and finally computational methods for high throughput sequencing (HTS).

Language of instruction: Icelandic
Face-to-face learning
Year unspecified | Spring 1
Fundamentals of Ethical Hacking (TÖL605M)
Free elective course within the programme
6 ECTS, credits
Course Description

Ethical hacking is the discipline of attacker perspective security analysis. Using tools and techniques used by malicious hackers, ethical hackers gain unique and unique and valuable insights used for improving system security.

This course will introduce students to the fundamentals of ethical hacking tools and techniques. Students will begin by configuring a secure lab using virtualisation tools. Then every two weeks a new stage of the ethical hacking methodology and some related tools will be introduced. The students will submit weekly lab reports evidencing their theoretical and practical understanding of the methodology and tools. 

For the best experience, students should own a PC able to run virtualisation software with an x86 image. Mac users with Apple CPU or those with PCs whose CPUs lack virtualisation support or who have limited RAM might have issues running a stable lab on their machine. Students who lack suitable hardware can use VMs on the department's cybersecurity server infrastructure.

Language of instruction: English
Face-to-face learning
Prerequisites
Year unspecified | Spring 1
Seminar in computer science (TÖL606M)
A mandatory (required) course for the programme
2 ECTS, credits
Course Description

Students in computer science, software engineering and computational engineering attend weekly seminars where they present talks on their research projects or other related topics of interest.

Language of instruction: Icelandic
Face-to-face learning
Prerequisites
Year unspecified | Spring 1
Software Testing (HBV205M)
A mandatory (required) course for the programme
6 ECTS, credits
Course Description

Usually taught every second year (typically in spring of odd years, but this is subject to change in 2024).

This course covers testing of software. Besides basic foundations, this includes both dynamic testing where the software under test is executed and static approaches where software and other artefacts produced during software development are investigated without executing them. The focus of this course is, however, on dynamic testing. The different levels of testing (component test, integration test, system and acceptance test) and types of testing (functional, non-functional, structural and change-related) are covered as well as different test design techniques (black box test and white box test). Furthermore, test management and principles of test tools are discussed. In addition, selected advanced topics may be covered (for example, test languages, testing of object-oriented software, test process improvement, agile testing). The covered topics are a superset of the International Software Testing Qualifications Board's (ISTQB) certified tester foundation level syllabus.

The first part of the course is based on flipped-classroom style weekly reading, videos and assignments. In the second part, students work independently on some project related to software testing.

Note: while this is an "M" course, it is rather on MSc. level. BSc. students who take this course need to be very advanced in their BSc. studies, i.e. have experience in programming languages, software development and applying it in some software project, but should also be familiar with theoretical concepts from automata theory.

Also, BSc. students should not take this course, if they know that they are going to continue with MSc. studies, because they might then experience a lack of suitable courses in their MSc. studies.

Language of instruction: English
Face-to-face learning
The course is taught if the specified conditions are met
Year unspecified | Spring 1
Final project (HBV442L)
A mandatory (required) course for the programme
0 ECTS, credits
Course Description
  • The topic of the Master's thesis must be chosen under the guidance of the supervisor and the Faculty Coordinator of the student. The thesis represents 60 credits. All Master's student have been assigned to a Faculty Coordinator from the beginning of their studies, who advises the student regarding the organization of the program. If a student does not have a supervisor for the final project, he / she must turn to the Faculty Coordinator for assistance.
  • The choice of topic is primarily the responsibility of the student in collaboration with his or her project supervisor. The topic of the project should fall within the student's area of study, i.e. course of study and chosen specialisation.
  • The master’s student writes a thesis according to the School’s template and defends it in a master’s defense.
  • Final project exam is divided into two parts: Oral examination and open lecture
  • Present at the oral exam is the student, supervisor, examiner and members of the Master's committee. The student presents a brief introduction on his / her project. It is important that the objectives and research question(s) are clearly stated, and that main findings and lessons to be drawn from the project are discussed.
  • The student delivers a thesis and a project poster.
  • According to the rules of the Master's program, all students who intend to graduate from the School of Engineering and Natural Sciences need to give a public lecture on their final project.
  • All students graduating from the University of Iceland shall submit an electronic copy of their final Master's thesis to Skemman.is. Skemman is the digital repository for all Icelandic universities and is maintained by the National and University Library.
  • According to regulations of University of Iceland all MS thesis should have open access after they have been submitted to Skemman.

Learning Outcomes:

Upon completion of an MS thesis, the student should be able to:

  • Formulate engineering design project  / research questions
  • Use an appropriate theoretical framework to shed light on his / her topic
  • Analyze and solve engineering tasks in a specialized field.
  • Perform a literature search and a thorough review of the literature.
  • Demonstrate initiative and independent creative thinking.
  • Use economic methodology to answer a specific research question
  • Competently discuss the current knowledge within the field and contribute to it with own research
  • Work with results, analyze uncertainties and limitations and interpret results.
  • Assess the scope of a research project and plan the work accordingly
  • Effectively display results and provide logical reasoning and relate results to the state of knowledge.
Language of instruction: Icelandic/English
Self-study
Part of the total project/thesis credits
Year unspecified | Spring 1
Governance of the Internet (TÖL212F)
Free elective course within the programme
6 ECTS, credits
Course Description

This course aims to provide a comprehensive overview of Internet governance and challenges in regulating cyberspace. Topics include the evolution of formalized internet governance, and the role of national governments, supranational organizations and private corporations in shaping the international regulatory framework for Internet governance.

The course will also explore the balance of privacy versus security, including the role of regulations such as GDPR and NIS2 to establish minimum requirements of “privacy” or “security” by design. The emergence of a “cyber-public” space has created new challenges for enforcing laws ranging from copyright to illegal content. Furthermore, the question of public/private cooperation in fighting against cybercrime and regulatory challenges regarding the emergence of cyberwarfare will be examined.

This course will be taught as a series of weekly lectures and bi-weekly seminars for student discussions and debates in internet governance topics.

Language of instruction: English
Face-to-face learning
Not taught this semester
Year unspecified | Spring 1
Fundaments of the Internet (RAF617M)
Free elective course within the programme
6 ECTS, credits
Course Description

Modern day telecommunications are characterised by the fact that communicated data is carried on fixed telecommunications infrastructure on a majority of the path between tranmitter and receiver. Wireless infrastructure often conveys the signals at the end of the path. This yields both high speed and the comfort of wireless communications. It is of utmost importance for engineers working in telecoms to have a fundamental knowledge of fixed networks and the range of technologies deployed.

In this course, the structure of fixed backbone and access networks will be described. Optical fibre and related technologies will be introduced, e.g. DWDM, SDH, Ethernet, ATM and MPLS-TP. Access network technologies on copper, coax and optical fibres will be treated, e.g. ADSL. VDSL, G.fast and  DOCSIS. Different FTTH (Fibre to the Home) technologies will be treated such as PON (Passive Optical Network), Active Ethernet and point-to-point Ethernet. 

IP (Internet Protocol) has become a fundamental technology for modern fixed networks. IP native technologies will be described from the physical to the application layer. On the link layer, Ethernet will be in the focus as well as MPLS. Circuit and packet switching will be treated as well as circuit and packet orientation of networks. Sevices such as PSTN, VoIP, OTT and P2P will be treated. Backhauling of wireless networks such as mobile networks and Wi-Fi will also be treated.
In introduction to network virtualisation and network function virtualisation (NFV) will be given as well as software defined networking (SDN). Legal and regulatory aspects will be introduced and aspects like network neutrality discfussed. Important players and stakeholders will be discussed, e.g. Google, Apple, Microsoft, Netflix and telecommunications service providers.
Finally, local area networks will be discussed, home networking, smart homes, set-top-boxes, NAS, PLC, plastic optical fibres, MOCA and Wi-Fi introduced.

The teaching form will be lectures and projects on IP communications will be worked. Students will write four papers on selected subjects and give presentations. 

Language of instruction: Icelandic
Face-to-face learning
Year unspecified | Spring 1
Algorithms in the real world (TÖL608M)
Free elective course within the programme
6 ECTS, credits
Course Description

The course will cover the design and analysis of algorithms, with emphasis on algorithms for large datasets and real world applications.

The algorithms covered will be drawn from various subfields, e.g. data and text compression, error correcting codes, large scale text search and search engines, parallel programming, GPU programming, streaming algorithms, probabilistic algorithms, nearest neighbor search in high dimensional datasets.

Language of instruction: Icelandic
Year unspecified | Spring 1
The AI lifecycle (REI603M)
Free elective course within the programme
6 ECTS, credits
Course Description

In this course, we study the AI lifecycle, i.e. the productionisation of AI methods.
We explore the following parts of the lifecycle:
- Data collection and preparation
- Feature engineering
- Model training
- Model evaluation
- Model deployment
- Model serving
- Model monitoring
- Model maintenance
Three large projects will be handed out during the semester where students compete to solve AI problems.

Language of instruction: English
Face-to-face learning
Not taught this semester
Year unspecified | Spring 1
Seminar on Machine Learning (TÖL028M)
Free elective course within the programme
2 ECTS, credits
Course Description

In this course, students familiarize themselves with a particular topic in artificial intelligence (e.g. computer vision, natural language processing, data processing, generative modeling or other topics) by studying relevant academic literature and preparing a talk on this topic for their classmates.

Students can choose from a selection of topics provided by the teacher, or propose a topic that they are interested in on their own.

Besides learning about the subject matter of the talks, the goal of the course is to practice presentation skills.

The course starts on June 8th and will finish on August 17th. 

Language of instruction: Icelandic
Face-to-face learning
Not taught this semester
Year unspecified | Spring 1
From an idea to reality II (TÖL211F)
Free elective course within the programme
6 ECTS, credits
Course Description

The course is a continuation of the course "From an idea to reality". Students are expected to continue to develop their idea that they had in the "From an Idea to Reality" course. If the students are not satisfied with their previous idea and think they have come up with a better idea, that's fine, and if the teacher is satisfied with the new idea the student can continue with the new idea.

Students must apply for grants in the competition fund. Practice pitching your idea to potential investors and your fellow students.

The teacher will cover accounting and planning based on probability.

The teacher will cover company formation and tax matters.

Language of instruction: Icelandic
Face-to-face learning
Attendance required in class
Year unspecified | Spring 1
Reasoned Programming (TÖL212M)
Free elective course within the programme
6 ECTS, credits
Course Description

Fundamental concepts in program verification and reasoned programming are covered. Emphasis is placed on using reasoned programming to develop solid and proved versions of well-known algorithms, especially in the areas of searching, sorting, and binary search trees. Among algorithms covered are various versions of insertion sort, selection sort, quicksort, binary search, and searching in binary search trees. Emphasis will be placed on deepening the understanding of the algorithms as well as getting a good grip on program verification. Some exercises will use verification tools such as Dafny or OpenJML.

Language of instruction: Icelandic/English
Face-to-face learning
The course is taught if the specified conditions are met
Year unspecified | Year unspecified
Introduction to Information Security (TÖL029M)
Free elective course within the programme
6 ECTS, credits
Course Description

Þetta námskeið byggir grunn að skilningi á lykilatriðum sem tengjast verndun upplýsinga, ákvörðun á verndarstigi og viðbrögð við öryggisatvikum, og hönnun á samræmdu raunhæfu upplýsingaöryggiskerfi, með viðeigandi innbrotsskynjun og tilkynningum.  Tilgangur námskeiðsins er að veita nemandanum yfirsýn yfir svið upplýsingaöryggis og upplýsingatrygginga.  Nemendur munu sjá ýmsar gerðir öryggisaðgerða, aðferðafræða og verklags.  Umfjöllunin mun taka fyrir skoðun og vernd upplýsingaeigna, uppgötvun og viðbrögð við ógnum við upplýsingaeignir, verklagsreglur fyrir og eftir öryggisatvik, tæknileg og stjórnunarleg viðbrögð og yfirlit yfir skipulagningu upplýsingaöryggis og starfsmannahald.  Meðal efnis eru áhættumat, auðkenning, veföryggi, öryggi forrita, persónuvernd og gagnavernd, kynning á dulmálskóðun, öryggisarkitektúr, eldveggir og önnur tæki og netskipulag.

Language of instruction: English
Face-to-face learning
Year unspecified | Year unspecified
Applied Cryptography (TÖL213M)
Free elective course within the programme
6 ECTS, credits
Course Description

In this course, students will take a practical approach to understanding the building and breaking of cryptographic implementations. The first half of this module will involve programming tasks while the second half will involve two mini projects. 

Starting from simplistic approaches used historically, such as the Caeser cipher, to modern day protocols used to secure telecommunications ubiquitously, such as AES and TLS. Students will also consider the role of cryptography in society more broadly by researching how contentious technologies such as end-to-end encryption and Tor impact justice and privacy, and distributed ledgers can enable the decentralisation of key societal systems. Finally, the course will conclude with a mini project demonstrating a practical attack against a cryptographic implementation using ethical hacking approaches e.g. WiFi cracking, password bruteforcing or man-in-the-middle attack of an encrypted connection to sniff traffic. 

The course will encompass the following stages: 

1) Building cryptographic primitives in a programming language of choice. 

2) Application engineering best practices. 

3) A research project in cryptography and society. 

4) A practical project in ethical hacking approaches to demonstrating weaknesses in cryptography implementations. 

Language of instruction: English
Face-to-face learning
Prerequisites
Not taught this semester
Year unspecified | Year unspecified
Quantum Cryptography (TÖL113F, TÖL113F)
Free elective course within the programme
6/6 ECTS, credits
Course Description

In this course, students learn about quantum computing and, in particular, quantum cryptography. Quantum computing will cause a revolution in cryptography as many cryptosystems based on computational complexity will become obsolete. They will replaced by so-called quantum secure crypto systems.

Language of instruction: English
Face-to-face learning
Not taught this semester
Year unspecified | Year unspecified
Quantum Computing and Quantum Cryptography (TÖL113F, TÖL113F)
Free elective course within the programme
6/6 ECTS, credits
Course Description

In this course, students learn about quantum computing and quantum cryptography. Quantum computing will cause a revolution in cryptography as many cryptosystems based on computational complexity will become obsolete. They will be replaced by so-called quantum secure crypto systems.

Topics covered:

  • Cryptography: An Overview
  • Quantum Mechanics
  • Quantum Cryptography
  • An Introduction to Error-Correcting Codes
  • Quantum Cryptography Revisited
  • Generalized Reed-Solomon Codes
  • Quantum Computing

This is a regular course: the students are expected to attend class every week. 

Language of instruction: English
Face-to-face learning
Year unspecified | Whole year courses
Mentor in Sprettur (GKY001M)
Free elective course within the programme
5 ECTS, credits
Course Description

In the course, the student's task consists in being a mentor for participants that are upper secondary school students and university students in the project "Sprettur". Mentors' main role is to support and encourage participants in their studies and social life. As well as creating a constructive relationship with the participants, being a positive role model, and participating in events organized in Sprettur. The mentor role centers around building relationships and spending meaningful time together with the commitment to support participants. 

Sprettur is a project that supports students with an immigrant or refugee background who come from families with little or no university education. The students in this course are mentors of the participants and are paired together based on a common field of interest. Each mentor is responsible for supporting two participants. Mentors plan activities with participants and spend three hours a month (from August to May) with Sprettur’s participants, three hours a month in a study group and attend five seminars that are spread over the school year. Students submit journal entries on Canvas in November and March. Diary entries are based on reading material and students' reflections on the mentorship. Compulsory attendance in events, study groups, and seminars. The course is taught in Icelandic and English. 

Students must apply for a seat in the course. Applicants go through an interview process and 15-30 students are selected to participate. 

See the digital application form. 

More information about Sprettur can be found here: www.hi.is/sprettur  

Language of instruction: Icelandic/English
Face-to-face learning
The course is taught if the specified conditions are met
Prerequisites
Attendance required in class
Year unspecified | Fall
Software Quality Management (HBV505M)
A mandatory (required) course for the programme
6 ECTS, credits
Course Description

The course is based on flipped-classroom style weekly reading, videos and assignments on software quality management-related aspects of the Software Development Life Cycle (SDLC) and by covering some parts of DevOps also Application Lifecycle Management (ALM). In parallel to theoretical concepts, the application of source code-centric tools relevant for quality management is trained by applying them to a codebase throughout the course using the ALM tool GitLab. The concepts and tools are independent from a particular software development process and cover:

  • Software Quality Foundations, Software Quality Models.
  • Configuration management (CM) and traceability:
    • Version management (e.g. Git),
    • Change management (e.g. issue tracker),
    • Build management (e.g. Maven),
    • Release management
  • Continuous integration (CI) (e.g. using GitLab pipelines).
  • Integrating testing into a CI pipeline (e.g. using JUnit and GitLab).
  • Reviews (e.g. tool-based code review)
  • Static analysis (e.g. SonarCloud)
  • Metrics for quality management (product and process metrics).
  • Quality standards:
    • Software Life Cycle Processes,
    • Software Process Improvement and maturity assessment (e.g. CMMI).
  • Using a Wiki to create a quality plan and other documentation.

Students chose their own codebase (e.g. from the Software Project 1 or 2 course) to which they apply the concepts and tools tought in this course. While the teaching material and tools assumes Java as programming language, students are welcome to use a codebase in another programming language.

Software quality in agile development processes is covered by student presentations at the end of the course.

Note: while this is an "M" course, it is rather on MSc. level. BSc. students who take this course need to be advanced in their BSc. studies and you need Java programming experience. Hence, you should have passed HBV501G Software Project 1, preferably even HBV601G Software Project 2.
Also, BSc. students should not take this course, if they know that they are going to continue with MSc. studies, because they might then experience a lack of suitable courses in their MSc. studies.

Language of instruction: English
Face-to-face learning
The course is taught if the specified conditions are met
Not taught this semester
Year unspecified | Fall
Quality Management (IÐN101M)
Free elective course within the programme
6 ECTS, credits
Course Description

Organization and management systems. The systems approach. Quality management, quality concepts. Historical development of quality management. Quality cost. Quality in manufacturing. x, R, p, c and cusum-chart. Statistical quality control. Tests of hypotheses. Acceptance sampling - OC curves. Inspection planning. Quality systems and quality assurance. Quality handbook and organizing for quality. ISO 9001. Total Quality Management, improvement step by step, motivations theories. Quality tools. Practical assignment: Designing a quality system for a company.

Language of instruction: Icelandic
Face-to-face learning
Year unspecified | Fall
Introduction to Information Security (TÖL029M)
Free elective course within the programme
6 ECTS, credits
Course Description

Þetta námskeið byggir grunn að skilningi á lykilatriðum sem tengjast verndun upplýsinga, ákvörðun á verndarstigi og viðbrögð við öryggisatvikum, og hönnun á samræmdu raunhæfu upplýsingaöryggiskerfi, með viðeigandi innbrotsskynjun og tilkynningum.  Tilgangur námskeiðsins er að veita nemandanum yfirsýn yfir svið upplýsingaöryggis og upplýsingatrygginga.  Nemendur munu sjá ýmsar gerðir öryggisaðgerða, aðferðafræða og verklags.  Umfjöllunin mun taka fyrir skoðun og vernd upplýsingaeigna, uppgötvun og viðbrögð við ógnum við upplýsingaeignir, verklagsreglur fyrir og eftir öryggisatvik, tæknileg og stjórnunarleg viðbrögð og yfirlit yfir skipulagningu upplýsingaöryggis og starfsmannahald.  Meðal efnis eru áhættumat, auðkenning, veföryggi, öryggi forrita, persónuvernd og gagnavernd, kynning á dulmálskóðun, öryggisarkitektúr, eldveggir og önnur tæki og netskipulag.

Language of instruction: English
Face-to-face learning
Year unspecified | Fall
Final project (HBV442L)
A mandatory (required) course for the programme
0 ECTS, credits
Course Description
  • The topic of the Master's thesis must be chosen under the guidance of the supervisor and the Faculty Coordinator of the student. The thesis represents 60 credits. All Master's student have been assigned to a Faculty Coordinator from the beginning of their studies, who advises the student regarding the organization of the program. If a student does not have a supervisor for the final project, he / she must turn to the Faculty Coordinator for assistance.
  • The choice of topic is primarily the responsibility of the student in collaboration with his or her project supervisor. The topic of the project should fall within the student's area of study, i.e. course of study and chosen specialisation.
  • The master’s student writes a thesis according to the School’s template and defends it in a master’s defense.
  • Final project exam is divided into two parts: Oral examination and open lecture
  • Present at the oral exam is the student, supervisor, examiner and members of the Master's committee. The student presents a brief introduction on his / her project. It is important that the objectives and research question(s) are clearly stated, and that main findings and lessons to be drawn from the project are discussed.
  • The student delivers a thesis and a project poster.
  • According to the rules of the Master's program, all students who intend to graduate from the School of Engineering and Natural Sciences need to give a public lecture on their final project.
  • All students graduating from the University of Iceland shall submit an electronic copy of their final Master's thesis to Skemman.is. Skemman is the digital repository for all Icelandic universities and is maintained by the National and University Library.
  • According to regulations of University of Iceland all MS thesis should have open access after they have been submitted to Skemman.

Learning Outcomes:

Upon completion of an MS thesis, the student should be able to:

  • Formulate engineering design project  / research questions
  • Use an appropriate theoretical framework to shed light on his / her topic
  • Analyze and solve engineering tasks in a specialized field.
  • Perform a literature search and a thorough review of the literature.
  • Demonstrate initiative and independent creative thinking.
  • Use economic methodology to answer a specific research question
  • Competently discuss the current knowledge within the field and contribute to it with own research
  • Work with results, analyze uncertainties and limitations and interpret results.
  • Assess the scope of a research project and plan the work accordingly
  • Effectively display results and provide logical reasoning and relate results to the state of knowledge.
Language of instruction: Icelandic/English
Self-study
Part of the total project/thesis credits
Not taught this semester
Year unspecified | Fall
Software Maintenance (HBV103M)
A mandatory (required) course for the programme
6 ECTS, credits
Course Description

Usually taught every second year (typically in fall of odd years, but this is subject to change in 2024).

The first part of the course is based on flipped-classroom style weekly reading, videos and assignments on:

  • Evolution of Software and Lehman’s laws,
  • Maintenance processes,
  • Metrics useful for maintenance,
  • Software analysis,
  • Re-engineering,
  • Reverse engineering,
  • Code Smells & Refactoring,
  • Basics of (Regression-)Testing,
  • Design principles to support change & Design Patterns,
  • Tools for software maintenance (including advanced features of an IDE).

In the second part of this course, these techniques will be applied in order to maintain a real legacy software written in Java.

Note: while this is an "M" course, it is rather on MSc. level. BSc. students who take this course need to be advanced in their BSc. studies and you need solid Java programming experience: we will maintain a complex software and being able to understand how such a grown software works and to fix bugs is even more difficult to write such a software from scratch. Hence, you should have passed HBV501G Software Project 1, preferably even HBV601G Software Project 2. (It is impossible to maintain a software if you would not even be able to develop it.) Also, BSc. students should not take this course, if they know that they are going to continue with MSc. studies, because they might then experience a lack of suitable courses in their MSc. studies.

Language of instruction: English
Face-to-face learning
The course is taught if the specified conditions are met
Year unspecified | Fall
Network Measurements and Analysis (TÖL104M)
Free elective course within the programme
6 ECTS, credits
Course Description

This course provides an introduction to carrying out different measurements in Internet, an overview on related software tools, and advanced data analysis methods. We discuss, e.g., both passive and active packet, flow and routing measurements, as well as, some selected techniques related to cyber security operations (e.g. detection of Botnets and anomalies). Course includes also a sufficient coverage of related ethical and legal questions. In course exercises, students process real measurement data using statistical and mathematical software packages (e.g., NumPy or R), and carry out various network measurements. The measurement data are analysed and reported.

Course composition:

1. Lectures (first part)
2. Laboratory work and self-study (second part; measurements)
3. Final presentations (optional)

Language of instruction: English
Face-to-face learning
Prerequisites
Year unspecified | Fall
Usable Privacy and Security (HBV507M)
Free elective course within the programme
6 ECTS, credits
Course Description

Survey of the field of usable security and privacy with an emphasis on emerging technologies. Topics include authentication, location privacy, social network privacy, behavioral advertising, - health privacy, anonymity, cryptocurrency, technical writing and ethical conduct of usable privacy and security research.

Language of instruction: English
Face-to-face learning
Year unspecified | Fall
Machine Learning (REI505M)
Free elective course within the programme
6 ECTS, credits
Course Description

An overview of some of the main concepts, techniques and algorithms in machine learning. Supervised learning and unsupervised learning. Data preprocessing and data visualization. Model evaluation and model selection. Linear regression, nearest neighbors, support vector machines, decision trees and ensemble methods. Deep learning. Cluster analysis and the k-means algorithm. The students implement simple algorithms in Python and learn how to use specialized software packages. At the end of the course the students work on a practical machine learning project.

Language of instruction: English
Face-to-face learning
Not taught this semester
Year unspecified | Fall
Machine Learning for Earth Observation powered by Supercomputers (REI506M)
Free elective course within the programme
6 ECTS, credits
Course Description

This course exposes the students to the physical principles underlying satellite observations of Earth by passive sensors, as well as parallel Deep Learning (DL) algorithms that scale on High Performance Computing (HPC) systems. 

For the different theoretical concepts (represented by 4 modules), the course provides hands-on exercises. These exercises are part of a project in the context of Remote Sensing (RS) image classification that the students are asked to develop during the whole duration of the course.

Language of instruction: English
Face-to-face learning
Year unspecified | Fall
Programming Projects on Internet of Things (TÖL103M)
Free elective course within the programme
6 ECTS, credits
Course Description

This course offers a hands-on introduction to programming small devices (microcontrollers, single-board computers) used in the context of Internet of Things, sensor networking, and home automation.

Such devices are often equipped with a large number of I/O pins, some RAM and flash memory, and wireless communication capabilities (e.g. WiFi and/or Bluetooth), making them attractive for tasks involving data acquisition,
processing, and wireless communication.

The course consists of bi-weekly programming tasks dealing with serial communication, data acquisition and analysis, programming of real-time O/S (RTOS), wireless communication and TCP/IP client-servers paradigm.

The biweekly assignments lead to a final project.

Language of instruction: English
Face-to-face learning
Not taught this semester
Year unspecified | Fall
From an Idea to Reality (TÖL109F)
Free elective course within the programme
6 ECTS, credits
Course Description

The course has been in development for over a decade under the name "Computer Systems and Marketing". 

The course is based on teacher lectures and individual and group projects that help students to think outside the box. Teacher will tell of his experiences of making ideas become real and have a special focus on the mistakes that have been made along with the successful stories.
The final project of the course is a business plan that will be presented in an oral final exam. The business plan focuses on the idea of each student and how the student plans to realize his project.

Language of instruction: Icelandic
Face-to-face learning
Year unspecified | Fall
Human Computer Interaction (TÖL502M)
Free elective course within the programme
6 ECTS, credits
Course Description

Usually taught every second year.

The objective of the course is to allow students to examine more closely than is done in the introductory course Graphical User Interface Programming  HBV201G specific factors of HCI. The factors covered are user interface design using prototyping, programming of smart devices and users‘ acceptability of the software. There will be emphasis on different techniques and tools to develop prototypes. Also, on the design of user interfaces and native programming for smart phones or pads. The development process will be aimed at ensuring accessibility and acceptability of users. Students work on small projects individually, or on larger projects in groups. 

Language of instruction: Icelandic
Face-to-face learning
The course is taught if the specified conditions are met
Prerequisites
Year unspecified | Fall
Introduction to deep neural networks (TÖL506M)
Free elective course within the programme
6 ECTS, credits
Course Description

In this course we cover deep neural networks and methods related to them. We study networks and methods for image, sound and text analysis. The focus will be on applications and students will present either a project or a recent paper in this field.

Language of instruction: Icelandic
Face-to-face learning
Year unspecified | Fall
Thesis skills: project management, writing skills and presentation (VON001F)
Free elective course within the programme
4 ECTS, credits
Course Description

Introduction to the scientific method. Ethics of science and within the university community.
The role of the student, advisors and external examiner. Effective and honest communications.
Conducting a literature review, using bibliographic databases and reference handling. Thesis structure, formulating research questions, writing and argumentation. How scientific writing differs from general purpose writing. Writing a MS study plan and proposal. Practical skills for presenting tables and figures, layout, fonts and colors. Presentation skills. Project management for a thesis, how to divide a large project into smaller tasks, setting a work plan and following a timeline. Life after graduate school and being employable.

Language of instruction: English
Face-to-face learning
Online learning
Year unspecified | Spring 1
Field Course in Innovation and Entrepreneurship (II) (IÐN216F)
A mandatory (required) course for the programme
7,5 ECTS, credits
Course Description

The course is a continuation of the course "Field Course in Innovation and Entrepreneurship (I)". This part of the course consists of detailed development of the business model related to a particular business opportunity. This work takes place in groups, where cross-disciplinary collaboration, between individuals with a background in business and individuals with a background in a particular technical or professional field related to the relevant opportunity, is emphasized. Projects can originate in an independent business idea or in collaboration with companies that partner with the course. In both cases, the emphasis will be on product or service develepment, built on technical or professional expertise, where the business case of the opportunity and its verification is in the foreground.

Language of instruction: Icelandic
Face-to-face learning
Course taught second half of the semester
Year unspecified | Spring 1
Field Course in Innovation and Entrepreneurship (I) (IÐN222F)
A mandatory (required) course for the programme
7,5 ECTS, credits
Course Description

The course is taught in two parts, and the expectation is that students register for both parts. The course will cover the practical issues related to innovation and entrepreneurship. It covers the emergence of a business idea and the initial evaluation of the business opportunity, and the development and testing of a business model. This part of the course consists of lectures and case discussions that deal with various aspects of innovation and entrepreneurship: Analysis of business opportunities, evaluation of market size and unit contribution, the management of organizational units that are involved in innovation, financing, and other issues. Students will also tackle projects where they apply the methods taught in the class to isolated tasks in product and business development in both new and existing firms.

Language of instruction: Icelandic
Face-to-face learning
Prerequisites
Course taught first half of the semester
Year unspecified | Spring 1
Fundamentals of Ethical Hacking (TÖL605M)
Free elective course within the programme
6 ECTS, credits
Course Description

Ethical hacking is the discipline of attacker perspective security analysis. Using tools and techniques used by malicious hackers, ethical hackers gain unique and unique and valuable insights used for improving system security.

This course will introduce students to the fundamentals of ethical hacking tools and techniques. Students will begin by configuring a secure lab using virtualisation tools. Then every two weeks a new stage of the ethical hacking methodology and some related tools will be introduced. The students will submit weekly lab reports evidencing their theoretical and practical understanding of the methodology and tools. 

For the best experience, students should own a PC able to run virtualisation software with an x86 image. Mac users with Apple CPU or those with PCs whose CPUs lack virtualisation support or who have limited RAM might have issues running a stable lab on their machine. Students who lack suitable hardware can use VMs on the department's cybersecurity server infrastructure.

Language of instruction: English
Face-to-face learning
Prerequisites
Year unspecified | Spring 1
Seminar in computer science (TÖL606M)
A mandatory (required) course for the programme
2 ECTS, credits
Course Description

Students in computer science, software engineering and computational engineering attend weekly seminars where they present talks on their research projects or other related topics of interest.

Language of instruction: Icelandic
Face-to-face learning
Prerequisites
Year unspecified | Spring 1
Software Testing (HBV205M)
A mandatory (required) course for the programme
6 ECTS, credits
Course Description

Usually taught every second year (typically in spring of odd years, but this is subject to change in 2024).

This course covers testing of software. Besides basic foundations, this includes both dynamic testing where the software under test is executed and static approaches where software and other artefacts produced during software development are investigated without executing them. The focus of this course is, however, on dynamic testing. The different levels of testing (component test, integration test, system and acceptance test) and types of testing (functional, non-functional, structural and change-related) are covered as well as different test design techniques (black box test and white box test). Furthermore, test management and principles of test tools are discussed. In addition, selected advanced topics may be covered (for example, test languages, testing of object-oriented software, test process improvement, agile testing). The covered topics are a superset of the International Software Testing Qualifications Board's (ISTQB) certified tester foundation level syllabus.

The first part of the course is based on flipped-classroom style weekly reading, videos and assignments. In the second part, students work independently on some project related to software testing.

Note: while this is an "M" course, it is rather on MSc. level. BSc. students who take this course need to be very advanced in their BSc. studies, i.e. have experience in programming languages, software development and applying it in some software project, but should also be familiar with theoretical concepts from automata theory.

Also, BSc. students should not take this course, if they know that they are going to continue with MSc. studies, because they might then experience a lack of suitable courses in their MSc. studies.

Language of instruction: English
Face-to-face learning
The course is taught if the specified conditions are met
Year unspecified | Spring 1
Final project (HBV442L)
A mandatory (required) course for the programme
0 ECTS, credits
Course Description
  • The topic of the Master's thesis must be chosen under the guidance of the supervisor and the Faculty Coordinator of the student. The thesis represents 60 credits. All Master's student have been assigned to a Faculty Coordinator from the beginning of their studies, who advises the student regarding the organization of the program. If a student does not have a supervisor for the final project, he / she must turn to the Faculty Coordinator for assistance.
  • The choice of topic is primarily the responsibility of the student in collaboration with his or her project supervisor. The topic of the project should fall within the student's area of study, i.e. course of study and chosen specialisation.
  • The master’s student writes a thesis according to the School’s template and defends it in a master’s defense.
  • Final project exam is divided into two parts: Oral examination and open lecture
  • Present at the oral exam is the student, supervisor, examiner and members of the Master's committee. The student presents a brief introduction on his / her project. It is important that the objectives and research question(s) are clearly stated, and that main findings and lessons to be drawn from the project are discussed.
  • The student delivers a thesis and a project poster.
  • According to the rules of the Master's program, all students who intend to graduate from the School of Engineering and Natural Sciences need to give a public lecture on their final project.
  • All students graduating from the University of Iceland shall submit an electronic copy of their final Master's thesis to Skemman.is. Skemman is the digital repository for all Icelandic universities and is maintained by the National and University Library.
  • According to regulations of University of Iceland all MS thesis should have open access after they have been submitted to Skemman.

Learning Outcomes:

Upon completion of an MS thesis, the student should be able to:

  • Formulate engineering design project  / research questions
  • Use an appropriate theoretical framework to shed light on his / her topic
  • Analyze and solve engineering tasks in a specialized field.
  • Perform a literature search and a thorough review of the literature.
  • Demonstrate initiative and independent creative thinking.
  • Use economic methodology to answer a specific research question
  • Competently discuss the current knowledge within the field and contribute to it with own research
  • Work with results, analyze uncertainties and limitations and interpret results.
  • Assess the scope of a research project and plan the work accordingly
  • Effectively display results and provide logical reasoning and relate results to the state of knowledge.
Language of instruction: Icelandic/English
Self-study
Part of the total project/thesis credits
Year unspecified | Spring 1
Governance of the Internet (TÖL212F)
Free elective course within the programme
6 ECTS, credits
Course Description

This course aims to provide a comprehensive overview of Internet governance and challenges in regulating cyberspace. Topics include the evolution of formalized internet governance, and the role of national governments, supranational organizations and private corporations in shaping the international regulatory framework for Internet governance.

The course will also explore the balance of privacy versus security, including the role of regulations such as GDPR and NIS2 to establish minimum requirements of “privacy” or “security” by design. The emergence of a “cyber-public” space has created new challenges for enforcing laws ranging from copyright to illegal content. Furthermore, the question of public/private cooperation in fighting against cybercrime and regulatory challenges regarding the emergence of cyberwarfare will be examined.

This course will be taught as a series of weekly lectures and bi-weekly seminars for student discussions and debates in internet governance topics.

Language of instruction: English
Face-to-face learning
Not taught this semester
Year unspecified | Spring 1
Fundaments of the Internet (RAF617M)
Free elective course within the programme
6 ECTS, credits
Course Description

Modern day telecommunications are characterised by the fact that communicated data is carried on fixed telecommunications infrastructure on a majority of the path between tranmitter and receiver. Wireless infrastructure often conveys the signals at the end of the path. This yields both high speed and the comfort of wireless communications. It is of utmost importance for engineers working in telecoms to have a fundamental knowledge of fixed networks and the range of technologies deployed.

In this course, the structure of fixed backbone and access networks will be described. Optical fibre and related technologies will be introduced, e.g. DWDM, SDH, Ethernet, ATM and MPLS-TP. Access network technologies on copper, coax and optical fibres will be treated, e.g. ADSL. VDSL, G.fast and  DOCSIS. Different FTTH (Fibre to the Home) technologies will be treated such as PON (Passive Optical Network), Active Ethernet and point-to-point Ethernet. 

IP (Internet Protocol) has become a fundamental technology for modern fixed networks. IP native technologies will be described from the physical to the application layer. On the link layer, Ethernet will be in the focus as well as MPLS. Circuit and packet switching will be treated as well as circuit and packet orientation of networks. Sevices such as PSTN, VoIP, OTT and P2P will be treated. Backhauling of wireless networks such as mobile networks and Wi-Fi will also be treated.
In introduction to network virtualisation and network function virtualisation (NFV) will be given as well as software defined networking (SDN). Legal and regulatory aspects will be introduced and aspects like network neutrality discfussed. Important players and stakeholders will be discussed, e.g. Google, Apple, Microsoft, Netflix and telecommunications service providers.
Finally, local area networks will be discussed, home networking, smart homes, set-top-boxes, NAS, PLC, plastic optical fibres, MOCA and Wi-Fi introduced.

The teaching form will be lectures and projects on IP communications will be worked. Students will write four papers on selected subjects and give presentations. 

Language of instruction: Icelandic
Face-to-face learning
Year unspecified | Spring 1
Algorithms in the real world (TÖL608M)
Free elective course within the programme
6 ECTS, credits
Course Description

The course will cover the design and analysis of algorithms, with emphasis on algorithms for large datasets and real world applications.

The algorithms covered will be drawn from various subfields, e.g. data and text compression, error correcting codes, large scale text search and search engines, parallel programming, GPU programming, streaming algorithms, probabilistic algorithms, nearest neighbor search in high dimensional datasets.

Language of instruction: Icelandic
Year unspecified | Spring 1
The AI lifecycle (REI603M)
Free elective course within the programme
6 ECTS, credits
Course Description

In this course, we study the AI lifecycle, i.e. the productionisation of AI methods.
We explore the following parts of the lifecycle:
- Data collection and preparation
- Feature engineering
- Model training
- Model evaluation
- Model deployment
- Model serving
- Model monitoring
- Model maintenance
Three large projects will be handed out during the semester where students compete to solve AI problems.

Language of instruction: English
Face-to-face learning
Not taught this semester
Year unspecified | Spring 1
Seminar on Machine Learning (TÖL028M)
Free elective course within the programme
2 ECTS, credits
Course Description

In this course, students familiarize themselves with a particular topic in artificial intelligence (e.g. computer vision, natural language processing, data processing, generative modeling or other topics) by studying relevant academic literature and preparing a talk on this topic for their classmates.

Students can choose from a selection of topics provided by the teacher, or propose a topic that they are interested in on their own.

Besides learning about the subject matter of the talks, the goal of the course is to practice presentation skills.

The course starts on June 8th and will finish on August 17th. 

Language of instruction: Icelandic
Face-to-face learning
Not taught this semester
Year unspecified | Spring 1
From an idea to reality II (TÖL211F)
Free elective course within the programme
6 ECTS, credits
Course Description

The course is a continuation of the course "From an idea to reality". Students are expected to continue to develop their idea that they had in the "From an Idea to Reality" course. If the students are not satisfied with their previous idea and think they have come up with a better idea, that's fine, and if the teacher is satisfied with the new idea the student can continue with the new idea.

Students must apply for grants in the competition fund. Practice pitching your idea to potential investors and your fellow students.

The teacher will cover accounting and planning based on probability.

The teacher will cover company formation and tax matters.

Language of instruction: Icelandic
Face-to-face learning
Attendance required in class
Year unspecified | Spring 1
Reasoned Programming (TÖL212M)
Free elective course within the programme
6 ECTS, credits
Course Description

Fundamental concepts in program verification and reasoned programming are covered. Emphasis is placed on using reasoned programming to develop solid and proved versions of well-known algorithms, especially in the areas of searching, sorting, and binary search trees. Among algorithms covered are various versions of insertion sort, selection sort, quicksort, binary search, and searching in binary search trees. Emphasis will be placed on deepening the understanding of the algorithms as well as getting a good grip on program verification. Some exercises will use verification tools such as Dafny or OpenJML.

Language of instruction: Icelandic/English
Face-to-face learning
The course is taught if the specified conditions are met
Year unspecified | Year unspecified
Applied Cryptography (TÖL213M)
Free elective course within the programme
6 ECTS, credits
Course Description

In this course, students will take a practical approach to understanding the building and breaking of cryptographic implementations. The first half of this module will involve programming tasks while the second half will involve two mini projects. 

Starting from simplistic approaches used historically, such as the Caeser cipher, to modern day protocols used to secure telecommunications ubiquitously, such as AES and TLS. Students will also consider the role of cryptography in society more broadly by researching how contentious technologies such as end-to-end encryption and Tor impact justice and privacy, and distributed ledgers can enable the decentralisation of key societal systems. Finally, the course will conclude with a mini project demonstrating a practical attack against a cryptographic implementation using ethical hacking approaches e.g. WiFi cracking, password bruteforcing or man-in-the-middle attack of an encrypted connection to sniff traffic. 

The course will encompass the following stages: 

1) Building cryptographic primitives in a programming language of choice. 

2) Application engineering best practices. 

3) A research project in cryptography and society. 

4) A practical project in ethical hacking approaches to demonstrating weaknesses in cryptography implementations. 

Language of instruction: English
Face-to-face learning
Prerequisites
Year unspecified | Year unspecified
Distributed Systems (TÖL503M)
Free elective course within the programme
6 ECTS, credits
Course Description

Usually taught every second year.

This course covers concepts of distributed systems and their application. Besides foundations on characteristics and models of distributed systems, networking and security, this includes network-based low-level interprocess communication, high-level remote procedure calls, the distributed object model and remote method invocation, services relevant in distributed systems (such as name services or distributed file systems), selected topics of distributed algorithms and their implementation (such as coordination, agreement,  time, replication). Furthermore, special types of distributed systems may be covered (such as peer-to-peer systems, Cloud and Grid computing).  Current technologies (such as Java RMI, Web Services, gRPC) are used as case study and as platform for developing distributed applications using high-level programming languages (such as Java).

Note: while this is an "M" course, it is rather on MSc. level. BSc. students who take this course need to be advanced in their BSc. studies. (E.g. we will implement middleware in Java, so you should have programming experience well beyond "TÖL101G Computer Science 1". As a middleware adds functionality on top of an Operating System, you should have also passed TÖL401G Operating Systems.)

Language of instruction: English
Face-to-face learning
The course is taught if the specified conditions are met
Not taught this semester
Year unspecified | Year unspecified
Algorithms in Bioinformatics (TÖL504M, TÖL604M)
Free elective course within the programme
6/6 ECTS, credits
Course Description

This course will cover the algorithmic aspects of bioinformatic. We  will start with an introduction to genomics and algorithms for students new to the field. The course is divided into modules, each module covers a single problem in bioinformatics that will be motivated based on current research. The module will then cover algorithms that solve the problem and variations on the problem. The problems covered are motif finding, edit distance in strings, sequence alignment, clustering, sequencing and assembly and finally computational methods for high throughput sequencing (HTS).

Language of instruction: Icelandic
Face-to-face learning
Not taught this semester
Year unspecified | Year unspecified
Algorithms in Bioinformatics (TÖL504M, TÖL604M)
Free elective course within the programme
6/6 ECTS, credits
Course Description

This course will cover the algorithmic aspects of bioinformatic. We  will start with an introduction to genomics and algorithms for students new to the field. The course is divided into modules, each module covers a single problem in bioinformatics that will be motivated based on current research. The module will then cover algorithms that solve the problem and variations on the problem. The problems covered are motif finding, edit distance in strings, sequence alignment, clustering, sequencing and assembly and finally computational methods for high throughput sequencing (HTS).

Language of instruction: Icelandic
Face-to-face learning
Year unspecified | Year unspecified
Secure Software Engineering (HBV506M)
Free elective course within the programme
6 ECTS, credits
Course Description

Secure software engineering involves identifying and mitigating vulnerabilities to reduce threats to an application. In this module, students will gain an understanding of secure engineering practices and the means to apply them throughout the complete software development life cycle.

Working in teams, students will design, develop, and maintain a web application for a customer following secure software engineering principles. Students will illustrate their understanding and practical competency of white box and black box security assessment through testing their own and other team’s applications for vulnerabilities against the OWASP top 10 most critical security risks to web applications.

It is therefore assumed the students have knowledge in web application development using JavaScript.

Language of instruction: English
Face-to-face learning
Prerequisites
Not taught this semester
Year unspecified | Year unspecified
Quantum Cryptography (TÖL113F, TÖL113F)
Free elective course within the programme
6/6 ECTS, credits
Course Description

In this course, students learn about quantum computing and, in particular, quantum cryptography. Quantum computing will cause a revolution in cryptography as many cryptosystems based on computational complexity will become obsolete. They will replaced by so-called quantum secure crypto systems.

Language of instruction: English
Face-to-face learning
Not taught this semester
Year unspecified | Year unspecified
Quantum Computing and Quantum Cryptography (TÖL113F, TÖL113F)
Free elective course within the programme
6/6 ECTS, credits
Course Description

In this course, students learn about quantum computing and quantum cryptography. Quantum computing will cause a revolution in cryptography as many cryptosystems based on computational complexity will become obsolete. They will be replaced by so-called quantum secure crypto systems.

Topics covered:

  • Cryptography: An Overview
  • Quantum Mechanics
  • Quantum Cryptography
  • An Introduction to Error-Correcting Codes
  • Quantum Cryptography Revisited
  • Generalized Reed-Solomon Codes
  • Quantum Computing

This is a regular course: the students are expected to attend class every week. 

Language of instruction: English
Face-to-face learning
Year unspecified
  • Whole year courses
  • GKY001M
    Mentor in Sprettur
    Elective course
    5
    Free elective course within the programme
    5 ECTS, credits
    Course Description

    In the course, the student's task consists in being a mentor for participants that are upper secondary school students and university students in the project "Sprettur". Mentors' main role is to support and encourage participants in their studies and social life. As well as creating a constructive relationship with the participants, being a positive role model, and participating in events organized in Sprettur. The mentor role centers around building relationships and spending meaningful time together with the commitment to support participants. 

    Sprettur is a project that supports students with an immigrant or refugee background who come from families with little or no university education. The students in this course are mentors of the participants and are paired together based on a common field of interest. Each mentor is responsible for supporting two participants. Mentors plan activities with participants and spend three hours a month (from August to May) with Sprettur’s participants, three hours a month in a study group and attend five seminars that are spread over the school year. Students submit journal entries on Canvas in November and March. Diary entries are based on reading material and students' reflections on the mentorship. Compulsory attendance in events, study groups, and seminars. The course is taught in Icelandic and English. 

    Students must apply for a seat in the course. Applicants go through an interview process and 15-30 students are selected to participate. 

    See the digital application form. 

    More information about Sprettur can be found here: www.hi.is/sprettur  

    Face-to-face learning
    The course is taught if the specified conditions are met
    Prerequisites
    Attendance required in class
  • Fall
  • HBV506M
    Secure Software Engineering
    Mandatory (required) course
    6
    A mandatory (required) course for the programme
    6 ECTS, credits
    Course Description

    Secure software engineering involves identifying and mitigating vulnerabilities to reduce threats to an application. In this module, students will gain an understanding of secure engineering practices and the means to apply them throughout the complete software development life cycle.

    Working in teams, students will design, develop, and maintain a web application for a customer following secure software engineering principles. Students will illustrate their understanding and practical competency of white box and black box security assessment through testing their own and other team’s applications for vulnerabilities against the OWASP top 10 most critical security risks to web applications.

    It is therefore assumed the students have knowledge in web application development using JavaScript.

    Face-to-face learning
    Prerequisites
  • TÖL503M
    Distributed Systems
    Mandatory (required) course
    6
    A mandatory (required) course for the programme
    6 ECTS, credits
    Course Description

    Usually taught every second year.

    This course covers concepts of distributed systems and their application. Besides foundations on characteristics and models of distributed systems, networking and security, this includes network-based low-level interprocess communication, high-level remote procedure calls, the distributed object model and remote method invocation, services relevant in distributed systems (such as name services or distributed file systems), selected topics of distributed algorithms and their implementation (such as coordination, agreement,  time, replication). Furthermore, special types of distributed systems may be covered (such as peer-to-peer systems, Cloud and Grid computing).  Current technologies (such as Java RMI, Web Services, gRPC) are used as case study and as platform for developing distributed applications using high-level programming languages (such as Java).

    Note: while this is an "M" course, it is rather on MSc. level. BSc. students who take this course need to be advanced in their BSc. studies. (E.g. we will implement middleware in Java, so you should have programming experience well beyond "TÖL101G Computer Science 1". As a middleware adds functionality on top of an Operating System, you should have also passed TÖL401G Operating Systems.)

    Face-to-face learning
    The course is taught if the specified conditions are met
    Prerequisites
  • HBV442L
    Final project
    Mandatory (required) course
    0
    A mandatory (required) course for the programme
    0 ECTS, credits
    Course Description
    • The topic of the Master's thesis must be chosen under the guidance of the supervisor and the Faculty Coordinator of the student. The thesis represents 60 credits. All Master's student have been assigned to a Faculty Coordinator from the beginning of their studies, who advises the student regarding the organization of the program. If a student does not have a supervisor for the final project, he / she must turn to the Faculty Coordinator for assistance.
    • The choice of topic is primarily the responsibility of the student in collaboration with his or her project supervisor. The topic of the project should fall within the student's area of study, i.e. course of study and chosen specialisation.
    • The master’s student writes a thesis according to the School’s template and defends it in a master’s defense.
    • Final project exam is divided into two parts: Oral examination and open lecture
    • Present at the oral exam is the student, supervisor, examiner and members of the Master's committee. The student presents a brief introduction on his / her project. It is important that the objectives and research question(s) are clearly stated, and that main findings and lessons to be drawn from the project are discussed.
    • The student delivers a thesis and a project poster.
    • According to the rules of the Master's program, all students who intend to graduate from the School of Engineering and Natural Sciences need to give a public lecture on their final project.
    • All students graduating from the University of Iceland shall submit an electronic copy of their final Master's thesis to Skemman.is. Skemman is the digital repository for all Icelandic universities and is maintained by the National and University Library.
    • According to regulations of University of Iceland all MS thesis should have open access after they have been submitted to Skemman.

    Learning Outcomes:

    Upon completion of an MS thesis, the student should be able to:

    • Formulate engineering design project  / research questions
    • Use an appropriate theoretical framework to shed light on his / her topic
    • Analyze and solve engineering tasks in a specialized field.
    • Perform a literature search and a thorough review of the literature.
    • Demonstrate initiative and independent creative thinking.
    • Use economic methodology to answer a specific research question
    • Competently discuss the current knowledge within the field and contribute to it with own research
    • Work with results, analyze uncertainties and limitations and interpret results.
    • Assess the scope of a research project and plan the work accordingly
    • Effectively display results and provide logical reasoning and relate results to the state of knowledge.
    Self-study
    Prerequisites
    Part of the total project/thesis credits
  • Not taught this semester
    HBV103M
    Software Maintenance
    Mandatory (required) course
    6
    A mandatory (required) course for the programme
    6 ECTS, credits
    Course Description

    Usually taught every second year (typically in fall of odd years, but this is subject to change in 2024).

    The first part of the course is based on flipped-classroom style weekly reading, videos and assignments on:

    • Evolution of Software and Lehman’s laws,
    • Maintenance processes,
    • Metrics useful for maintenance,
    • Software analysis,
    • Re-engineering,
    • Reverse engineering,
    • Code Smells & Refactoring,
    • Basics of (Regression-)Testing,
    • Design principles to support change & Design Patterns,
    • Tools for software maintenance (including advanced features of an IDE).

    In the second part of this course, these techniques will be applied in order to maintain a real legacy software written in Java.

    Note: while this is an "M" course, it is rather on MSc. level. BSc. students who take this course need to be advanced in their BSc. studies and you need solid Java programming experience: we will maintain a complex software and being able to understand how such a grown software works and to fix bugs is even more difficult to write such a software from scratch. Hence, you should have passed HBV501G Software Project 1, preferably even HBV601G Software Project 2. (It is impossible to maintain a software if you would not even be able to develop it.) Also, BSc. students should not take this course, if they know that they are going to continue with MSc. studies, because they might then experience a lack of suitable courses in their MSc. studies.

    Face-to-face learning
    The course is taught if the specified conditions are met
    Prerequisites
  • TÖL104M
    Network Measurements and Analysis
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    This course provides an introduction to carrying out different measurements in Internet, an overview on related software tools, and advanced data analysis methods. We discuss, e.g., both passive and active packet, flow and routing measurements, as well as, some selected techniques related to cyber security operations (e.g. detection of Botnets and anomalies). Course includes also a sufficient coverage of related ethical and legal questions. In course exercises, students process real measurement data using statistical and mathematical software packages (e.g., NumPy or R), and carry out various network measurements. The measurement data are analysed and reported.

    Course composition:

    1. Lectures (first part)
    2. Laboratory work and self-study (second part; measurements)
    3. Final presentations (optional)

    Face-to-face learning
    Prerequisites
  • HBV507M
    Usable Privacy and Security
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    Survey of the field of usable security and privacy with an emphasis on emerging technologies. Topics include authentication, location privacy, social network privacy, behavioral advertising, - health privacy, anonymity, cryptocurrency, technical writing and ethical conduct of usable privacy and security research.

    Face-to-face learning
    Prerequisites
  • REI505M
    Machine Learning
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    An overview of some of the main concepts, techniques and algorithms in machine learning. Supervised learning and unsupervised learning. Data preprocessing and data visualization. Model evaluation and model selection. Linear regression, nearest neighbors, support vector machines, decision trees and ensemble methods. Deep learning. Cluster analysis and the k-means algorithm. The students implement simple algorithms in Python and learn how to use specialized software packages. At the end of the course the students work on a practical machine learning project.

    Face-to-face learning
    Prerequisites
  • Not taught this semester
    REI506M
    Machine Learning for Earth Observation powered by Supercomputers
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    This course exposes the students to the physical principles underlying satellite observations of Earth by passive sensors, as well as parallel Deep Learning (DL) algorithms that scale on High Performance Computing (HPC) systems. 

    For the different theoretical concepts (represented by 4 modules), the course provides hands-on exercises. These exercises are part of a project in the context of Remote Sensing (RS) image classification that the students are asked to develop during the whole duration of the course.

    Face-to-face learning
    Prerequisites
  • TÖL103M
    Programming Projects on Internet of Things
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    This course offers a hands-on introduction to programming small devices (microcontrollers, single-board computers) used in the context of Internet of Things, sensor networking, and home automation.

    Such devices are often equipped with a large number of I/O pins, some RAM and flash memory, and wireless communication capabilities (e.g. WiFi and/or Bluetooth), making them attractive for tasks involving data acquisition,
    processing, and wireless communication.

    The course consists of bi-weekly programming tasks dealing with serial communication, data acquisition and analysis, programming of real-time O/S (RTOS), wireless communication and TCP/IP client-servers paradigm.

    The biweekly assignments lead to a final project.

    Face-to-face learning
    Prerequisites
  • Not taught this semester
    TÖL109F
    From an Idea to Reality
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    The course has been in development for over a decade under the name "Computer Systems and Marketing". 

    The course is based on teacher lectures and individual and group projects that help students to think outside the box. Teacher will tell of his experiences of making ideas become real and have a special focus on the mistakes that have been made along with the successful stories.
    The final project of the course is a business plan that will be presented in an oral final exam. The business plan focuses on the idea of each student and how the student plans to realize his project.

    Face-to-face learning
    Prerequisites
  • TÖL502M
    Human Computer Interaction
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    Usually taught every second year.

    The objective of the course is to allow students to examine more closely than is done in the introductory course Graphical User Interface Programming  HBV201G specific factors of HCI. The factors covered are user interface design using prototyping, programming of smart devices and users‘ acceptability of the software. There will be emphasis on different techniques and tools to develop prototypes. Also, on the design of user interfaces and native programming for smart phones or pads. The development process will be aimed at ensuring accessibility and acceptability of users. Students work on small projects individually, or on larger projects in groups. 

    Face-to-face learning
    The course is taught if the specified conditions are met
    Prerequisites
  • TÖL506M
    Introduction to deep neural networks
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    In this course we cover deep neural networks and methods related to them. We study networks and methods for image, sound and text analysis. The focus will be on applications and students will present either a project or a recent paper in this field.

    Face-to-face learning
    Prerequisites
  • VON001F
    Thesis skills: project management, writing skills and presentation
    Elective course
    4
    Free elective course within the programme
    4 ECTS, credits
    Course Description

    Introduction to the scientific method. Ethics of science and within the university community.
    The role of the student, advisors and external examiner. Effective and honest communications.
    Conducting a literature review, using bibliographic databases and reference handling. Thesis structure, formulating research questions, writing and argumentation. How scientific writing differs from general purpose writing. Writing a MS study plan and proposal. Practical skills for presenting tables and figures, layout, fonts and colors. Presentation skills. Project management for a thesis, how to divide a large project into smaller tasks, setting a work plan and following a timeline. Life after graduate school and being employable.

    Face-to-face learning
    Online learning
    Prerequisites
  • Spring 2
  • TÖL605M
    Fundamentals of Ethical Hacking
    Mandatory (required) course
    6
    A mandatory (required) course for the programme
    6 ECTS, credits
    Course Description

    Ethical hacking is the discipline of attacker perspective security analysis. Using tools and techniques used by malicious hackers, ethical hackers gain unique and unique and valuable insights used for improving system security.

    This course will introduce students to the fundamentals of ethical hacking tools and techniques. Students will begin by configuring a secure lab using virtualisation tools. Then every two weeks a new stage of the ethical hacking methodology and some related tools will be introduced. The students will submit weekly lab reports evidencing their theoretical and practical understanding of the methodology and tools. 

    For the best experience, students should own a PC able to run virtualisation software with an x86 image. Mac users with Apple CPU or those with PCs whose CPUs lack virtualisation support or who have limited RAM might have issues running a stable lab on their machine. Students who lack suitable hardware can use VMs on the department's cybersecurity server infrastructure.

    Face-to-face learning
    Prerequisites
  • TÖL213M
    Applied Cryptography
    Mandatory (required) course
    6
    A mandatory (required) course for the programme
    6 ECTS, credits
    Course Description

    In this course, students will take a practical approach to understanding the building and breaking of cryptographic implementations. The first half of this module will involve programming tasks while the second half will involve two mini projects. 

    Starting from simplistic approaches used historically, such as the Caeser cipher, to modern day protocols used to secure telecommunications ubiquitously, such as AES and TLS. Students will also consider the role of cryptography in society more broadly by researching how contentious technologies such as end-to-end encryption and Tor impact justice and privacy, and distributed ledgers can enable the decentralisation of key societal systems. Finally, the course will conclude with a mini project demonstrating a practical attack against a cryptographic implementation using ethical hacking approaches e.g. WiFi cracking, password bruteforcing or man-in-the-middle attack of an encrypted connection to sniff traffic. 

    The course will encompass the following stages: 

    1) Building cryptographic primitives in a programming language of choice. 

    2) Application engineering best practices. 

    3) A research project in cryptography and society. 

    4) A practical project in ethical hacking approaches to demonstrating weaknesses in cryptography implementations. 

    Face-to-face learning
    Prerequisites
  • TÖL606M
    Seminar in computer science
    Mandatory (required) course
    2
    A mandatory (required) course for the programme
    2 ECTS, credits
    Course Description

    Students in computer science, software engineering and computational engineering attend weekly seminars where they present talks on their research projects or other related topics of interest.

    Face-to-face learning
    Prerequisites
  • HBV205M
    Software Testing
    Mandatory (required) course
    6
    A mandatory (required) course for the programme
    6 ECTS, credits
    Course Description

    Usually taught every second year (typically in spring of odd years, but this is subject to change in 2024).

    This course covers testing of software. Besides basic foundations, this includes both dynamic testing where the software under test is executed and static approaches where software and other artefacts produced during software development are investigated without executing them. The focus of this course is, however, on dynamic testing. The different levels of testing (component test, integration test, system and acceptance test) and types of testing (functional, non-functional, structural and change-related) are covered as well as different test design techniques (black box test and white box test). Furthermore, test management and principles of test tools are discussed. In addition, selected advanced topics may be covered (for example, test languages, testing of object-oriented software, test process improvement, agile testing). The covered topics are a superset of the International Software Testing Qualifications Board's (ISTQB) certified tester foundation level syllabus.

    The first part of the course is based on flipped-classroom style weekly reading, videos and assignments. In the second part, students work independently on some project related to software testing.

    Note: while this is an "M" course, it is rather on MSc. level. BSc. students who take this course need to be very advanced in their BSc. studies, i.e. have experience in programming languages, software development and applying it in some software project, but should also be familiar with theoretical concepts from automata theory.

    Also, BSc. students should not take this course, if they know that they are going to continue with MSc. studies, because they might then experience a lack of suitable courses in their MSc. studies.

    Face-to-face learning
    The course is taught if the specified conditions are met
    Prerequisites
  • HBV442L
    Final project
    Mandatory (required) course
    0
    A mandatory (required) course for the programme
    0 ECTS, credits
    Course Description
    • The topic of the Master's thesis must be chosen under the guidance of the supervisor and the Faculty Coordinator of the student. The thesis represents 60 credits. All Master's student have been assigned to a Faculty Coordinator from the beginning of their studies, who advises the student regarding the organization of the program. If a student does not have a supervisor for the final project, he / she must turn to the Faculty Coordinator for assistance.
    • The choice of topic is primarily the responsibility of the student in collaboration with his or her project supervisor. The topic of the project should fall within the student's area of study, i.e. course of study and chosen specialisation.
    • The master’s student writes a thesis according to the School’s template and defends it in a master’s defense.
    • Final project exam is divided into two parts: Oral examination and open lecture
    • Present at the oral exam is the student, supervisor, examiner and members of the Master's committee. The student presents a brief introduction on his / her project. It is important that the objectives and research question(s) are clearly stated, and that main findings and lessons to be drawn from the project are discussed.
    • The student delivers a thesis and a project poster.
    • According to the rules of the Master's program, all students who intend to graduate from the School of Engineering and Natural Sciences need to give a public lecture on their final project.
    • All students graduating from the University of Iceland shall submit an electronic copy of their final Master's thesis to Skemman.is. Skemman is the digital repository for all Icelandic universities and is maintained by the National and University Library.
    • According to regulations of University of Iceland all MS thesis should have open access after they have been submitted to Skemman.

    Learning Outcomes:

    Upon completion of an MS thesis, the student should be able to:

    • Formulate engineering design project  / research questions
    • Use an appropriate theoretical framework to shed light on his / her topic
    • Analyze and solve engineering tasks in a specialized field.
    • Perform a literature search and a thorough review of the literature.
    • Demonstrate initiative and independent creative thinking.
    • Use economic methodology to answer a specific research question
    • Competently discuss the current knowledge within the field and contribute to it with own research
    • Work with results, analyze uncertainties and limitations and interpret results.
    • Assess the scope of a research project and plan the work accordingly
    • Effectively display results and provide logical reasoning and relate results to the state of knowledge.
    Self-study
    Prerequisites
    Part of the total project/thesis credits
  • TÖL212F
    Governance of the Internet
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    This course aims to provide a comprehensive overview of Internet governance and challenges in regulating cyberspace. Topics include the evolution of formalized internet governance, and the role of national governments, supranational organizations and private corporations in shaping the international regulatory framework for Internet governance.

    The course will also explore the balance of privacy versus security, including the role of regulations such as GDPR and NIS2 to establish minimum requirements of “privacy” or “security” by design. The emergence of a “cyber-public” space has created new challenges for enforcing laws ranging from copyright to illegal content. Furthermore, the question of public/private cooperation in fighting against cybercrime and regulatory challenges regarding the emergence of cyberwarfare will be examined.

    This course will be taught as a series of weekly lectures and bi-weekly seminars for student discussions and debates in internet governance topics.

    Face-to-face learning
    Prerequisites
  • Not taught this semester
    RAF617M
    Fundaments of the Internet
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    Modern day telecommunications are characterised by the fact that communicated data is carried on fixed telecommunications infrastructure on a majority of the path between tranmitter and receiver. Wireless infrastructure often conveys the signals at the end of the path. This yields both high speed and the comfort of wireless communications. It is of utmost importance for engineers working in telecoms to have a fundamental knowledge of fixed networks and the range of technologies deployed.

    In this course, the structure of fixed backbone and access networks will be described. Optical fibre and related technologies will be introduced, e.g. DWDM, SDH, Ethernet, ATM and MPLS-TP. Access network technologies on copper, coax and optical fibres will be treated, e.g. ADSL. VDSL, G.fast and  DOCSIS. Different FTTH (Fibre to the Home) technologies will be treated such as PON (Passive Optical Network), Active Ethernet and point-to-point Ethernet. 

    IP (Internet Protocol) has become a fundamental technology for modern fixed networks. IP native technologies will be described from the physical to the application layer. On the link layer, Ethernet will be in the focus as well as MPLS. Circuit and packet switching will be treated as well as circuit and packet orientation of networks. Sevices such as PSTN, VoIP, OTT and P2P will be treated. Backhauling of wireless networks such as mobile networks and Wi-Fi will also be treated.
    In introduction to network virtualisation and network function virtualisation (NFV) will be given as well as software defined networking (SDN). Legal and regulatory aspects will be introduced and aspects like network neutrality discfussed. Important players and stakeholders will be discussed, e.g. Google, Apple, Microsoft, Netflix and telecommunications service providers.
    Finally, local area networks will be discussed, home networking, smart homes, set-top-boxes, NAS, PLC, plastic optical fibres, MOCA and Wi-Fi introduced.

    The teaching form will be lectures and projects on IP communications will be worked. Students will write four papers on selected subjects and give presentations. 

    Face-to-face learning
    Prerequisites
  • TÖL608M
    Algorithms in the real world
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    The course will cover the design and analysis of algorithms, with emphasis on algorithms for large datasets and real world applications.

    The algorithms covered will be drawn from various subfields, e.g. data and text compression, error correcting codes, large scale text search and search engines, parallel programming, GPU programming, streaming algorithms, probabilistic algorithms, nearest neighbor search in high dimensional datasets.

    Prerequisites
  • REI603M
    The AI lifecycle
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    In this course, we study the AI lifecycle, i.e. the productionisation of AI methods.
    We explore the following parts of the lifecycle:
    - Data collection and preparation
    - Feature engineering
    - Model training
    - Model evaluation
    - Model deployment
    - Model serving
    - Model monitoring
    - Model maintenance
    Three large projects will be handed out during the semester where students compete to solve AI problems.

    Face-to-face learning
    Prerequisites
  • Not taught this semester
    TÖL028M
    Seminar on Machine Learning
    Elective course
    2
    Free elective course within the programme
    2 ECTS, credits
    Course Description

    In this course, students familiarize themselves with a particular topic in artificial intelligence (e.g. computer vision, natural language processing, data processing, generative modeling or other topics) by studying relevant academic literature and preparing a talk on this topic for their classmates.

    Students can choose from a selection of topics provided by the teacher, or propose a topic that they are interested in on their own.

    Besides learning about the subject matter of the talks, the goal of the course is to practice presentation skills.

    The course starts on June 8th and will finish on August 17th. 

    Face-to-face learning
    Prerequisites
  • Not taught this semester
    TÖL211F
    From an idea to reality II
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    The course is a continuation of the course "From an idea to reality". Students are expected to continue to develop their idea that they had in the "From an Idea to Reality" course. If the students are not satisfied with their previous idea and think they have come up with a better idea, that's fine, and if the teacher is satisfied with the new idea the student can continue with the new idea.

    Students must apply for grants in the competition fund. Practice pitching your idea to potential investors and your fellow students.

    The teacher will cover accounting and planning based on probability.

    The teacher will cover company formation and tax matters.

    Face-to-face learning
    Prerequisites
    Attendance required in class
  • TÖL212M
    Reasoned Programming
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    Fundamental concepts in program verification and reasoned programming are covered. Emphasis is placed on using reasoned programming to develop solid and proved versions of well-known algorithms, especially in the areas of searching, sorting, and binary search trees. Among algorithms covered are various versions of insertion sort, selection sort, quicksort, binary search, and searching in binary search trees. Emphasis will be placed on deepening the understanding of the algorithms as well as getting a good grip on program verification. Some exercises will use verification tools such as Dafny or OpenJML.

    Face-to-face learning
    The course is taught if the specified conditions are met
    Prerequisites
  • Year unspecified
  • HBV505M
    Software Quality Management
    Mandatory (required) course
    6
    A mandatory (required) course for the programme
    6 ECTS, credits
    Course Description

    The course is based on flipped-classroom style weekly reading, videos and assignments on software quality management-related aspects of the Software Development Life Cycle (SDLC) and by covering some parts of DevOps also Application Lifecycle Management (ALM). In parallel to theoretical concepts, the application of source code-centric tools relevant for quality management is trained by applying them to a codebase throughout the course using the ALM tool GitLab. The concepts and tools are independent from a particular software development process and cover:

    • Software Quality Foundations, Software Quality Models.
    • Configuration management (CM) and traceability:
      • Version management (e.g. Git),
      • Change management (e.g. issue tracker),
      • Build management (e.g. Maven),
      • Release management
    • Continuous integration (CI) (e.g. using GitLab pipelines).
    • Integrating testing into a CI pipeline (e.g. using JUnit and GitLab).
    • Reviews (e.g. tool-based code review)
    • Static analysis (e.g. SonarCloud)
    • Metrics for quality management (product and process metrics).
    • Quality standards:
      • Software Life Cycle Processes,
      • Software Process Improvement and maturity assessment (e.g. CMMI).
    • Using a Wiki to create a quality plan and other documentation.

    Students chose their own codebase (e.g. from the Software Project 1 or 2 course) to which they apply the concepts and tools tought in this course. While the teaching material and tools assumes Java as programming language, students are welcome to use a codebase in another programming language.

    Software quality in agile development processes is covered by student presentations at the end of the course.

    Note: while this is an "M" course, it is rather on MSc. level. BSc. students who take this course need to be advanced in their BSc. studies and you need Java programming experience. Hence, you should have passed HBV501G Software Project 1, preferably even HBV601G Software Project 2.
    Also, BSc. students should not take this course, if they know that they are going to continue with MSc. studies, because they might then experience a lack of suitable courses in their MSc. studies.

    Face-to-face learning
    The course is taught if the specified conditions are met
    Prerequisites
  • TÖL029M
    Introduction to Information Security
    Mandatory (required) course
    6
    A mandatory (required) course for the programme
    6 ECTS, credits
    Course Description

    Þetta námskeið byggir grunn að skilningi á lykilatriðum sem tengjast verndun upplýsinga, ákvörðun á verndarstigi og viðbrögð við öryggisatvikum, og hönnun á samræmdu raunhæfu upplýsingaöryggiskerfi, með viðeigandi innbrotsskynjun og tilkynningum.  Tilgangur námskeiðsins er að veita nemandanum yfirsýn yfir svið upplýsingaöryggis og upplýsingatrygginga.  Nemendur munu sjá ýmsar gerðir öryggisaðgerða, aðferðafræða og verklags.  Umfjöllunin mun taka fyrir skoðun og vernd upplýsingaeigna, uppgötvun og viðbrögð við ógnum við upplýsingaeignir, verklagsreglur fyrir og eftir öryggisatvik, tæknileg og stjórnunarleg viðbrögð og yfirlit yfir skipulagningu upplýsingaöryggis og starfsmannahald.  Meðal efnis eru áhættumat, auðkenning, veföryggi, öryggi forrita, persónuvernd og gagnavernd, kynning á dulmálskóðun, öryggisarkitektúr, eldveggir og önnur tæki og netskipulag.

    Face-to-face learning
    Prerequisites
  • IÐN216F
    Field Course in Innovation and Entrepreneurship (II)
    Elective course
    7,5
    Free elective course within the programme
    7,5 ECTS, credits
    Course Description

    The course is a continuation of the course "Field Course in Innovation and Entrepreneurship (I)". This part of the course consists of detailed development of the business model related to a particular business opportunity. This work takes place in groups, where cross-disciplinary collaboration, between individuals with a background in business and individuals with a background in a particular technical or professional field related to the relevant opportunity, is emphasized. Projects can originate in an independent business idea or in collaboration with companies that partner with the course. In both cases, the emphasis will be on product or service develepment, built on technical or professional expertise, where the business case of the opportunity and its verification is in the foreground.

    Face-to-face learning
    Prerequisites
    Course taught second half of the semester
  • IÐN113F
    Time Series Analysis
    Elective course
    7,5
    Free elective course within the programme
    7,5 ECTS, credits
    Course Description

    ARMAX and other similar time series models. Non-stationary time series. Correlation and spectral analysis. Parameter estimation, parametric and non-parametric approaches, Least Squares and Maximum Likelihood. Model validation methods. Models with time dependent parameters. Numerical methods for minimization. Outlier detection and interpolation. Introduction to nonlinear time series models. Discrete state space models. Discrete state space models. Extensive use of MATLAB, especially the System Identification Toolbox.

    Distance learning
    Self-study
    Prerequisites
  • Not taught this semester
    RAF617M
    Fundaments of the Internet
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    Modern day telecommunications are characterised by the fact that communicated data is carried on fixed telecommunications infrastructure on a majority of the path between tranmitter and receiver. Wireless infrastructure often conveys the signals at the end of the path. This yields both high speed and the comfort of wireless communications. It is of utmost importance for engineers working in telecoms to have a fundamental knowledge of fixed networks and the range of technologies deployed.

    In this course, the structure of fixed backbone and access networks will be described. Optical fibre and related technologies will be introduced, e.g. DWDM, SDH, Ethernet, ATM and MPLS-TP. Access network technologies on copper, coax and optical fibres will be treated, e.g. ADSL. VDSL, G.fast and  DOCSIS. Different FTTH (Fibre to the Home) technologies will be treated such as PON (Passive Optical Network), Active Ethernet and point-to-point Ethernet. 

    IP (Internet Protocol) has become a fundamental technology for modern fixed networks. IP native technologies will be described from the physical to the application layer. On the link layer, Ethernet will be in the focus as well as MPLS. Circuit and packet switching will be treated as well as circuit and packet orientation of networks. Sevices such as PSTN, VoIP, OTT and P2P will be treated. Backhauling of wireless networks such as mobile networks and Wi-Fi will also be treated.
    In introduction to network virtualisation and network function virtualisation (NFV) will be given as well as software defined networking (SDN). Legal and regulatory aspects will be introduced and aspects like network neutrality discfussed. Important players and stakeholders will be discussed, e.g. Google, Apple, Microsoft, Netflix and telecommunications service providers.
    Finally, local area networks will be discussed, home networking, smart homes, set-top-boxes, NAS, PLC, plastic optical fibres, MOCA and Wi-Fi introduced.

    The teaching form will be lectures and projects on IP communications will be worked. Students will write four papers on selected subjects and give presentations. 

    Face-to-face learning
    Prerequisites
  • IÐN222F
    Field Course in Innovation and Entrepreneurship (I)
    Elective course
    7,5
    Free elective course within the programme
    7,5 ECTS, credits
    Course Description

    The course is taught in two parts, and the expectation is that students register for both parts. The course will cover the practical issues related to innovation and entrepreneurship. It covers the emergence of a business idea and the initial evaluation of the business opportunity, and the development and testing of a business model. This part of the course consists of lectures and case discussions that deal with various aspects of innovation and entrepreneurship: Analysis of business opportunities, evaluation of market size and unit contribution, the management of organizational units that are involved in innovation, financing, and other issues. Students will also tackle projects where they apply the methods taught in the class to isolated tasks in product and business development in both new and existing firms.

    Face-to-face learning
    Prerequisites
    Course taught first half of the semester
  • REI503M
    Performance analysis of computer systems
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    Usually taught every second year.

    This course provides students with an introduction to modeling and performance evaluation of computer and communication systems. Large-scale distributed computer systems process arriving requests, e.g., web page queries, in parallel in order to optimize performance metrics, such as response time and user satisfaction. Other important performance metrics include throughput and service-level agreement in general. This course covers basic mathematical tools needed to evaluate such dynamic systems and to understand the strengths and weaknesses, for example in different designs, scheduling disciplines, and operating policies. The approach is based on operations research methods, in particular, queueing theory and Markov processes (previous knowledge of these methods is not required).

    Attendance is strongly recommended.

    Face-to-face learning
    The course is taught if the specified conditions are met
    Prerequisites
  • Not taught this semester
    TÖL109F
    From an Idea to Reality
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    The course has been in development for over a decade under the name "Computer Systems and Marketing". 

    The course is based on teacher lectures and individual and group projects that help students to think outside the box. Teacher will tell of his experiences of making ideas become real and have a special focus on the mistakes that have been made along with the successful stories.
    The final project of the course is a business plan that will be presented in an oral final exam. The business plan focuses on the idea of each student and how the student plans to realize his project.

    Face-to-face learning
    Prerequisites
  • Not taught this semester
    TÖL113F, TÖL113F
    Quantum Cryptography
    Elective course
    6/6
    Free elective course within the programme
    6/6 ECTS, credits
    Course Description

    In this course, students learn about quantum computing and, in particular, quantum cryptography. Quantum computing will cause a revolution in cryptography as many cryptosystems based on computational complexity will become obsolete. They will replaced by so-called quantum secure crypto systems.

    Face-to-face learning
    Prerequisites
  • TÖL113F, TÖL113F
    Quantum Computing and Quantum Cryptography
    Elective course
    6/6
    Free elective course within the programme
    6/6 ECTS, credits
    Course Description

    In this course, students learn about quantum computing and quantum cryptography. Quantum computing will cause a revolution in cryptography as many cryptosystems based on computational complexity will become obsolete. They will be replaced by so-called quantum secure crypto systems.

    Topics covered:

    • Cryptography: An Overview
    • Quantum Mechanics
    • Quantum Cryptography
    • An Introduction to Error-Correcting Codes
    • Quantum Cryptography Revisited
    • Generalized Reed-Solomon Codes
    • Quantum Computing

    This is a regular course: the students are expected to attend class every week. 

    Face-to-face learning
    Prerequisites
Year unspecified
  • Whole year courses
  • GKY001M
    Mentor in Sprettur hide
    Elective course
    5
    Free elective course within the programme
    5 ECTS, credits
    Course Description

    In the course, the student's task consists in being a mentor for participants that are upper secondary school students and university students in the project "Sprettur". Mentors' main role is to support and encourage participants in their studies and social life. As well as creating a constructive relationship with the participants, being a positive role model, and participating in events organized in Sprettur. The mentor role centers around building relationships and spending meaningful time together with the commitment to support participants. 

    Sprettur is a project that supports students with an immigrant or refugee background who come from families with little or no university education. The students in this course are mentors of the participants and are paired together based on a common field of interest. Each mentor is responsible for supporting two participants. Mentors plan activities with participants and spend three hours a month (from August to May) with Sprettur’s participants, three hours a month in a study group and attend five seminars that are spread over the school year. Students submit journal entries on Canvas in November and March. Diary entries are based on reading material and students' reflections on the mentorship. Compulsory attendance in events, study groups, and seminars. The course is taught in Icelandic and English. 

    Students must apply for a seat in the course. Applicants go through an interview process and 15-30 students are selected to participate. 

    See the digital application form. 

    More information about Sprettur can be found here: www.hi.is/sprettur  

    Face-to-face learning
    The course is taught if the specified conditions are met
    Prerequisites
    Attendance required in class
  • Fall
  • HBV505M
    Software Quality Management hide
    Mandatory (required) course
    6
    A mandatory (required) course for the programme
    6 ECTS, credits
    Course Description

    The course is based on flipped-classroom style weekly reading, videos and assignments on software quality management-related aspects of the Software Development Life Cycle (SDLC) and by covering some parts of DevOps also Application Lifecycle Management (ALM). In parallel to theoretical concepts, the application of source code-centric tools relevant for quality management is trained by applying them to a codebase throughout the course using the ALM tool GitLab. The concepts and tools are independent from a particular software development process and cover:

    • Software Quality Foundations, Software Quality Models.
    • Configuration management (CM) and traceability:
      • Version management (e.g. Git),
      • Change management (e.g. issue tracker),
      • Build management (e.g. Maven),
      • Release management
    • Continuous integration (CI) (e.g. using GitLab pipelines).
    • Integrating testing into a CI pipeline (e.g. using JUnit and GitLab).
    • Reviews (e.g. tool-based code review)
    • Static analysis (e.g. SonarCloud)
    • Metrics for quality management (product and process metrics).
    • Quality standards:
      • Software Life Cycle Processes,
      • Software Process Improvement and maturity assessment (e.g. CMMI).
    • Using a Wiki to create a quality plan and other documentation.

    Students chose their own codebase (e.g. from the Software Project 1 or 2 course) to which they apply the concepts and tools tought in this course. While the teaching material and tools assumes Java as programming language, students are welcome to use a codebase in another programming language.

    Software quality in agile development processes is covered by student presentations at the end of the course.

    Note: while this is an "M" course, it is rather on MSc. level. BSc. students who take this course need to be advanced in their BSc. studies and you need Java programming experience. Hence, you should have passed HBV501G Software Project 1, preferably even HBV601G Software Project 2.
    Also, BSc. students should not take this course, if they know that they are going to continue with MSc. studies, because they might then experience a lack of suitable courses in their MSc. studies.

    Face-to-face learning
    The course is taught if the specified conditions are met
    Prerequisites
  • HBV506M
    Secure Software Engineering hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    Secure software engineering involves identifying and mitigating vulnerabilities to reduce threats to an application. In this module, students will gain an understanding of secure engineering practices and the means to apply them throughout the complete software development life cycle.

    Working in teams, students will design, develop, and maintain a web application for a customer following secure software engineering principles. Students will illustrate their understanding and practical competency of white box and black box security assessment through testing their own and other team’s applications for vulnerabilities against the OWASP top 10 most critical security risks to web applications.

    It is therefore assumed the students have knowledge in web application development using JavaScript.

    Face-to-face learning
    Prerequisites
  • Not taught this semester
    IÐN101M
    Quality Management hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    Organization and management systems. The systems approach. Quality management, quality concepts. Historical development of quality management. Quality cost. Quality in manufacturing. x, R, p, c and cusum-chart. Statistical quality control. Tests of hypotheses. Acceptance sampling - OC curves. Inspection planning. Quality systems and quality assurance. Quality handbook and organizing for quality. ISO 9001. Total Quality Management, improvement step by step, motivations theories. Quality tools. Practical assignment: Designing a quality system for a company.

    Face-to-face learning
    Prerequisites
  • Not taught this semester
    IÐN102M
    Computational Intelligence hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    Basic aspects of computational intelligence, which is the study of algorithms that improve automatically through experience.

    Face-to-face learning
    The course is taught if the specified conditions are met
    Prerequisites
  • IÐN113F
    Time Series Analysis hide
    Elective course
    7,5
    Free elective course within the programme
    7,5 ECTS, credits
    Course Description

    ARMAX and other similar time series models. Non-stationary time series. Correlation and spectral analysis. Parameter estimation, parametric and non-parametric approaches, Least Squares and Maximum Likelihood. Model validation methods. Models with time dependent parameters. Numerical methods for minimization. Outlier detection and interpolation. Introduction to nonlinear time series models. Discrete state space models. Discrete state space models. Extensive use of MATLAB, especially the System Identification Toolbox.

    Distance learning
    Self-study
    Prerequisites
  • REI503M
    Performance analysis of computer systems hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    Usually taught every second year.

    This course provides students with an introduction to modeling and performance evaluation of computer and communication systems. Large-scale distributed computer systems process arriving requests, e.g., web page queries, in parallel in order to optimize performance metrics, such as response time and user satisfaction. Other important performance metrics include throughput and service-level agreement in general. This course covers basic mathematical tools needed to evaluate such dynamic systems and to understand the strengths and weaknesses, for example in different designs, scheduling disciplines, and operating policies. The approach is based on operations research methods, in particular, queueing theory and Markov processes (previous knowledge of these methods is not required).

    Attendance is strongly recommended.

    Face-to-face learning
    The course is taught if the specified conditions are met
    Prerequisites
  • Not taught this semester
    STÆ529M
    Bayesian Data Analysis hide
    Elective course
    8
    Free elective course within the programme
    8 ECTS, credits
    Course Description

    Goal: To train students in applying methods of Bayesian statistics for analysis of data. Topics: Theory of Bayesian inference, prior distributions, data distributions and posterior distributions. Bayesian inference  for parameters of univariate and multivariate distributions: binomial; normal; Poisson; exponential; multivariate normal; multinomial. Model checking and model comparison: Bayesian p-values; deviance information criterion (DIC). Bayesian computation: Markov chain Monte Carlo (MCMC) methods; the Gibbs sampler; the Metropolis-Hastings algorithm; convergence diagnostistics. Linear models: normal linear models; hierarchical linear models; generalized linear models. Emphasis on data analysis using software, e.g. Matlab and R.

    Face-to-face learning
    The course is taught if the specified conditions are met
    Prerequisites
  • Not taught this semester
    TÖL106M
    Security Engineering for Critical Information Infrastructures hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    The overarching objective of this experimental course is to provide a practical technical and policy introduction for the foundations of the building and operating of dependable, complex distributed national information infrastructures.

    The course teaches university students how to model, design, implement, operate, and defend these national information infrastructures (NII) to withstand errors and attacks.

    We will introduce complementary engineering methodologies intended to assist NII policymakers, stewards, operators, and engineering professionals to implement protective initiatives to design and improve the survivability of NII systems, critical functions, and processes.

    The course will include cyber threat intelligence tradecraft and the experimental use of both open-source intelligence and an artificial intelligence tool i.e. ChatGPT

    Face-to-face learning
    Prerequisites
  • Not taught this semester
    TÖL107M
    Cyber Conflicts, Cyber Security Threats and Engineering, National Information Infrastructures (NII) hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    This interdisciplinary course examines underlying and emerging information technologies, cyber security engineering and policies associated with surveillance, cyber warfare, and cyber threats.

    The technological concepts reviewed in this course include but are not limited to National Information Infrastructures, the Internet, Dark Web, networks and sensors, and trends associated with our emerging Internet of Things.

    The course will review some salient cyber conflict history, international and national policies concerning cyber conflict and security engineering - secure by design, military/civilian doctrine, and some lessons learned from the use of cyber operations in past, present and future conflicts.

    Face-to-face learning
    Prerequisites
  • TÖL503M
    Distributed Systems hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    Usually taught every second year.

    This course covers concepts of distributed systems and their application. Besides foundations on characteristics and models of distributed systems, networking and security, this includes network-based low-level interprocess communication, high-level remote procedure calls, the distributed object model and remote method invocation, services relevant in distributed systems (such as name services or distributed file systems), selected topics of distributed algorithms and their implementation (such as coordination, agreement,  time, replication). Furthermore, special types of distributed systems may be covered (such as peer-to-peer systems, Cloud and Grid computing).  Current technologies (such as Java RMI, Web Services, gRPC) are used as case study and as platform for developing distributed applications using high-level programming languages (such as Java).

    Note: while this is an "M" course, it is rather on MSc. level. BSc. students who take this course need to be advanced in their BSc. studies. (E.g. we will implement middleware in Java, so you should have programming experience well beyond "TÖL101G Computer Science 1". As a middleware adds functionality on top of an Operating System, you should have also passed TÖL401G Operating Systems.)

    Face-to-face learning
    The course is taught if the specified conditions are met
    Prerequisites
  • Not taught this semester
    TÖL504M
    Algorithms in Bioinformatics hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    This course will cover the algorithmic aspects of bioinformatic. We  will start with an introduction to genomics and algorithms for students new to the field. The course is divided into modules, each module covers a single problem in bioinformatics that will be motivated based on current research. The module will then cover algorithms that solve the problem and variations on the problem. The problems covered are motif finding, edit distance in strings, sequence alignment, clustering, sequencing and assembly and finally computational methods for high throughput sequencing (HTS).

    Face-to-face learning
    Prerequisites
  • TÖL105M
    Computer Graphics hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    The main emphasis is on fundamental concepts and mathematics for 3D computer graphics. Two and three-dimensional transformations. Viewing projections. Light and the shading of objects. Texture mapping, blending, bump maps. Programmable shaders. Curves and surfaces. Programming assignments in WebGL.

    Face-to-face learning
    Prerequisites
  • HBV442L
    Final project hide
    Mandatory (required) course
    0
    A mandatory (required) course for the programme
    0 ECTS, credits
    Course Description
    • The topic of the Master's thesis must be chosen under the guidance of the supervisor and the Faculty Coordinator of the student. The thesis represents 60 credits. All Master's student have been assigned to a Faculty Coordinator from the beginning of their studies, who advises the student regarding the organization of the program. If a student does not have a supervisor for the final project, he / she must turn to the Faculty Coordinator for assistance.
    • The choice of topic is primarily the responsibility of the student in collaboration with his or her project supervisor. The topic of the project should fall within the student's area of study, i.e. course of study and chosen specialisation.
    • The master’s student writes a thesis according to the School’s template and defends it in a master’s defense.
    • Final project exam is divided into two parts: Oral examination and open lecture
    • Present at the oral exam is the student, supervisor, examiner and members of the Master's committee. The student presents a brief introduction on his / her project. It is important that the objectives and research question(s) are clearly stated, and that main findings and lessons to be drawn from the project are discussed.
    • The student delivers a thesis and a project poster.
    • According to the rules of the Master's program, all students who intend to graduate from the School of Engineering and Natural Sciences need to give a public lecture on their final project.
    • All students graduating from the University of Iceland shall submit an electronic copy of their final Master's thesis to Skemman.is. Skemman is the digital repository for all Icelandic universities and is maintained by the National and University Library.
    • According to regulations of University of Iceland all MS thesis should have open access after they have been submitted to Skemman.

    Learning Outcomes:

    Upon completion of an MS thesis, the student should be able to:

    • Formulate engineering design project  / research questions
    • Use an appropriate theoretical framework to shed light on his / her topic
    • Analyze and solve engineering tasks in a specialized field.
    • Perform a literature search and a thorough review of the literature.
    • Demonstrate initiative and independent creative thinking.
    • Use economic methodology to answer a specific research question
    • Competently discuss the current knowledge within the field and contribute to it with own research
    • Work with results, analyze uncertainties and limitations and interpret results.
    • Assess the scope of a research project and plan the work accordingly
    • Effectively display results and provide logical reasoning and relate results to the state of knowledge.
    Self-study
    Prerequisites
    Part of the total project/thesis credits
  • Not taught this semester
    HBV103M
    Software Maintenance hide
    Mandatory (required) course
    6
    A mandatory (required) course for the programme
    6 ECTS, credits
    Course Description

    Usually taught every second year (typically in fall of odd years, but this is subject to change in 2024).

    The first part of the course is based on flipped-classroom style weekly reading, videos and assignments on:

    • Evolution of Software and Lehman’s laws,
    • Maintenance processes,
    • Metrics useful for maintenance,
    • Software analysis,
    • Re-engineering,
    • Reverse engineering,
    • Code Smells & Refactoring,
    • Basics of (Regression-)Testing,
    • Design principles to support change & Design Patterns,
    • Tools for software maintenance (including advanced features of an IDE).

    In the second part of this course, these techniques will be applied in order to maintain a real legacy software written in Java.

    Note: while this is an "M" course, it is rather on MSc. level. BSc. students who take this course need to be advanced in their BSc. studies and you need solid Java programming experience: we will maintain a complex software and being able to understand how such a grown software works and to fix bugs is even more difficult to write such a software from scratch. Hence, you should have passed HBV501G Software Project 1, preferably even HBV601G Software Project 2. (It is impossible to maintain a software if you would not even be able to develop it.) Also, BSc. students should not take this course, if they know that they are going to continue with MSc. studies, because they might then experience a lack of suitable courses in their MSc. studies.

    Face-to-face learning
    The course is taught if the specified conditions are met
    Prerequisites
  • TÖL104M
    Network Measurements and Analysis hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    This course provides an introduction to carrying out different measurements in Internet, an overview on related software tools, and advanced data analysis methods. We discuss, e.g., both passive and active packet, flow and routing measurements, as well as, some selected techniques related to cyber security operations (e.g. detection of Botnets and anomalies). Course includes also a sufficient coverage of related ethical and legal questions. In course exercises, students process real measurement data using statistical and mathematical software packages (e.g., NumPy or R), and carry out various network measurements. The measurement data are analysed and reported.

    Course composition:

    1. Lectures (first part)
    2. Laboratory work and self-study (second part; measurements)
    3. Final presentations (optional)

    Face-to-face learning
    Prerequisites
  • HBV507M
    Usable Privacy and Security hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    Survey of the field of usable security and privacy with an emphasis on emerging technologies. Topics include authentication, location privacy, social network privacy, behavioral advertising, - health privacy, anonymity, cryptocurrency, technical writing and ethical conduct of usable privacy and security research.

    Face-to-face learning
    Prerequisites
  • REI505M
    Machine Learning hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    An overview of some of the main concepts, techniques and algorithms in machine learning. Supervised learning and unsupervised learning. Data preprocessing and data visualization. Model evaluation and model selection. Linear regression, nearest neighbors, support vector machines, decision trees and ensemble methods. Deep learning. Cluster analysis and the k-means algorithm. The students implement simple algorithms in Python and learn how to use specialized software packages. At the end of the course the students work on a practical machine learning project.

    Face-to-face learning
    Prerequisites
  • Not taught this semester
    REI506M
    Machine Learning for Earth Observation powered by Supercomputers hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    This course exposes the students to the physical principles underlying satellite observations of Earth by passive sensors, as well as parallel Deep Learning (DL) algorithms that scale on High Performance Computing (HPC) systems. 

    For the different theoretical concepts (represented by 4 modules), the course provides hands-on exercises. These exercises are part of a project in the context of Remote Sensing (RS) image classification that the students are asked to develop during the whole duration of the course.

    Face-to-face learning
    Prerequisites
  • TÖL103M
    Programming Projects on Internet of Things hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    This course offers a hands-on introduction to programming small devices (microcontrollers, single-board computers) used in the context of Internet of Things, sensor networking, and home automation.

    Such devices are often equipped with a large number of I/O pins, some RAM and flash memory, and wireless communication capabilities (e.g. WiFi and/or Bluetooth), making them attractive for tasks involving data acquisition,
    processing, and wireless communication.

    The course consists of bi-weekly programming tasks dealing with serial communication, data acquisition and analysis, programming of real-time O/S (RTOS), wireless communication and TCP/IP client-servers paradigm.

    The biweekly assignments lead to a final project.

    Face-to-face learning
    Prerequisites
  • Not taught this semester
    TÖL109F
    From an Idea to Reality hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    The course has been in development for over a decade under the name "Computer Systems and Marketing". 

    The course is based on teacher lectures and individual and group projects that help students to think outside the box. Teacher will tell of his experiences of making ideas become real and have a special focus on the mistakes that have been made along with the successful stories.
    The final project of the course is a business plan that will be presented in an oral final exam. The business plan focuses on the idea of each student and how the student plans to realize his project.

    Face-to-face learning
    Prerequisites
  • TÖL502M
    Human Computer Interaction hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    Usually taught every second year.

    The objective of the course is to allow students to examine more closely than is done in the introductory course Graphical User Interface Programming  HBV201G specific factors of HCI. The factors covered are user interface design using prototyping, programming of smart devices and users‘ acceptability of the software. There will be emphasis on different techniques and tools to develop prototypes. Also, on the design of user interfaces and native programming for smart phones or pads. The development process will be aimed at ensuring accessibility and acceptability of users. Students work on small projects individually, or on larger projects in groups. 

    Face-to-face learning
    The course is taught if the specified conditions are met
    Prerequisites
  • TÖL506M
    Introduction to deep neural networks hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    In this course we cover deep neural networks and methods related to them. We study networks and methods for image, sound and text analysis. The focus will be on applications and students will present either a project or a recent paper in this field.

    Face-to-face learning
    Prerequisites
  • VON001F
    Thesis skills: project management, writing skills and presentation hide
    Elective course
    4
    Free elective course within the programme
    4 ECTS, credits
    Course Description

    Introduction to the scientific method. Ethics of science and within the university community.
    The role of the student, advisors and external examiner. Effective and honest communications.
    Conducting a literature review, using bibliographic databases and reference handling. Thesis structure, formulating research questions, writing and argumentation. How scientific writing differs from general purpose writing. Writing a MS study plan and proposal. Practical skills for presenting tables and figures, layout, fonts and colors. Presentation skills. Project management for a thesis, how to divide a large project into smaller tasks, setting a work plan and following a timeline. Life after graduate school and being employable.

    Face-to-face learning
    Online learning
    Prerequisites
  • Spring 2
  • Not taught this semester
    RAF617M
    Fundaments of the Internet hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    Modern day telecommunications are characterised by the fact that communicated data is carried on fixed telecommunications infrastructure on a majority of the path between tranmitter and receiver. Wireless infrastructure often conveys the signals at the end of the path. This yields both high speed and the comfort of wireless communications. It is of utmost importance for engineers working in telecoms to have a fundamental knowledge of fixed networks and the range of technologies deployed.

    In this course, the structure of fixed backbone and access networks will be described. Optical fibre and related technologies will be introduced, e.g. DWDM, SDH, Ethernet, ATM and MPLS-TP. Access network technologies on copper, coax and optical fibres will be treated, e.g. ADSL. VDSL, G.fast and  DOCSIS. Different FTTH (Fibre to the Home) technologies will be treated such as PON (Passive Optical Network), Active Ethernet and point-to-point Ethernet. 

    IP (Internet Protocol) has become a fundamental technology for modern fixed networks. IP native technologies will be described from the physical to the application layer. On the link layer, Ethernet will be in the focus as well as MPLS. Circuit and packet switching will be treated as well as circuit and packet orientation of networks. Sevices such as PSTN, VoIP, OTT and P2P will be treated. Backhauling of wireless networks such as mobile networks and Wi-Fi will also be treated.
    In introduction to network virtualisation and network function virtualisation (NFV) will be given as well as software defined networking (SDN). Legal and regulatory aspects will be introduced and aspects like network neutrality discfussed. Important players and stakeholders will be discussed, e.g. Google, Apple, Microsoft, Netflix and telecommunications service providers.
    Finally, local area networks will be discussed, home networking, smart homes, set-top-boxes, NAS, PLC, plastic optical fibres, MOCA and Wi-Fi introduced.

    The teaching form will be lectures and projects on IP communications will be worked. Students will write four papers on selected subjects and give presentations. 

    Face-to-face learning
    Prerequisites
  • IÐN216F
    Field Course in Innovation and Entrepreneurship (II) hide
    Elective course
    7,5
    Free elective course within the programme
    7,5 ECTS, credits
    Course Description

    The course is a continuation of the course "Field Course in Innovation and Entrepreneurship (I)". This part of the course consists of detailed development of the business model related to a particular business opportunity. This work takes place in groups, where cross-disciplinary collaboration, between individuals with a background in business and individuals with a background in a particular technical or professional field related to the relevant opportunity, is emphasized. Projects can originate in an independent business idea or in collaboration with companies that partner with the course. In both cases, the emphasis will be on product or service develepment, built on technical or professional expertise, where the business case of the opportunity and its verification is in the foreground.

    Face-to-face learning
    Prerequisites
    Course taught second half of the semester
  • IÐN222F
    Field Course in Innovation and Entrepreneurship (I) hide
    Elective course
    7,5
    Free elective course within the programme
    7,5 ECTS, credits
    Course Description

    The course is taught in two parts, and the expectation is that students register for both parts. The course will cover the practical issues related to innovation and entrepreneurship. It covers the emergence of a business idea and the initial evaluation of the business opportunity, and the development and testing of a business model. This part of the course consists of lectures and case discussions that deal with various aspects of innovation and entrepreneurship: Analysis of business opportunities, evaluation of market size and unit contribution, the management of organizational units that are involved in innovation, financing, and other issues. Students will also tackle projects where they apply the methods taught in the class to isolated tasks in product and business development in both new and existing firms.

    Face-to-face learning
    Prerequisites
    Course taught first half of the semester
  • Not taught this semester
    LVF601M
    Introduction to Systems Biology hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    Systems biology is an interdisciplinary field that studies the biological phenomena that emerge from multiple interacting biological elements. Understanding how biological systems change across time is a particular focus of systems biology. In this course, we will prioritize aspects of systems biology relevant to human health and disease.

    This course provides an introduction to 1) basic principles in modelling molecular networks, both gene regulatory and metabolic networks; 2) cellular phenomena that support homeostasis like tissue morphogenesis and microbiome resilience, and 3) analysis of molecular patterns found in genomics data at population scale relevant to human disease such as patient classification and biomarker discovery. In this manner, the course covers the three major scales in systems biology: molecules, cells and organisms.

    The course activities include reading and interpreting scientific papers, implementation of computational algorithms, working on a research project and presentation of scientific results.

    Lectures will comprise of both (1) presentations on foundational concepts and (2) hands-on sessions using Python as the programming language. The course will be taught in English.

    Face-to-face learning
    Prerequisites
  • REI204M
    High Performance Computing hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    Design of parallel computers and parallel programming models. Shared memory architecture. Message passing and distributed memory architecture. Parallel programming of computer clusters using MPI and multicore programming using OpenMP. Parallel algorithms for sorting, searching, linear algebra, and various graph problems.

    Course topics will be very similar like HPC in Fall 2019:

    http://www.morrisriedel.de/hpc-course-fall-2019

    Positioning in the Field of High-Performance Computing (HPC)

    • Consists of techniques for programming & using large-scale HPC Systems
    • Approach: Get a broad understanding of what HPC is and what can be done
    • Goal: Train general HPC techniques and systems and selected details of domain-specific applications

    Course Motivation

    Parallel processing and distributed computing

    • Matured over the past three decades
    • Both emerged as a well-developed field in computer science
    • Still a lot of innovation, e.g. from hardware/software

    ‘Scientific computing‘ with Maple, Matlab, etc.

    • Performed on small (‘serial‘) computing machines like Desktop PCs or Laptops
    • An increasing number of cores enables ‘better scientific computing‘ today
    • Good for small & fewer complex applications, quickly reach memory limits

    ‘Advanced scientific computing‘

    • Used with computational simulations and large-scale machine & deep learning
    • Performed on large parallel computers; often scientific domain-specific approaches
    • Use orders of magnitude multi-core chips & large memory & specific many-core chips
    • Enables ‘simulations of reality‘ - often based on known physical laws and numerical methods

    Face-to-face learning
    Prerequisites
  • Not taught this semester
    TÖL202M
    Compilers hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    The design of programming languages. The structure and design of compilers. Lexical analysis. Top down and bottom up parsing. Code generation. Each student writes his or her own compiler.

    Face-to-face learning
    The course is taught if the specified conditions are met
    Prerequisites
  • Not taught this semester
    TÖL604M
    Algorithms in Bioinformatics hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    This course will cover the algorithmic aspects of bioinformatic. We  will start with an introduction to genomics and algorithms for students new to the field. The course is divided into modules, each module covers a single problem in bioinformatics that will be motivated based on current research. The module will then cover algorithms that solve the problem and variations on the problem. The problems covered are motif finding, edit distance in strings, sequence alignment, clustering, sequencing and assembly and finally computational methods for high throughput sequencing (HTS).

    Face-to-face learning
    Prerequisites
  • TÖL605M
    Fundamentals of Ethical Hacking hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    Ethical hacking is the discipline of attacker perspective security analysis. Using tools and techniques used by malicious hackers, ethical hackers gain unique and unique and valuable insights used for improving system security.

    This course will introduce students to the fundamentals of ethical hacking tools and techniques. Students will begin by configuring a secure lab using virtualisation tools. Then every two weeks a new stage of the ethical hacking methodology and some related tools will be introduced. The students will submit weekly lab reports evidencing their theoretical and practical understanding of the methodology and tools. 

    For the best experience, students should own a PC able to run virtualisation software with an x86 image. Mac users with Apple CPU or those with PCs whose CPUs lack virtualisation support or who have limited RAM might have issues running a stable lab on their machine. Students who lack suitable hardware can use VMs on the department's cybersecurity server infrastructure.

    Face-to-face learning
    Prerequisites
  • TÖL606M
    Seminar in computer science hide
    Mandatory (required) course
    2
    A mandatory (required) course for the programme
    2 ECTS, credits
    Course Description

    Students in computer science, software engineering and computational engineering attend weekly seminars where they present talks on their research projects or other related topics of interest.

    Face-to-face learning
    Prerequisites
  • HBV205M
    Software Testing hide
    Mandatory (required) course
    6
    A mandatory (required) course for the programme
    6 ECTS, credits
    Course Description

    Usually taught every second year (typically in spring of odd years, but this is subject to change in 2024).

    This course covers testing of software. Besides basic foundations, this includes both dynamic testing where the software under test is executed and static approaches where software and other artefacts produced during software development are investigated without executing them. The focus of this course is, however, on dynamic testing. The different levels of testing (component test, integration test, system and acceptance test) and types of testing (functional, non-functional, structural and change-related) are covered as well as different test design techniques (black box test and white box test). Furthermore, test management and principles of test tools are discussed. In addition, selected advanced topics may be covered (for example, test languages, testing of object-oriented software, test process improvement, agile testing). The covered topics are a superset of the International Software Testing Qualifications Board's (ISTQB) certified tester foundation level syllabus.

    The first part of the course is based on flipped-classroom style weekly reading, videos and assignments. In the second part, students work independently on some project related to software testing.

    Note: while this is an "M" course, it is rather on MSc. level. BSc. students who take this course need to be very advanced in their BSc. studies, i.e. have experience in programming languages, software development and applying it in some software project, but should also be familiar with theoretical concepts from automata theory.

    Also, BSc. students should not take this course, if they know that they are going to continue with MSc. studies, because they might then experience a lack of suitable courses in their MSc. studies.

    Face-to-face learning
    The course is taught if the specified conditions are met
    Prerequisites
  • HBV442L
    Final project hide
    Mandatory (required) course
    0
    A mandatory (required) course for the programme
    0 ECTS, credits
    Course Description
    • The topic of the Master's thesis must be chosen under the guidance of the supervisor and the Faculty Coordinator of the student. The thesis represents 60 credits. All Master's student have been assigned to a Faculty Coordinator from the beginning of their studies, who advises the student regarding the organization of the program. If a student does not have a supervisor for the final project, he / she must turn to the Faculty Coordinator for assistance.
    • The choice of topic is primarily the responsibility of the student in collaboration with his or her project supervisor. The topic of the project should fall within the student's area of study, i.e. course of study and chosen specialisation.
    • The master’s student writes a thesis according to the School’s template and defends it in a master’s defense.
    • Final project exam is divided into two parts: Oral examination and open lecture
    • Present at the oral exam is the student, supervisor, examiner and members of the Master's committee. The student presents a brief introduction on his / her project. It is important that the objectives and research question(s) are clearly stated, and that main findings and lessons to be drawn from the project are discussed.
    • The student delivers a thesis and a project poster.
    • According to the rules of the Master's program, all students who intend to graduate from the School of Engineering and Natural Sciences need to give a public lecture on their final project.
    • All students graduating from the University of Iceland shall submit an electronic copy of their final Master's thesis to Skemman.is. Skemman is the digital repository for all Icelandic universities and is maintained by the National and University Library.
    • According to regulations of University of Iceland all MS thesis should have open access after they have been submitted to Skemman.

    Learning Outcomes:

    Upon completion of an MS thesis, the student should be able to:

    • Formulate engineering design project  / research questions
    • Use an appropriate theoretical framework to shed light on his / her topic
    • Analyze and solve engineering tasks in a specialized field.
    • Perform a literature search and a thorough review of the literature.
    • Demonstrate initiative and independent creative thinking.
    • Use economic methodology to answer a specific research question
    • Competently discuss the current knowledge within the field and contribute to it with own research
    • Work with results, analyze uncertainties and limitations and interpret results.
    • Assess the scope of a research project and plan the work accordingly
    • Effectively display results and provide logical reasoning and relate results to the state of knowledge.
    Self-study
    Prerequisites
    Part of the total project/thesis credits
  • TÖL212F
    Governance of the Internet hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    This course aims to provide a comprehensive overview of Internet governance and challenges in regulating cyberspace. Topics include the evolution of formalized internet governance, and the role of national governments, supranational organizations and private corporations in shaping the international regulatory framework for Internet governance.

    The course will also explore the balance of privacy versus security, including the role of regulations such as GDPR and NIS2 to establish minimum requirements of “privacy” or “security” by design. The emergence of a “cyber-public” space has created new challenges for enforcing laws ranging from copyright to illegal content. Furthermore, the question of public/private cooperation in fighting against cybercrime and regulatory challenges regarding the emergence of cyberwarfare will be examined.

    This course will be taught as a series of weekly lectures and bi-weekly seminars for student discussions and debates in internet governance topics.

    Face-to-face learning
    Prerequisites
  • Not taught this semester
    RAF617M
    Fundaments of the Internet hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    Modern day telecommunications are characterised by the fact that communicated data is carried on fixed telecommunications infrastructure on a majority of the path between tranmitter and receiver. Wireless infrastructure often conveys the signals at the end of the path. This yields both high speed and the comfort of wireless communications. It is of utmost importance for engineers working in telecoms to have a fundamental knowledge of fixed networks and the range of technologies deployed.

    In this course, the structure of fixed backbone and access networks will be described. Optical fibre and related technologies will be introduced, e.g. DWDM, SDH, Ethernet, ATM and MPLS-TP. Access network technologies on copper, coax and optical fibres will be treated, e.g. ADSL. VDSL, G.fast and  DOCSIS. Different FTTH (Fibre to the Home) technologies will be treated such as PON (Passive Optical Network), Active Ethernet and point-to-point Ethernet. 

    IP (Internet Protocol) has become a fundamental technology for modern fixed networks. IP native technologies will be described from the physical to the application layer. On the link layer, Ethernet will be in the focus as well as MPLS. Circuit and packet switching will be treated as well as circuit and packet orientation of networks. Sevices such as PSTN, VoIP, OTT and P2P will be treated. Backhauling of wireless networks such as mobile networks and Wi-Fi will also be treated.
    In introduction to network virtualisation and network function virtualisation (NFV) will be given as well as software defined networking (SDN). Legal and regulatory aspects will be introduced and aspects like network neutrality discfussed. Important players and stakeholders will be discussed, e.g. Google, Apple, Microsoft, Netflix and telecommunications service providers.
    Finally, local area networks will be discussed, home networking, smart homes, set-top-boxes, NAS, PLC, plastic optical fibres, MOCA and Wi-Fi introduced.

    The teaching form will be lectures and projects on IP communications will be worked. Students will write four papers on selected subjects and give presentations. 

    Face-to-face learning
    Prerequisites
  • TÖL608M
    Algorithms in the real world hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    The course will cover the design and analysis of algorithms, with emphasis on algorithms for large datasets and real world applications.

    The algorithms covered will be drawn from various subfields, e.g. data and text compression, error correcting codes, large scale text search and search engines, parallel programming, GPU programming, streaming algorithms, probabilistic algorithms, nearest neighbor search in high dimensional datasets.

    Prerequisites
  • REI603M
    The AI lifecycle hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    In this course, we study the AI lifecycle, i.e. the productionisation of AI methods.
    We explore the following parts of the lifecycle:
    - Data collection and preparation
    - Feature engineering
    - Model training
    - Model evaluation
    - Model deployment
    - Model serving
    - Model monitoring
    - Model maintenance
    Three large projects will be handed out during the semester where students compete to solve AI problems.

    Face-to-face learning
    Prerequisites
  • Not taught this semester
    TÖL028M
    Seminar on Machine Learning hide
    Elective course
    2
    Free elective course within the programme
    2 ECTS, credits
    Course Description

    In this course, students familiarize themselves with a particular topic in artificial intelligence (e.g. computer vision, natural language processing, data processing, generative modeling or other topics) by studying relevant academic literature and preparing a talk on this topic for their classmates.

    Students can choose from a selection of topics provided by the teacher, or propose a topic that they are interested in on their own.

    Besides learning about the subject matter of the talks, the goal of the course is to practice presentation skills.

    The course starts on June 8th and will finish on August 17th. 

    Face-to-face learning
    Prerequisites
  • Not taught this semester
    TÖL211F
    From an idea to reality II hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    The course is a continuation of the course "From an idea to reality". Students are expected to continue to develop their idea that they had in the "From an Idea to Reality" course. If the students are not satisfied with their previous idea and think they have come up with a better idea, that's fine, and if the teacher is satisfied with the new idea the student can continue with the new idea.

    Students must apply for grants in the competition fund. Practice pitching your idea to potential investors and your fellow students.

    The teacher will cover accounting and planning based on probability.

    The teacher will cover company formation and tax matters.

    Face-to-face learning
    Prerequisites
    Attendance required in class
  • TÖL212M
    Reasoned Programming hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    Fundamental concepts in program verification and reasoned programming are covered. Emphasis is placed on using reasoned programming to develop solid and proved versions of well-known algorithms, especially in the areas of searching, sorting, and binary search trees. Among algorithms covered are various versions of insertion sort, selection sort, quicksort, binary search, and searching in binary search trees. Emphasis will be placed on deepening the understanding of the algorithms as well as getting a good grip on program verification. Some exercises will use verification tools such as Dafny or OpenJML.

    Face-to-face learning
    The course is taught if the specified conditions are met
    Prerequisites
  • Year unspecified
  • TÖL029M
    Introduction to Information Security hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    Þetta námskeið byggir grunn að skilningi á lykilatriðum sem tengjast verndun upplýsinga, ákvörðun á verndarstigi og viðbrögð við öryggisatvikum, og hönnun á samræmdu raunhæfu upplýsingaöryggiskerfi, með viðeigandi innbrotsskynjun og tilkynningum.  Tilgangur námskeiðsins er að veita nemandanum yfirsýn yfir svið upplýsingaöryggis og upplýsingatrygginga.  Nemendur munu sjá ýmsar gerðir öryggisaðgerða, aðferðafræða og verklags.  Umfjöllunin mun taka fyrir skoðun og vernd upplýsingaeigna, uppgötvun og viðbrögð við ógnum við upplýsingaeignir, verklagsreglur fyrir og eftir öryggisatvik, tæknileg og stjórnunarleg viðbrögð og yfirlit yfir skipulagningu upplýsingaöryggis og starfsmannahald.  Meðal efnis eru áhættumat, auðkenning, veföryggi, öryggi forrita, persónuvernd og gagnavernd, kynning á dulmálskóðun, öryggisarkitektúr, eldveggir og önnur tæki og netskipulag.

    Face-to-face learning
    Prerequisites
  • TÖL213M
    Applied Cryptography hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    In this course, students will take a practical approach to understanding the building and breaking of cryptographic implementations. The first half of this module will involve programming tasks while the second half will involve two mini projects. 

    Starting from simplistic approaches used historically, such as the Caeser cipher, to modern day protocols used to secure telecommunications ubiquitously, such as AES and TLS. Students will also consider the role of cryptography in society more broadly by researching how contentious technologies such as end-to-end encryption and Tor impact justice and privacy, and distributed ledgers can enable the decentralisation of key societal systems. Finally, the course will conclude with a mini project demonstrating a practical attack against a cryptographic implementation using ethical hacking approaches e.g. WiFi cracking, password bruteforcing or man-in-the-middle attack of an encrypted connection to sniff traffic. 

    The course will encompass the following stages: 

    1) Building cryptographic primitives in a programming language of choice. 

    2) Application engineering best practices. 

    3) A research project in cryptography and society. 

    4) A practical project in ethical hacking approaches to demonstrating weaknesses in cryptography implementations. 

    Face-to-face learning
    Prerequisites
  • Not taught this semester
    TÖL113F, TÖL113F
    Quantum Cryptography hide
    Elective course
    6/6
    Free elective course within the programme
    6/6 ECTS, credits
    Course Description

    In this course, students learn about quantum computing and, in particular, quantum cryptography. Quantum computing will cause a revolution in cryptography as many cryptosystems based on computational complexity will become obsolete. They will replaced by so-called quantum secure crypto systems.

    Face-to-face learning
    Prerequisites
  • TÖL113F, TÖL113F
    Quantum Computing and Quantum Cryptography hide
    Elective course
    6/6
    Free elective course within the programme
    6/6 ECTS, credits
    Course Description

    In this course, students learn about quantum computing and quantum cryptography. Quantum computing will cause a revolution in cryptography as many cryptosystems based on computational complexity will become obsolete. They will be replaced by so-called quantum secure crypto systems.

    Topics covered:

    • Cryptography: An Overview
    • Quantum Mechanics
    • Quantum Cryptography
    • An Introduction to Error-Correcting Codes
    • Quantum Cryptography Revisited
    • Generalized Reed-Solomon Codes
    • Quantum Computing

    This is a regular course: the students are expected to attend class every week. 

    Face-to-face learning
    Prerequisites
Year unspecified
  • Whole year courses
  • GKY001M
    Mentor in Sprettur hide
    Elective course
    5
    Free elective course within the programme
    5 ECTS, credits
    Course Description

    In the course, the student's task consists in being a mentor for participants that are upper secondary school students and university students in the project "Sprettur". Mentors' main role is to support and encourage participants in their studies and social life. As well as creating a constructive relationship with the participants, being a positive role model, and participating in events organized in Sprettur. The mentor role centers around building relationships and spending meaningful time together with the commitment to support participants. 

    Sprettur is a project that supports students with an immigrant or refugee background who come from families with little or no university education. The students in this course are mentors of the participants and are paired together based on a common field of interest. Each mentor is responsible for supporting two participants. Mentors plan activities with participants and spend three hours a month (from August to May) with Sprettur’s participants, three hours a month in a study group and attend five seminars that are spread over the school year. Students submit journal entries on Canvas in November and March. Diary entries are based on reading material and students' reflections on the mentorship. Compulsory attendance in events, study groups, and seminars. The course is taught in Icelandic and English. 

    Students must apply for a seat in the course. Applicants go through an interview process and 15-30 students are selected to participate. 

    See the digital application form. 

    More information about Sprettur can be found here: www.hi.is/sprettur  

    Face-to-face learning
    The course is taught if the specified conditions are met
    Prerequisites
    Attendance required in class
  • Fall
  • HBV505M
    Software Quality Management hide
    Mandatory (required) course
    6
    A mandatory (required) course for the programme
    6 ECTS, credits
    Course Description

    The course is based on flipped-classroom style weekly reading, videos and assignments on software quality management-related aspects of the Software Development Life Cycle (SDLC) and by covering some parts of DevOps also Application Lifecycle Management (ALM). In parallel to theoretical concepts, the application of source code-centric tools relevant for quality management is trained by applying them to a codebase throughout the course using the ALM tool GitLab. The concepts and tools are independent from a particular software development process and cover:

    • Software Quality Foundations, Software Quality Models.
    • Configuration management (CM) and traceability:
      • Version management (e.g. Git),
      • Change management (e.g. issue tracker),
      • Build management (e.g. Maven),
      • Release management
    • Continuous integration (CI) (e.g. using GitLab pipelines).
    • Integrating testing into a CI pipeline (e.g. using JUnit and GitLab).
    • Reviews (e.g. tool-based code review)
    • Static analysis (e.g. SonarCloud)
    • Metrics for quality management (product and process metrics).
    • Quality standards:
      • Software Life Cycle Processes,
      • Software Process Improvement and maturity assessment (e.g. CMMI).
    • Using a Wiki to create a quality plan and other documentation.

    Students chose their own codebase (e.g. from the Software Project 1 or 2 course) to which they apply the concepts and tools tought in this course. While the teaching material and tools assumes Java as programming language, students are welcome to use a codebase in another programming language.

    Software quality in agile development processes is covered by student presentations at the end of the course.

    Note: while this is an "M" course, it is rather on MSc. level. BSc. students who take this course need to be advanced in their BSc. studies and you need Java programming experience. Hence, you should have passed HBV501G Software Project 1, preferably even HBV601G Software Project 2.
    Also, BSc. students should not take this course, if they know that they are going to continue with MSc. studies, because they might then experience a lack of suitable courses in their MSc. studies.

    Face-to-face learning
    The course is taught if the specified conditions are met
    Prerequisites
  • Not taught this semester
    IÐN101M
    Quality Management hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    Organization and management systems. The systems approach. Quality management, quality concepts. Historical development of quality management. Quality cost. Quality in manufacturing. x, R, p, c and cusum-chart. Statistical quality control. Tests of hypotheses. Acceptance sampling - OC curves. Inspection planning. Quality systems and quality assurance. Quality handbook and organizing for quality. ISO 9001. Total Quality Management, improvement step by step, motivations theories. Quality tools. Practical assignment: Designing a quality system for a company.

    Face-to-face learning
    Prerequisites
  • TÖL029M
    Introduction to Information Security hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    Þetta námskeið byggir grunn að skilningi á lykilatriðum sem tengjast verndun upplýsinga, ákvörðun á verndarstigi og viðbrögð við öryggisatvikum, og hönnun á samræmdu raunhæfu upplýsingaöryggiskerfi, með viðeigandi innbrotsskynjun og tilkynningum.  Tilgangur námskeiðsins er að veita nemandanum yfirsýn yfir svið upplýsingaöryggis og upplýsingatrygginga.  Nemendur munu sjá ýmsar gerðir öryggisaðgerða, aðferðafræða og verklags.  Umfjöllunin mun taka fyrir skoðun og vernd upplýsingaeigna, uppgötvun og viðbrögð við ógnum við upplýsingaeignir, verklagsreglur fyrir og eftir öryggisatvik, tæknileg og stjórnunarleg viðbrögð og yfirlit yfir skipulagningu upplýsingaöryggis og starfsmannahald.  Meðal efnis eru áhættumat, auðkenning, veföryggi, öryggi forrita, persónuvernd og gagnavernd, kynning á dulmálskóðun, öryggisarkitektúr, eldveggir og önnur tæki og netskipulag.

    Face-to-face learning
    Prerequisites
  • HBV442L
    Final project hide
    Mandatory (required) course
    0
    A mandatory (required) course for the programme
    0 ECTS, credits
    Course Description
    • The topic of the Master's thesis must be chosen under the guidance of the supervisor and the Faculty Coordinator of the student. The thesis represents 60 credits. All Master's student have been assigned to a Faculty Coordinator from the beginning of their studies, who advises the student regarding the organization of the program. If a student does not have a supervisor for the final project, he / she must turn to the Faculty Coordinator for assistance.
    • The choice of topic is primarily the responsibility of the student in collaboration with his or her project supervisor. The topic of the project should fall within the student's area of study, i.e. course of study and chosen specialisation.
    • The master’s student writes a thesis according to the School’s template and defends it in a master’s defense.
    • Final project exam is divided into two parts: Oral examination and open lecture
    • Present at the oral exam is the student, supervisor, examiner and members of the Master's committee. The student presents a brief introduction on his / her project. It is important that the objectives and research question(s) are clearly stated, and that main findings and lessons to be drawn from the project are discussed.
    • The student delivers a thesis and a project poster.
    • According to the rules of the Master's program, all students who intend to graduate from the School of Engineering and Natural Sciences need to give a public lecture on their final project.
    • All students graduating from the University of Iceland shall submit an electronic copy of their final Master's thesis to Skemman.is. Skemman is the digital repository for all Icelandic universities and is maintained by the National and University Library.
    • According to regulations of University of Iceland all MS thesis should have open access after they have been submitted to Skemman.

    Learning Outcomes:

    Upon completion of an MS thesis, the student should be able to:

    • Formulate engineering design project  / research questions
    • Use an appropriate theoretical framework to shed light on his / her topic
    • Analyze and solve engineering tasks in a specialized field.
    • Perform a literature search and a thorough review of the literature.
    • Demonstrate initiative and independent creative thinking.
    • Use economic methodology to answer a specific research question
    • Competently discuss the current knowledge within the field and contribute to it with own research
    • Work with results, analyze uncertainties and limitations and interpret results.
    • Assess the scope of a research project and plan the work accordingly
    • Effectively display results and provide logical reasoning and relate results to the state of knowledge.
    Self-study
    Prerequisites
    Part of the total project/thesis credits
  • Not taught this semester
    HBV103M
    Software Maintenance hide
    Mandatory (required) course
    6
    A mandatory (required) course for the programme
    6 ECTS, credits
    Course Description

    Usually taught every second year (typically in fall of odd years, but this is subject to change in 2024).

    The first part of the course is based on flipped-classroom style weekly reading, videos and assignments on:

    • Evolution of Software and Lehman’s laws,
    • Maintenance processes,
    • Metrics useful for maintenance,
    • Software analysis,
    • Re-engineering,
    • Reverse engineering,
    • Code Smells & Refactoring,
    • Basics of (Regression-)Testing,
    • Design principles to support change & Design Patterns,
    • Tools for software maintenance (including advanced features of an IDE).

    In the second part of this course, these techniques will be applied in order to maintain a real legacy software written in Java.

    Note: while this is an "M" course, it is rather on MSc. level. BSc. students who take this course need to be advanced in their BSc. studies and you need solid Java programming experience: we will maintain a complex software and being able to understand how such a grown software works and to fix bugs is even more difficult to write such a software from scratch. Hence, you should have passed HBV501G Software Project 1, preferably even HBV601G Software Project 2. (It is impossible to maintain a software if you would not even be able to develop it.) Also, BSc. students should not take this course, if they know that they are going to continue with MSc. studies, because they might then experience a lack of suitable courses in their MSc. studies.

    Face-to-face learning
    The course is taught if the specified conditions are met
    Prerequisites
  • TÖL104M
    Network Measurements and Analysis hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    This course provides an introduction to carrying out different measurements in Internet, an overview on related software tools, and advanced data analysis methods. We discuss, e.g., both passive and active packet, flow and routing measurements, as well as, some selected techniques related to cyber security operations (e.g. detection of Botnets and anomalies). Course includes also a sufficient coverage of related ethical and legal questions. In course exercises, students process real measurement data using statistical and mathematical software packages (e.g., NumPy or R), and carry out various network measurements. The measurement data are analysed and reported.

    Course composition:

    1. Lectures (first part)
    2. Laboratory work and self-study (second part; measurements)
    3. Final presentations (optional)

    Face-to-face learning
    Prerequisites
  • HBV507M
    Usable Privacy and Security hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    Survey of the field of usable security and privacy with an emphasis on emerging technologies. Topics include authentication, location privacy, social network privacy, behavioral advertising, - health privacy, anonymity, cryptocurrency, technical writing and ethical conduct of usable privacy and security research.

    Face-to-face learning
    Prerequisites
  • REI505M
    Machine Learning hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    An overview of some of the main concepts, techniques and algorithms in machine learning. Supervised learning and unsupervised learning. Data preprocessing and data visualization. Model evaluation and model selection. Linear regression, nearest neighbors, support vector machines, decision trees and ensemble methods. Deep learning. Cluster analysis and the k-means algorithm. The students implement simple algorithms in Python and learn how to use specialized software packages. At the end of the course the students work on a practical machine learning project.

    Face-to-face learning
    Prerequisites
  • Not taught this semester
    REI506M
    Machine Learning for Earth Observation powered by Supercomputers hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    This course exposes the students to the physical principles underlying satellite observations of Earth by passive sensors, as well as parallel Deep Learning (DL) algorithms that scale on High Performance Computing (HPC) systems. 

    For the different theoretical concepts (represented by 4 modules), the course provides hands-on exercises. These exercises are part of a project in the context of Remote Sensing (RS) image classification that the students are asked to develop during the whole duration of the course.

    Face-to-face learning
    Prerequisites
  • TÖL103M
    Programming Projects on Internet of Things hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    This course offers a hands-on introduction to programming small devices (microcontrollers, single-board computers) used in the context of Internet of Things, sensor networking, and home automation.

    Such devices are often equipped with a large number of I/O pins, some RAM and flash memory, and wireless communication capabilities (e.g. WiFi and/or Bluetooth), making them attractive for tasks involving data acquisition,
    processing, and wireless communication.

    The course consists of bi-weekly programming tasks dealing with serial communication, data acquisition and analysis, programming of real-time O/S (RTOS), wireless communication and TCP/IP client-servers paradigm.

    The biweekly assignments lead to a final project.

    Face-to-face learning
    Prerequisites
  • Not taught this semester
    TÖL109F
    From an Idea to Reality hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    The course has been in development for over a decade under the name "Computer Systems and Marketing". 

    The course is based on teacher lectures and individual and group projects that help students to think outside the box. Teacher will tell of his experiences of making ideas become real and have a special focus on the mistakes that have been made along with the successful stories.
    The final project of the course is a business plan that will be presented in an oral final exam. The business plan focuses on the idea of each student and how the student plans to realize his project.

    Face-to-face learning
    Prerequisites
  • TÖL502M
    Human Computer Interaction hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    Usually taught every second year.

    The objective of the course is to allow students to examine more closely than is done in the introductory course Graphical User Interface Programming  HBV201G specific factors of HCI. The factors covered are user interface design using prototyping, programming of smart devices and users‘ acceptability of the software. There will be emphasis on different techniques and tools to develop prototypes. Also, on the design of user interfaces and native programming for smart phones or pads. The development process will be aimed at ensuring accessibility and acceptability of users. Students work on small projects individually, or on larger projects in groups. 

    Face-to-face learning
    The course is taught if the specified conditions are met
    Prerequisites
  • TÖL506M
    Introduction to deep neural networks hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    In this course we cover deep neural networks and methods related to them. We study networks and methods for image, sound and text analysis. The focus will be on applications and students will present either a project or a recent paper in this field.

    Face-to-face learning
    Prerequisites
  • VON001F
    Thesis skills: project management, writing skills and presentation hide
    Elective course
    4
    Free elective course within the programme
    4 ECTS, credits
    Course Description

    Introduction to the scientific method. Ethics of science and within the university community.
    The role of the student, advisors and external examiner. Effective and honest communications.
    Conducting a literature review, using bibliographic databases and reference handling. Thesis structure, formulating research questions, writing and argumentation. How scientific writing differs from general purpose writing. Writing a MS study plan and proposal. Practical skills for presenting tables and figures, layout, fonts and colors. Presentation skills. Project management for a thesis, how to divide a large project into smaller tasks, setting a work plan and following a timeline. Life after graduate school and being employable.

    Face-to-face learning
    Online learning
    Prerequisites
  • Spring 2
  • IÐN216F
    Field Course in Innovation and Entrepreneurship (II) hide
    Mandatory (required) course
    7,5
    A mandatory (required) course for the programme
    7,5 ECTS, credits
    Course Description

    The course is a continuation of the course "Field Course in Innovation and Entrepreneurship (I)". This part of the course consists of detailed development of the business model related to a particular business opportunity. This work takes place in groups, where cross-disciplinary collaboration, between individuals with a background in business and individuals with a background in a particular technical or professional field related to the relevant opportunity, is emphasized. Projects can originate in an independent business idea or in collaboration with companies that partner with the course. In both cases, the emphasis will be on product or service develepment, built on technical or professional expertise, where the business case of the opportunity and its verification is in the foreground.

    Face-to-face learning
    Prerequisites
    Course taught second half of the semester
  • IÐN222F
    Field Course in Innovation and Entrepreneurship (I) hide
    Mandatory (required) course
    7,5
    A mandatory (required) course for the programme
    7,5 ECTS, credits
    Course Description

    The course is taught in two parts, and the expectation is that students register for both parts. The course will cover the practical issues related to innovation and entrepreneurship. It covers the emergence of a business idea and the initial evaluation of the business opportunity, and the development and testing of a business model. This part of the course consists of lectures and case discussions that deal with various aspects of innovation and entrepreneurship: Analysis of business opportunities, evaluation of market size and unit contribution, the management of organizational units that are involved in innovation, financing, and other issues. Students will also tackle projects where they apply the methods taught in the class to isolated tasks in product and business development in both new and existing firms.

    Face-to-face learning
    Prerequisites
    Course taught first half of the semester
  • TÖL605M
    Fundamentals of Ethical Hacking hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    Ethical hacking is the discipline of attacker perspective security analysis. Using tools and techniques used by malicious hackers, ethical hackers gain unique and unique and valuable insights used for improving system security.

    This course will introduce students to the fundamentals of ethical hacking tools and techniques. Students will begin by configuring a secure lab using virtualisation tools. Then every two weeks a new stage of the ethical hacking methodology and some related tools will be introduced. The students will submit weekly lab reports evidencing their theoretical and practical understanding of the methodology and tools. 

    For the best experience, students should own a PC able to run virtualisation software with an x86 image. Mac users with Apple CPU or those with PCs whose CPUs lack virtualisation support or who have limited RAM might have issues running a stable lab on their machine. Students who lack suitable hardware can use VMs on the department's cybersecurity server infrastructure.

    Face-to-face learning
    Prerequisites
  • TÖL606M
    Seminar in computer science hide
    Mandatory (required) course
    2
    A mandatory (required) course for the programme
    2 ECTS, credits
    Course Description

    Students in computer science, software engineering and computational engineering attend weekly seminars where they present talks on their research projects or other related topics of interest.

    Face-to-face learning
    Prerequisites
  • HBV205M
    Software Testing hide
    Mandatory (required) course
    6
    A mandatory (required) course for the programme
    6 ECTS, credits
    Course Description

    Usually taught every second year (typically in spring of odd years, but this is subject to change in 2024).

    This course covers testing of software. Besides basic foundations, this includes both dynamic testing where the software under test is executed and static approaches where software and other artefacts produced during software development are investigated without executing them. The focus of this course is, however, on dynamic testing. The different levels of testing (component test, integration test, system and acceptance test) and types of testing (functional, non-functional, structural and change-related) are covered as well as different test design techniques (black box test and white box test). Furthermore, test management and principles of test tools are discussed. In addition, selected advanced topics may be covered (for example, test languages, testing of object-oriented software, test process improvement, agile testing). The covered topics are a superset of the International Software Testing Qualifications Board's (ISTQB) certified tester foundation level syllabus.

    The first part of the course is based on flipped-classroom style weekly reading, videos and assignments. In the second part, students work independently on some project related to software testing.

    Note: while this is an "M" course, it is rather on MSc. level. BSc. students who take this course need to be very advanced in their BSc. studies, i.e. have experience in programming languages, software development and applying it in some software project, but should also be familiar with theoretical concepts from automata theory.

    Also, BSc. students should not take this course, if they know that they are going to continue with MSc. studies, because they might then experience a lack of suitable courses in their MSc. studies.

    Face-to-face learning
    The course is taught if the specified conditions are met
    Prerequisites
  • HBV442L
    Final project hide
    Mandatory (required) course
    0
    A mandatory (required) course for the programme
    0 ECTS, credits
    Course Description
    • The topic of the Master's thesis must be chosen under the guidance of the supervisor and the Faculty Coordinator of the student. The thesis represents 60 credits. All Master's student have been assigned to a Faculty Coordinator from the beginning of their studies, who advises the student regarding the organization of the program. If a student does not have a supervisor for the final project, he / she must turn to the Faculty Coordinator for assistance.
    • The choice of topic is primarily the responsibility of the student in collaboration with his or her project supervisor. The topic of the project should fall within the student's area of study, i.e. course of study and chosen specialisation.
    • The master’s student writes a thesis according to the School’s template and defends it in a master’s defense.
    • Final project exam is divided into two parts: Oral examination and open lecture
    • Present at the oral exam is the student, supervisor, examiner and members of the Master's committee. The student presents a brief introduction on his / her project. It is important that the objectives and research question(s) are clearly stated, and that main findings and lessons to be drawn from the project are discussed.
    • The student delivers a thesis and a project poster.
    • According to the rules of the Master's program, all students who intend to graduate from the School of Engineering and Natural Sciences need to give a public lecture on their final project.
    • All students graduating from the University of Iceland shall submit an electronic copy of their final Master's thesis to Skemman.is. Skemman is the digital repository for all Icelandic universities and is maintained by the National and University Library.
    • According to regulations of University of Iceland all MS thesis should have open access after they have been submitted to Skemman.

    Learning Outcomes:

    Upon completion of an MS thesis, the student should be able to:

    • Formulate engineering design project  / research questions
    • Use an appropriate theoretical framework to shed light on his / her topic
    • Analyze and solve engineering tasks in a specialized field.
    • Perform a literature search and a thorough review of the literature.
    • Demonstrate initiative and independent creative thinking.
    • Use economic methodology to answer a specific research question
    • Competently discuss the current knowledge within the field and contribute to it with own research
    • Work with results, analyze uncertainties and limitations and interpret results.
    • Assess the scope of a research project and plan the work accordingly
    • Effectively display results and provide logical reasoning and relate results to the state of knowledge.
    Self-study
    Prerequisites
    Part of the total project/thesis credits
  • TÖL212F
    Governance of the Internet hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    This course aims to provide a comprehensive overview of Internet governance and challenges in regulating cyberspace. Topics include the evolution of formalized internet governance, and the role of national governments, supranational organizations and private corporations in shaping the international regulatory framework for Internet governance.

    The course will also explore the balance of privacy versus security, including the role of regulations such as GDPR and NIS2 to establish minimum requirements of “privacy” or “security” by design. The emergence of a “cyber-public” space has created new challenges for enforcing laws ranging from copyright to illegal content. Furthermore, the question of public/private cooperation in fighting against cybercrime and regulatory challenges regarding the emergence of cyberwarfare will be examined.

    This course will be taught as a series of weekly lectures and bi-weekly seminars for student discussions and debates in internet governance topics.

    Face-to-face learning
    Prerequisites
  • Not taught this semester
    RAF617M
    Fundaments of the Internet hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    Modern day telecommunications are characterised by the fact that communicated data is carried on fixed telecommunications infrastructure on a majority of the path between tranmitter and receiver. Wireless infrastructure often conveys the signals at the end of the path. This yields both high speed and the comfort of wireless communications. It is of utmost importance for engineers working in telecoms to have a fundamental knowledge of fixed networks and the range of technologies deployed.

    In this course, the structure of fixed backbone and access networks will be described. Optical fibre and related technologies will be introduced, e.g. DWDM, SDH, Ethernet, ATM and MPLS-TP. Access network technologies on copper, coax and optical fibres will be treated, e.g. ADSL. VDSL, G.fast and  DOCSIS. Different FTTH (Fibre to the Home) technologies will be treated such as PON (Passive Optical Network), Active Ethernet and point-to-point Ethernet. 

    IP (Internet Protocol) has become a fundamental technology for modern fixed networks. IP native technologies will be described from the physical to the application layer. On the link layer, Ethernet will be in the focus as well as MPLS. Circuit and packet switching will be treated as well as circuit and packet orientation of networks. Sevices such as PSTN, VoIP, OTT and P2P will be treated. Backhauling of wireless networks such as mobile networks and Wi-Fi will also be treated.
    In introduction to network virtualisation and network function virtualisation (NFV) will be given as well as software defined networking (SDN). Legal and regulatory aspects will be introduced and aspects like network neutrality discfussed. Important players and stakeholders will be discussed, e.g. Google, Apple, Microsoft, Netflix and telecommunications service providers.
    Finally, local area networks will be discussed, home networking, smart homes, set-top-boxes, NAS, PLC, plastic optical fibres, MOCA and Wi-Fi introduced.

    The teaching form will be lectures and projects on IP communications will be worked. Students will write four papers on selected subjects and give presentations. 

    Face-to-face learning
    Prerequisites
  • TÖL608M
    Algorithms in the real world hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    The course will cover the design and analysis of algorithms, with emphasis on algorithms for large datasets and real world applications.

    The algorithms covered will be drawn from various subfields, e.g. data and text compression, error correcting codes, large scale text search and search engines, parallel programming, GPU programming, streaming algorithms, probabilistic algorithms, nearest neighbor search in high dimensional datasets.

    Prerequisites
  • REI603M
    The AI lifecycle hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    In this course, we study the AI lifecycle, i.e. the productionisation of AI methods.
    We explore the following parts of the lifecycle:
    - Data collection and preparation
    - Feature engineering
    - Model training
    - Model evaluation
    - Model deployment
    - Model serving
    - Model monitoring
    - Model maintenance
    Three large projects will be handed out during the semester where students compete to solve AI problems.

    Face-to-face learning
    Prerequisites
  • Not taught this semester
    TÖL028M
    Seminar on Machine Learning hide
    Elective course
    2
    Free elective course within the programme
    2 ECTS, credits
    Course Description

    In this course, students familiarize themselves with a particular topic in artificial intelligence (e.g. computer vision, natural language processing, data processing, generative modeling or other topics) by studying relevant academic literature and preparing a talk on this topic for their classmates.

    Students can choose from a selection of topics provided by the teacher, or propose a topic that they are interested in on their own.

    Besides learning about the subject matter of the talks, the goal of the course is to practice presentation skills.

    The course starts on June 8th and will finish on August 17th. 

    Face-to-face learning
    Prerequisites
  • Not taught this semester
    TÖL211F
    From an idea to reality II hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    The course is a continuation of the course "From an idea to reality". Students are expected to continue to develop their idea that they had in the "From an Idea to Reality" course. If the students are not satisfied with their previous idea and think they have come up with a better idea, that's fine, and if the teacher is satisfied with the new idea the student can continue with the new idea.

    Students must apply for grants in the competition fund. Practice pitching your idea to potential investors and your fellow students.

    The teacher will cover accounting and planning based on probability.

    The teacher will cover company formation and tax matters.

    Face-to-face learning
    Prerequisites
    Attendance required in class
  • TÖL212M
    Reasoned Programming hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    Fundamental concepts in program verification and reasoned programming are covered. Emphasis is placed on using reasoned programming to develop solid and proved versions of well-known algorithms, especially in the areas of searching, sorting, and binary search trees. Among algorithms covered are various versions of insertion sort, selection sort, quicksort, binary search, and searching in binary search trees. Emphasis will be placed on deepening the understanding of the algorithms as well as getting a good grip on program verification. Some exercises will use verification tools such as Dafny or OpenJML.

    Face-to-face learning
    The course is taught if the specified conditions are met
    Prerequisites
  • Year unspecified
  • TÖL213M
    Applied Cryptography hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    In this course, students will take a practical approach to understanding the building and breaking of cryptographic implementations. The first half of this module will involve programming tasks while the second half will involve two mini projects. 

    Starting from simplistic approaches used historically, such as the Caeser cipher, to modern day protocols used to secure telecommunications ubiquitously, such as AES and TLS. Students will also consider the role of cryptography in society more broadly by researching how contentious technologies such as end-to-end encryption and Tor impact justice and privacy, and distributed ledgers can enable the decentralisation of key societal systems. Finally, the course will conclude with a mini project demonstrating a practical attack against a cryptographic implementation using ethical hacking approaches e.g. WiFi cracking, password bruteforcing or man-in-the-middle attack of an encrypted connection to sniff traffic. 

    The course will encompass the following stages: 

    1) Building cryptographic primitives in a programming language of choice. 

    2) Application engineering best practices. 

    3) A research project in cryptography and society. 

    4) A practical project in ethical hacking approaches to demonstrating weaknesses in cryptography implementations. 

    Face-to-face learning
    Prerequisites
  • TÖL503M
    Distributed Systems hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    Usually taught every second year.

    This course covers concepts of distributed systems and their application. Besides foundations on characteristics and models of distributed systems, networking and security, this includes network-based low-level interprocess communication, high-level remote procedure calls, the distributed object model and remote method invocation, services relevant in distributed systems (such as name services or distributed file systems), selected topics of distributed algorithms and their implementation (such as coordination, agreement,  time, replication). Furthermore, special types of distributed systems may be covered (such as peer-to-peer systems, Cloud and Grid computing).  Current technologies (such as Java RMI, Web Services, gRPC) are used as case study and as platform for developing distributed applications using high-level programming languages (such as Java).

    Note: while this is an "M" course, it is rather on MSc. level. BSc. students who take this course need to be advanced in their BSc. studies. (E.g. we will implement middleware in Java, so you should have programming experience well beyond "TÖL101G Computer Science 1". As a middleware adds functionality on top of an Operating System, you should have also passed TÖL401G Operating Systems.)

    Face-to-face learning
    The course is taught if the specified conditions are met
    Prerequisites
  • Not taught this semester
    TÖL504M, TÖL604M
    Algorithms in Bioinformatics hide
    Elective course
    6/6
    Free elective course within the programme
    6/6 ECTS, credits
    Course Description

    This course will cover the algorithmic aspects of bioinformatic. We  will start with an introduction to genomics and algorithms for students new to the field. The course is divided into modules, each module covers a single problem in bioinformatics that will be motivated based on current research. The module will then cover algorithms that solve the problem and variations on the problem. The problems covered are motif finding, edit distance in strings, sequence alignment, clustering, sequencing and assembly and finally computational methods for high throughput sequencing (HTS).

    Face-to-face learning
    Prerequisites
  • Not taught this semester
    TÖL504M, TÖL604M
    Algorithms in Bioinformatics hide
    Elective course
    6/6
    Free elective course within the programme
    6/6 ECTS, credits
    Course Description

    This course will cover the algorithmic aspects of bioinformatic. We  will start with an introduction to genomics and algorithms for students new to the field. The course is divided into modules, each module covers a single problem in bioinformatics that will be motivated based on current research. The module will then cover algorithms that solve the problem and variations on the problem. The problems covered are motif finding, edit distance in strings, sequence alignment, clustering, sequencing and assembly and finally computational methods for high throughput sequencing (HTS).

    Face-to-face learning
    Prerequisites
  • HBV506M
    Secure Software Engineering hide
    Elective course
    6
    Free elective course within the programme
    6 ECTS, credits
    Course Description

    Secure software engineering involves identifying and mitigating vulnerabilities to reduce threats to an application. In this module, students will gain an understanding of secure engineering practices and the means to apply them throughout the complete software development life cycle.

    Working in teams, students will design, develop, and maintain a web application for a customer following secure software engineering principles. Students will illustrate their understanding and practical competency of white box and black box security assessment through testing their own and other team’s applications for vulnerabilities against the OWASP top 10 most critical security risks to web applications.

    It is therefore assumed the students have knowledge in web application development using JavaScript.

    Face-to-face learning
    Prerequisites
  • Not taught this semester
    TÖL113F, TÖL113F
    Quantum Cryptography hide
    Elective course
    6/6
    Free elective course within the programme
    6/6 ECTS, credits
    Course Description

    In this course, students learn about quantum computing and, in particular, quantum cryptography. Quantum computing will cause a revolution in cryptography as many cryptosystems based on computational complexity will become obsolete. They will replaced by so-called quantum secure crypto systems.

    Face-to-face learning
    Prerequisites
  • TÖL113F, TÖL113F
    Quantum Computing and Quantum Cryptography hide
    Elective course
    6/6
    Free elective course within the programme
    6/6 ECTS, credits
    Course Description

    In this course, students learn about quantum computing and quantum cryptography. Quantum computing will cause a revolution in cryptography as many cryptosystems based on computational complexity will become obsolete. They will be replaced by so-called quantum secure crypto systems.

    Topics covered:

    • Cryptography: An Overview
    • Quantum Mechanics
    • Quantum Cryptography
    • An Introduction to Error-Correcting Codes
    • Quantum Cryptography Revisited
    • Generalized Reed-Solomon Codes
    • Quantum Computing

    This is a regular course: the students are expected to attend class every week. 

    Face-to-face learning
    Prerequisites
Additional information

The University of Iceland collaborates with over 400 universities worldwide. This provides a unique opportunity to pursue part of your studies at an international university thus gaining added experience and fresh insight into your field of study.

Students generally have the opportunity to join an exchange programme, internship, or summer courses. However, exchanges are always subject to faculty approval.

Students have the opportunity to have courses evaluated as part of their studies at the University of Iceland, so their stay does not have to affect the duration of their studies.

Software engineers work closely with people in a wide range of sectors (e.g. business, finance, tourism, politics, industry, healthcare, communication and entertainment) to meet users' needs and design effective solutions. They are responsible for consulting with stakeholders, developing software and managing projects to ensure that software is delivered on time and within budget.

Software engineers work in a wide range of fields. They are in high demand across the public and private sector, wherever software plays an important role.

More about the UI student's social life.

Student´s comments
Fannar Steinn
I applied for a software engineering programme as I felt the curriculum combined all my major interests. I am very interested in technology, which is one of the main subjects of this programme, but software engineering is so much more than just that. The programme involves teamwork, management, and of course, innovation, to name a few. I also chose software engineering because it offers such incredibly diverse career opportunities upon completion of the programme. Today, software is part of almost every business operation, so the projects and challenges that software engineers face are endless. I encourage prospective students to explore studying software engineering and the opportunities it offers.
Helpful content
Aurora Cooperation

Study wheel

What interests you?

Aurora Cooperation

How to apply

Follow the path

Contact us

If you still have questions, feel free to contact us.

Engineering and Natural Sciences
Weekdays 9 am - 3:30 pm

School of Engineering and Natural Sciences has facilities both in Tæknigarður and Askja.

Follow us on:
Instagram Facebook Twitter
Youtube  Flickr

University of Iceland, Tæknigarður (Centre for Technical Innovation)

Share

Did this help?

Why wasn't this information helpful

Limit to 250 characters.