- 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:
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.
- 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.
- 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.
- 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.
- 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.
- 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
- Fall
- Secure Software Engineering
- Distributed Systems
- Final project
- Not taught this semesterSoftware Maintenance
- Network Measurements and Analysis
- Usable Privacy and Security
- Machine Learning
- Not taught this semesterMachine Learning for Earth Observation powered by Supercomputers
- Programming Projects on Internet of Things
- Not taught this semesterFrom an Idea to Reality
- Human Computer Interaction
- Introduction to deep neural networks
- Thesis skills: project management, writing skills and presentation
- Spring 1
- Fundamentals of Ethical Hacking
- Applied Cryptography
- Seminar in computer science
- Software Testing
- Final project
- Governance of the Internet
- Not taught this semesterFundaments of the Internet
- Algorithms in the real world
- The AI lifecycle
- Not taught this semesterSeminar on Machine Learning
- Not taught this semesterFrom an idea to reality II
- Reasoned Programming
- Year unspecified
- Software Quality Management
- Introduction to Information Security
- Field Course in Innovation and Entrepreneurship (II)
- Time Series Analysis
- Not taught this semesterFundaments of the Internet
- Field Course in Innovation and Entrepreneurship (I)
- Performance analysis of computer systems
- Not taught this semesterFrom an Idea to Reality
- Not taught this semesterQuantum Cryptography
- Not taught this semesterQuantum Computing and Quantum Cryptography
Mentor in Sprettur (GKY001M)
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
Secure Software Engineering (HBV506M)
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.
Distributed Systems (TÖL503M)
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.)
Final project (HBV442L)
- 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.
Software Maintenance (HBV103M)
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.
Network Measurements and Analysis (TÖL104M)
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)
Usable Privacy and Security (HBV507M)
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.
Machine Learning (REI505M)
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.
Machine Learning for Earth Observation powered by Supercomputers (REI506M)
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.
Programming Projects on Internet of Things (TÖL103M)
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.
From an Idea to Reality (TÖL109F)
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.
Human Computer Interaction (TÖL502M)
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.
Introduction to deep neural networks (TÖL506M)
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.
Thesis skills: project management, writing skills and presentation (VON001F)
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.
Fundamentals of Ethical Hacking (TÖL605M)
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.
Applied Cryptography (TÖL213M)
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.
Seminar in computer science (TÖL606M)
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.
Software Testing (HBV205M)
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.
Final project (HBV442L)
- 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.
Governance of the Internet (TÖL212F)
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.
Fundaments of the Internet (RAF617M)
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.
Algorithms in the real world (TÖL608M)
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.
The AI lifecycle (REI603M)
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.
Seminar on Machine Learning (TÖL028M)
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.
From an idea to reality II (TÖL211F)
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.
Reasoned Programming (TÖL212M)
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.
Software Quality Management (HBV505M)
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.
Introduction to Information Security (TÖL029M)
Þ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.
Field Course in Innovation and Entrepreneurship (II) (IÐN216F)
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.
Time Series Analysis (IÐN113F)
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.
Fundaments of the Internet (RAF617M)
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.
Field Course in Innovation and Entrepreneurship (I) (IÐN222F)
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.
Performance analysis of computer systems (REI503M)
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.
From an Idea to Reality (TÖL109F)
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.
Quantum Cryptography (TÖL113F, TÖL113F)
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.
Quantum Computing and Quantum Cryptography (TÖL113F, TÖL113F)
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.
- Whole year courses
- 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 learningThe course is taught if the specified conditions are metPrerequisitesAttendance required in class- Fall
HBV506MSecure Software EngineeringMandatory (required) course6A mandatory (required) course for the programme6 ECTS, creditsCourse DescriptionSecure 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 learningPrerequisitesTÖL503MDistributed SystemsMandatory (required) course6A mandatory (required) course for the programme6 ECTS, creditsCourse DescriptionUsually 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 learningThe course is taught if the specified conditions are metPrerequisitesHBV442LFinal projectMandatory (required) course0A mandatory (required) course for the programme0 ECTS, creditsCourse 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-studyPrerequisitesPart of the total project/thesis creditsNot taught this semesterHBV103MSoftware MaintenanceMandatory (required) course6A mandatory (required) course for the programme6 ECTS, creditsCourse DescriptionUsually 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 learningThe course is taught if the specified conditions are metPrerequisitesTÖL104MNetwork Measurements and AnalysisElective course6Free elective course within the programme6 ECTS, creditsCourse DescriptionThis 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 learningPrerequisitesHBV507MUsable Privacy and SecurityElective course6Free elective course within the programme6 ECTS, creditsCourse DescriptionSurvey 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 learningPrerequisitesCourse DescriptionAn 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 learningPrerequisitesNot taught this semesterREI506MMachine Learning for Earth Observation powered by SupercomputersElective course6Free elective course within the programme6 ECTS, creditsCourse DescriptionThis 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 learningPrerequisitesTÖL103MProgramming Projects on Internet of ThingsElective course6Free elective course within the programme6 ECTS, creditsCourse DescriptionThis 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 learningPrerequisitesNot taught this semesterTÖL109FFrom an Idea to RealityElective course6Free elective course within the programme6 ECTS, creditsCourse DescriptionThe 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 learningPrerequisitesTÖL502MHuman Computer InteractionElective course6Free elective course within the programme6 ECTS, creditsCourse DescriptionUsually 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 learningThe course is taught if the specified conditions are metPrerequisitesTÖL506MIntroduction to deep neural networksElective course6Free elective course within the programme6 ECTS, creditsCourse DescriptionIn 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 learningPrerequisitesVON001FThesis skills: project management, writing skills and presentationElective course4Free elective course within the programme4 ECTS, creditsCourse DescriptionIntroduction 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 learningOnline learningPrerequisites- Spring 2
TÖL605MFundamentals of Ethical HackingMandatory (required) course6A mandatory (required) course for the programme6 ECTS, creditsCourse DescriptionEthical 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 learningPrerequisitesTÖL213MApplied CryptographyMandatory (required) course6A mandatory (required) course for the programme6 ECTS, creditsCourse DescriptionIn 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 learningPrerequisitesTÖL606MSeminar in computer scienceMandatory (required) course2A mandatory (required) course for the programme2 ECTS, creditsCourse DescriptionStudents 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 learningPrerequisitesHBV205MSoftware TestingMandatory (required) course6A mandatory (required) course for the programme6 ECTS, creditsCourse DescriptionUsually 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 learningThe course is taught if the specified conditions are metPrerequisitesHBV442LFinal projectMandatory (required) course0A mandatory (required) course for the programme0 ECTS, creditsCourse 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-studyPrerequisitesPart of the total project/thesis creditsTÖL212FGovernance of the InternetElective course6Free elective course within the programme6 ECTS, creditsCourse DescriptionThis 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 learningPrerequisitesNot taught this semesterRAF617MFundaments of the InternetElective course6Free elective course within the programme6 ECTS, creditsCourse DescriptionModern 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 learningPrerequisitesTÖL608MAlgorithms in the real worldElective course6Free elective course within the programme6 ECTS, creditsCourse DescriptionThe 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.
PrerequisitesCourse DescriptionIn 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 learningPrerequisitesNot taught this semesterTÖL028MSeminar on Machine LearningElective course2Free elective course within the programme2 ECTS, creditsCourse DescriptionIn 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 learningPrerequisitesNot taught this semesterTÖL211FFrom an idea to reality IIElective course6Free elective course within the programme6 ECTS, creditsCourse DescriptionThe 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 learningPrerequisitesAttendance required in classCourse DescriptionFundamental 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 learningThe course is taught if the specified conditions are metPrerequisites- Year unspecified
HBV505MSoftware Quality ManagementMandatory (required) course6A mandatory (required) course for the programme6 ECTS, creditsCourse DescriptionThe 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 learningThe course is taught if the specified conditions are metPrerequisitesTÖL029MIntroduction to Information SecurityMandatory (required) course6A mandatory (required) course for the programme6 ECTS, creditsCourse 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 learningPrerequisitesIÐN216FField Course in Innovation and Entrepreneurship (II)Elective course7,5Free elective course within the programme7,5 ECTS, creditsCourse DescriptionThe 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 learningPrerequisitesCourse taught second half of the semesterIÐN113FTime Series AnalysisElective course7,5Free elective course within the programme7,5 ECTS, creditsCourse DescriptionARMAX 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 learningSelf-studyPrerequisitesNot taught this semesterRAF617MFundaments of the InternetElective course6Free elective course within the programme6 ECTS, creditsCourse DescriptionModern 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 learningPrerequisitesIÐN222FField Course in Innovation and Entrepreneurship (I)Elective course7,5Free elective course within the programme7,5 ECTS, creditsCourse DescriptionThe 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 learningPrerequisitesCourse taught first half of the semesterREI503MPerformance analysis of computer systemsElective course6Free elective course within the programme6 ECTS, creditsCourse DescriptionUsually 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 learningThe course is taught if the specified conditions are metPrerequisitesNot taught this semesterTÖL109FFrom an Idea to RealityElective course6Free elective course within the programme6 ECTS, creditsCourse DescriptionThe 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 learningPrerequisitesNot taught this semesterTÖL113F, TÖL113FQuantum CryptographyElective course6/6Free elective course within the programme6/6 ECTS, creditsCourse DescriptionIn 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 learningPrerequisitesTÖL113F, TÖL113FQuantum Computing and Quantum CryptographyElective course6/6Free elective course within the programme6/6 ECTS, creditsCourse DescriptionIn 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 learningPrerequisites