- Do you want to acquire specialist knowledge and improve your understanding of a specific area of computer science?
- Are you interested in conducting research?
- Do you want a career that requires initiative and independent thinking?
- Do you want to pursue doctoral studies in a related subject?
Computer science is a diverse field that is connected to many other disciplines. Computer science can be divided into theoretical and applied branches, with the former attempting to answer fundamental questions about computability and the latter having more practical aims related to the design of useful and user-friendly software.
Programme structure
The Master's programme in computer science is 120 ECTS and is organised as two years of full-time study.
The programme is made up of:
- Courses, 60-90 ECTS
- Research project, 30-60 ECTS
Students select courses in consultation with the administrative supervisor.
- If students take 60 ECTS of courses, at least 30 ECTS must be courses marked TÖL, HBV or REI.
- If students take 90 ECTS of courses, at least 45 ECTS must be courses marked TÖL, HBV or REI.
Specialisations:
- General computer science - Students who choose this specialisation will focus on a specific field of theoretical computer science, interactive computer science or software development.
- Language technology - This is an interdisciplinary area of research and development incorporating subjects such as computer science, linguistics, artificial intelligence, statistics and psychology. It is aimed at developing tools and applications which can process, understand and produce natural languages, and at enhancing their use in human-computer interaction.
- Cyber security - Students who choose this specialisation will acquire the practical and academic skills required to protect networks, computers, programs and institutions from cyber-attacks. Our research labs enable students to set up realistic scenarios to help them acquire practical experience of cybersecurity issues. Cyber security is taught in partnership with Reykjavík University and also involves distance learning courses from European universities (e.g. NTNU). This specialisation is taught in English.
Organisation of teaching
The programme is taught in Icelandic or English. Most textbooks are in English.
Thesis projects are often practical and completed in collaboration with companies or institutes. Thesis projects might be inspired by the student's interest in a certain topic or related to an instructor's research.
Main objectives
Students should acquire a more in-depth knowledge of abstract methods and software technology used to resolve specific challenges within computer science. They should also develop a better understanding of the potential of computers to solve problems, as well as their limitations.
Other
Completing a Master's degree in computer science allows you to apply for doctoral studies.
- A BS degree in computer science or a related subject with grade point average 6.5 or higher. Those who do not have a degree in computer science or software engineering must fulfil prerequisites set by the Department of Computer Science. The specialization Language technology is only taught for Icelandic speaking students. The specialization Cybersecurity is taught in English.
- 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 an attachment) to transcript@hi.is.
120 ECTS credits have to be completed for the qualification. Organised as a two-year programme. The study is either 90 ECTS credits in courses and 30 ECTS credits in an individual project or 60 ECTS credits in courses and 60 ECTS credits in an individual project. Courses should be chosen in cooperation with a supervisor or departmental coordinator If the student decides to take 60 credits in courses, at least 30 should be from the department (courses marked TÖL, HBV or REI). If the student decides to take 90 credits in courses, at least 45 should be from the department (courses marked TÖL, HBV or REI).
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
- Introduction to Information Security
- Network Measurements and Analysis
- Distributed Systems
- Not taught this semesterQuantum Cryptography
- Time Series Analysis
- Performance analysis of computer systems
- Machine Learning
- Internship in Cybersecurity
- Not taught this semesterSecurity Engineering for Critical Information Infrastructures
- Not taught this semesterCyber Conflicts, Cyber Security Threats and Engineering, National Information Infrastructures (NII)
- Introduction to deep neural networks
- Final project
- Usable Privacy and Security
- Cloud Computing and Big Data
- Programming Projects on Internet of Things
- Thesis skills: project management, writing skills and presentation
- Spring 1
- Fundamentals of Ethical Hacking
- Governance of the Internet
- Not taught this semesterFundaments of the Internet
- Software Testing
- Not taught this semesterPrivacy and Data Protection Law
- Introduction to machine learning and artificial intelligence
- Internship in Cybersecurity
- Applied Cryptography
- Seminar in computer science
- Not taught this semesterSeminar for MS-Students
- Final project
- Algorithms in the real world
- Year unspecified
- Secure Software Engineering
- Applied 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
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.
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)
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.)
Quantum Cryptography (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.
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.
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.
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.
Internship in Cybersecurity (TÖL022F)
The aim of the internship is to train students to work under the guidance of specialists at companies and institutions. The projects must be related to one of the subjects taught in the Cyber Security specialization and they must test the knowledge and skills that the student has acquired there.
At the end of the working hours, the student must return to the supervisor:
- A report on the student's main project and its connection to his / her studies in cyber security. The report shall also state what study goals the student set at the beginning of the internship and how he / she achieved them in the projects.
- Diary kept by the student during working hours. The diary shall include a weekly overview stating what the tasks of the week were and how much time was spent on individual tasks.
Vocational training is not considered completed until the supervisor of the company / institution has submitted confirmation of the student's involvement in the project work and the supervisor of vocational training at the department of computer science has confirmed the completion of the project.
Note 1: Students cannot register themselves for this course, but they are registered for the course when they have secured an internship position at a company or institution.
All internships will be advertised separately on www.tengslatorg.hi.is at the beginning of each semester and students will apply specifically for internships. An application together with a curriculum vitae and an introductory letter, in which students state why they are interested in getting an internship at the company in question, must be sent to von-starfsthjalfun@hi.is .
Note 2: This course can only be taken with 30 ECTS final project.
Note 3: This course is only available for students of cyber security specialization.
Security Engineering for Critical Information Infrastructures (TÖL106M)
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
Cyber Conflicts, Cyber Security Threats and Engineering, National Information Infrastructures (NII) (TÖL107M)
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.
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.
Final project (TÖL431L)
- 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 30 or 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.
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.
Cloud Computing and Big Data (REI504M)
Overview of high performance computing (HPC) and “Big Data”, HPC environments with computing, network and storage resources, overview of parallel programming. Storage infrastructures and services for Big Data, Big Data analytics, the map-reduce paradigm, structured and unstructured data. Practical exercises: (A) Students will use the Amazon Web Services (AWS) cloud or equivalent to set up a multi-computer web service and an associated multi-computer testing application. (B) Students will get hands on experience of processing large data sets using map-reduce techniques with AWS.
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.
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.
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.
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.
Privacy and Data Protection Law (LÖG283F)
The right to protection of private life is a wide-reaching right that, inter alia, deals with questions of the beginning and end of life; legal personality, legal capacity and self-determination; the right to develop one's identity and personality; and the right to data protection. These issues are mainly dealt with in the legal disciplines traditionally known as the law of persons and data protection law. This course aims at giving students an overview over key issues in these fields of law. A special emphasis will be placed on investigating how advances in knowledge and technolocy and changes in society have raised new legal questions, and on how the relevant domestic law must be understood in light of ethics, international law and European law.
Introduction to machine learning and artificial intelligence (RAF620M)
Pattern recognition is concerned with the development of methods for finding patterns in data and use them for example for classification. Pattern recognition is closely related to machine learning and statistical signal processing. Pattern recognition has extensive application areas, for example signal processing, control, computer vision, and medical imaging. The purpose of this course is to give the student in depth understanding and hands on experience with pattern recognition. The content of the courses is supervised learning e.g., regression and classification, unsupervised learning such as principal component analysis, and introduction to deep learning.
Internship in Cybersecurity (TÖL022F)
The aim of the internship is to train students to work under the guidance of specialists at companies and institutions. The projects must be related to one of the subjects taught in the Cyber Security specialization and they must test the knowledge and skills that the student has acquired there.
At the end of the working hours, the student must return to the supervisor:
- A report on the student's main project and its connection to his / her studies in cyber security. The report shall also state what study goals the student set at the beginning of the internship and how he / she achieved them in the projects.
- Diary kept by the student during working hours. The diary shall include a weekly overview stating what the tasks of the week were and how much time was spent on individual tasks.
Vocational training is not considered completed until the supervisor of the company / institution has submitted confirmation of the student's involvement in the project work and the supervisor of vocational training at the department of computer science has confirmed the completion of the project.
Note 1: Students cannot register themselves for this course, but they are registered for the course when they have secured an internship position at a company or institution.
All internships will be advertised separately on www.tengslatorg.hi.is at the beginning of each semester and students will apply specifically for internships. An application together with a curriculum vitae and an introductory letter, in which students state why they are interested in getting an internship at the company in question, must be sent to von-starfsthjalfun@hi.is .
Note 2: This course can only be taken with 30 ECTS final project.
Note 3: This course is only available for students of cyber security specialization.
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.
Seminar for MS-Students (TÖL204F)
Postgraduate students in computer science, software engineering and computational engineering attend weekly seminars where the present talks on their research projects or other related topics of interest.
Final project (TÖL431L)
- 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 30 or 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.
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.
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.
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.
- 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
TÖ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 learningPrerequisitesTÖL104MNetwork Measurements and AnalysisMandatory (required) course6A mandatory (required) course for 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 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 metPrerequisitesNot taught this semesterTÖL113FQuantum CryptographyElective course6Free elective course within the programme6 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 learningPrerequisitesIÐ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-studyPrerequisitesREI503MPerformance 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 metPrerequisitesCourse 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 learningPrerequisitesTÖL022FInternship in CybersecurityElective course6Free elective course within the programme6 ECTS, creditsCourse DescriptionThe aim of the internship is to train students to work under the guidance of specialists at companies and institutions. The projects must be related to one of the subjects taught in the Cyber Security specialization and they must test the knowledge and skills that the student has acquired there.
At the end of the working hours, the student must return to the supervisor:
- A report on the student's main project and its connection to his / her studies in cyber security. The report shall also state what study goals the student set at the beginning of the internship and how he / she achieved them in the projects.
- Diary kept by the student during working hours. The diary shall include a weekly overview stating what the tasks of the week were and how much time was spent on individual tasks.
Vocational training is not considered completed until the supervisor of the company / institution has submitted confirmation of the student's involvement in the project work and the supervisor of vocational training at the department of computer science has confirmed the completion of the project.
Note 1: Students cannot register themselves for this course, but they are registered for the course when they have secured an internship position at a company or institution.
All internships will be advertised separately on www.tengslatorg.hi.is at the beginning of each semester and students will apply specifically for internships. An application together with a curriculum vitae and an introductory letter, in which students state why they are interested in getting an internship at the company in question, must be sent to von-starfsthjalfun@hi.is .
Note 2: This course can only be taken with 30 ECTS final project.
Note 3: This course is only available for students of cyber security specialization.
Face-to-face learningPrerequisitesNot taught this semesterTÖL106MSecurity Engineering for Critical Information InfrastructuresElective course6Free elective course within the programme6 ECTS, creditsCourse DescriptionThe 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 learningPrerequisitesNot taught this semesterTÖL107MCyber Conflicts, Cyber Security Threats and Engineering, National Information Infrastructures (NII)Elective course6Free elective course within the programme6 ECTS, creditsCourse DescriptionThis 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 learningPrerequisitesTÖ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 learningPrerequisitesTÖL431LFinal 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 30 or 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 creditsHBV507MUsable 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 learningPrerequisitesREI504MCloud Computing and Big DataElective course6Free elective course within the programme6 ECTS, creditsCourse DescriptionOverview of high performance computing (HPC) and “Big Data”, HPC environments with computing, network and storage resources, overview of parallel programming. Storage infrastructures and services for Big Data, Big Data analytics, the map-reduce paradigm, structured and unstructured data. Practical exercises: (A) Students will use the Amazon Web Services (AWS) cloud or equivalent to set up a multi-computer web service and an associated multi-computer testing application. (B) Students will get hands on experience of processing large data sets using map-reduce techniques with AWS.
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 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ÖL212FGovernance of the InternetMandatory (required) course6A mandatory (required) course for 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 learningPrerequisitesCourse 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 metPrerequisitesNot taught this semesterLÖG283FPrivacy and Data Protection LawElective course6Free elective course within the programme6 ECTS, creditsCourse DescriptionThe right to protection of private life is a wide-reaching right that, inter alia, deals with questions of the beginning and end of life; legal personality, legal capacity and self-determination; the right to develop one's identity and personality; and the right to data protection. These issues are mainly dealt with in the legal disciplines traditionally known as the law of persons and data protection law. This course aims at giving students an overview over key issues in these fields of law. A special emphasis will be placed on investigating how advances in knowledge and technolocy and changes in society have raised new legal questions, and on how the relevant domestic law must be understood in light of ethics, international law and European law.
Face-to-face learningPrerequisitesCourse taught first half of the semesterRAF620MIntroduction to machine learning and artificial intelligenceElective course6Free elective course within the programme6 ECTS, creditsCourse DescriptionPattern recognition is concerned with the development of methods for finding patterns in data and use them for example for classification. Pattern recognition is closely related to machine learning and statistical signal processing. Pattern recognition has extensive application areas, for example signal processing, control, computer vision, and medical imaging. The purpose of this course is to give the student in depth understanding and hands on experience with pattern recognition. The content of the courses is supervised learning e.g., regression and classification, unsupervised learning such as principal component analysis, and introduction to deep learning.
Face-to-face learningPrerequisitesTÖL022FInternship in CybersecurityElective course6Free elective course within the programme6 ECTS, creditsCourse DescriptionThe aim of the internship is to train students to work under the guidance of specialists at companies and institutions. The projects must be related to one of the subjects taught in the Cyber Security specialization and they must test the knowledge and skills that the student has acquired there.
At the end of the working hours, the student must return to the supervisor:
- A report on the student's main project and its connection to his / her studies in cyber security. The report shall also state what study goals the student set at the beginning of the internship and how he / she achieved them in the projects.
- Diary kept by the student during working hours. The diary shall include a weekly overview stating what the tasks of the week were and how much time was spent on individual tasks.
Vocational training is not considered completed until the supervisor of the company / institution has submitted confirmation of the student's involvement in the project work and the supervisor of vocational training at the department of computer science has confirmed the completion of the project.
Note 1: Students cannot register themselves for this course, but they are registered for the course when they have secured an internship position at a company or institution.
All internships will be advertised separately on www.tengslatorg.hi.is at the beginning of each semester and students will apply specifically for internships. An application together with a curriculum vitae and an introductory letter, in which students state why they are interested in getting an internship at the company in question, must be sent to von-starfsthjalfun@hi.is .
Note 2: This course can only be taken with 30 ECTS final project.
Note 3: This course is only available for students of cyber security specialization.
Face-to-face learningPrerequisitesCourse 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 learningPrerequisitesNot taught this semesterTÖL204FSeminar for MS-StudentsMandatory (required) course2A mandatory (required) course for the programme2 ECTS, creditsCourse DescriptionPostgraduate students in computer science, software engineering and computational engineering attend weekly seminars where the present talks on their research projects or other related topics of interest.
Face-to-face learningPrerequisitesTÖL431LFinal 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 30 or 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Ö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.
Prerequisites- Year unspecified
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Ö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 learningPrerequisites