IN5600 – Programming Ubiquitous Things
Schedule, syllabus and examination date
Exams after the reopening
As a general rule, exams will be conducted without physical attendance in the autumn of 2021, even after the reopening. See the semester page for information about the form of examination in your course. See also more information about examination at the MN Faculty in 2021.
The course will provide a solid base for understanding the challenges and problems underlying the design and development of support software (middleware and operating system) for applications in environments with mobile and ubiquitous entities (people, hardware, software). Thus, this course will teach how to specify, design, program, analyze and implement such systems and applications.
After taking this course you will:
- understand the basic principles and concepts of ubiquitous / mobile systems
- understand the challenges of developing ubiquitous / mobile applications and middleware, and the possible solutions to deal with them
- understand the issues of context awareness (location in particular), adaptability, cyber-foraging, replication, consistency, synchronization, battery consumption, and security
- be able to decide which is the best approach for a particular problem regarding the design and development of a ubiquitous / mobile application / middleware
- be able to design, and implement an application for Android smartphones / things while taking into account some of the issues previously mentioned
Admission to the course
The course is limited to 20 students in total (IN5600 and IN9600 altogether) according to the following ranking rules:
- Phd students with the course in approved plan
- Master of Informatics: Programming and System Architecture programme option Software with the course in an approved study plan
- Masters students in Informatics programmes with the course in an approved study plan
- Masters students at the MN faculty with the course in an approved study plan
- Masters students in Informatics programmes
Recommended previous knowledge
The most relevant knowledge students will need from IN5020 is knowledge of Java and knowledge of the basic principles and concepts of distributed systems.
- 10 credits overlap with IN9600 – Programming Ubiquitous Things.
2 hours of lectures and 2 hours of group exercises per week.
During the lectures, lecturers and students will present and discuss articles. Presentation of articles is mandatory.
As part of the group exercises, the students will develop a mandatory project (in groups of 2) with guidance from the lecturer. There will be mandatory programming exercises. Read more about requirements for submission of assignments, group work and legal cooperation under guidelines for mandatory assignments.
It is compulsory to attend the first lecture as important information will be provided.
The evaluation will consist of 2 parts:
- Project assignment in a group which counts 50% towards the final grade
- Oral exam which counts 50% towards the final grade, where the participants in the group are heard in the project simultaneously and examined in the theoretical material. Grades for the oral exam are given individually.
Both parts must be passed and they must be passed in the same semester.
It will also be counted as one of your three attempts to sit the exam for this course, if you sit the exam for one of the following courses: IN9600 - Programming Ubiquitous Things
Examination support material
No examination support material is allowed.
Language of examination
The examination text is given in English. You must answer in English.
Grades are awarded on a scale from A to F, where A is the best grade and F is a fail. Read more about the grading system.
Resit an examination
Students who can document a valid reason for absence from the regular examination are offered a postponed examination at the beginning of the next semester. Re-scheduled examinations are not offered to students who withdraw during, or did not pass the original examination.