DAT159 Selected topics in ICT
Course description for academic year 2018/2019
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.
General cryptography and cryptographic mechanisms used in blockchains. Symmetric and asymmetric cryptography. Block and stream chiffres. Digital signatures and authentication. Hash and MAC algorithms.
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.
Introduction and overview of basic concepts and technologies for IoT-Cloud solutions: IoT-and Cloud-architecture, IPV6, RPL, MQTT, CoAP, WebSocket, REST. IoT-Edge: Sensor-actuator networks, gateways and clients. IoT prototyping platforms (Auduino, PI). Programming of such. Cloud/Server side: Stream and event processing. Server-side cloud deployment and orchestration (NODESD, Node. js, REST and a suitable cloud service). Storage and back-end analytics.
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.
Compulsory learning activities
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.
Ved stort antall (>20) påmeldte studenter kan det bli skriftlig eksamen.
Examination support material
NoneMore about examination support material