DAT159 Selected topics in ICT
Course description for academic year 2020/2021
Due to Covid-19, changes may occur in course descriptions for the autumn semester of 2020. Changes in each course will be published on Studentweb or Canvas. When a course description has been changed there, the description on web is no longer valid. Examples of such changes could be accomplishment of practice, course type, or whether letter grades or passed/not passed will be used as grading scales.
Contents and structure
The evolution in the field of software development, data processing, information and communication technology is rapid, and it is not possible at all times to have established courses that cover the most interesting trends. To remedy the situation we offer this subject. The subject is an elective, and will consist of 4 standalone modules, which can be replaced from year to year. Each module provides a brief introduction to an exciting topic not covered by our other courses.
Module1 autumn 2020 - Basic cryptography
General cryptography and cryptographic mechanisms used in blockchains. Symmetric and asymmetric cryptography. Block and stream chiffres. Digital signatures and authentication. Hash and MAC algorithms.
Module2 autumn 2020 - Blockchain technology
Construction and structure of blockchains. Distributed trust and consensus. Proof of Work. Block content and transactions. Examples of blockchains (e.g. Bitcoin and Ethereum). Smart contracts. Ecosystems and infrastructure. Application areas.
Module3 autumn 2020 - Basic interaction design
The main goal of this module is to provide an overall understanding of issues needed to consider for designing the interaction between users and products, enabling the users to achieve their objectives in the best way with their new products. The focus, here, is on software products, like apps or websites.
Module4 autumn 2020 - Refactoring
Foundations of refactoring: origins, mode of operation and application i current IDEs. Relation to software quality metrics, design patterns, and how they are affected by refactorings. Implementation of refactorings in Java, the JastAdd framework, or the Rascal metaprogramming language.
The learning outcomes are general and apply to all modules.
After completing this subject the student should (within every module/topic) be able to:
- Render definitions and describe the theoretical foundation
- Discuss the correlations and mechanisms
- Point to uses for the technology/techniques
- Translate theory into practical demonstrable solutions
- Implement/program parts of solutions
- Evaluate and choose between a selection of solutions
- Discuss ethical issues of the application of the technology/techniques
Recommended previous knowledge
Recommended prerequisites: Basic knowledge of programming and mathematics as covered by the first two years of studies in the computing and information technology programs.
Lectures and practical exercises.
To get access to the exam, four obligatory assignments (one for each module) must be completed and approved by set deadlines. Graded as pass/fail.
Approved exercises also give access to postponed examination the following semester. However, before a new exam can be taken (the next time the subject is taught), new exercises must be delivered.
Grading scale is A-F where F is fail.
If more than 20 students are registered to take the exam, we will organize a written examination.
Examination support material
NoneMore about examination support material