The course was held in the winter semester 2015/16 (October).
The course will not be held in 2016 and 2017!

Mobile and Ubiquitous Computing

Veljko Pejovic

Mobile computing devices such as smartphones revolutionised the way in which we nowadays communicate and find information. In addition, these devices equipped with sensors that enable the inference of the surrounding context, including the position, activity, and the environment of the user. The aim of this course is to introduce students to mobile communication and sensing systems based on the above devices. The emphasis is on developing deeper understanding of the functioning of mobile wireless networks, mobile sensing, pervasive computing and applications of mobile systems. The course examines these systems both from a technical perspective, as well as in terms of interdisciplinary applications, thus touches upon machine learning, computer network analysis, and healthcare. Students are introduced to development tools and techniques for building mobile systems and their understanding is reinforced through practical work in the Android OS.


Veljko Pejovic
Email: Veljko.Pejovic [at]
Office: 3.15
Office hours: Wednesdays noon-1pm, or by appointment
Veljko Pejovic

Fabio Ricciato
Fabio.Ricciato [at]
Office hours:

Course Meetings:

  • Lectures: Monday 9-12, at PR06
  • Lab sessions: Wednesday 14-16, at PR17

Course Components:

  • Lectures: Essential to get a big picture of what we are learning about in this course and why. Course material does not come from textbooks, thus attending lectures is very important. In addition, the attendance to lectures is mandatory.
  • Homework: Consists of multiple assignments distributed throughout the semester. The assignments are tailored to guide you through the Android programming, and help reinformce what you have learned during the lectures.
  • Lab sessions: Provide hands-on experience with Android and wireless and sensor data analysis.
  • Course project: The best way to understand computer science is to implement and test computer systems. The course project requires you to select a problem, investigate the related work in the problem field, devise your own solution to the problem, implement it, and finally evaluate your solution and share the findings with a wider research audience. Projects are done in teams of two or three people. There are three milesotnes for the course project:
    • Project proposal: A 1-2 page long written document that states the problem you are solving, proposes a solution and a timeline for attacking the problem.
    • Mid-semester presentation: Each team will give a 10-min long presentation of their progress half way through the semester.
    • Final presentation: Each team will give a 15-min long presentation of their progress since the mid-semester presentation, and describe their final solution.
    • Final report: An up to six page long technical report on the motivation, approach, technical solution and the evaluation of your solution.
  • Exam: There will be a final written exam in the end. The questions will be related to what has been taught in class and lab sessions. Note that relying solely on the material from the books might not be enough for you to successfully prepare for the exam.
  • Quizzes: Ocassional mandatory, yet not to be marked, quizzes will be posted online throughout the semester.
  • Readings: Some lectures will have reading materials assigned to them. The materials shold be read before the class.


  • 50% Coursework, out of which:
    • 10% Homework assignments (there will be a number of assignments so the points will be divided among them);
    • 90% Class project, out of which:
      • 15% Project proposal
      • 35% Mid-semester presentation
      • 50% Final presentation and report
  • 50% Final exam

Full Course Syllabus: