ITEC824 : Mobile Programming and Embedded Systems
Pre-Requisites
ITEC824 is a unit of the Master of Information Technology course program. A strong knowledge of Information Systems and Information Technologies is an obvious general pre-requisite but considering the technical quality of the unit, the following list of requirements is strongly advised for students wishing to enroll and succeed in this unit.
Programming Languages
This unit requires you to program, and assumes that you have some experience in programming, which means you not only can write software source code in at least one programming language, and are not afraid of learning a new one on the go for to complete the projects, including one or more of the following, which may be used during the course:
- any kind of programming language knowledge (not including descriptive languages);
- Java (JME);
- C# (.NET);
- ANSI C89 or C99;
- C++;
- some assembler knowledge could help.
Software Development LifeCycle
Raw programming experience is nothing without having developed some automatisms and habits partaining to the SDLC. You are expected to have some general knowledge and experience with the following:
- Standard toolchains
- Make / Makefile
- Autotools
- Configure
- a C/C++ IDE a plus
- a Java IDE a plus
- debugging skills
Be autonomous
Continuing on the previous point, it is necessary for students to be able to get started quickly with the relevant parts of the course, without having to focus on side matters. Therefore, some of the following, though not completely mandatory, are definitely important for you to get up and running:
- proficient on: Windows / UNIX / Linux (one OK, more better);
- having a personal laptop / desktop computer with a sufficent amount of memory to emulate devices and systems would definitely help;
- be familiar with some virtualization software suites.
Teaching & Learning Strategy
Lectures
Each week you should attend 4 hours of lectures, possibly mixed with a 2 hour-long practical. For details of days, times and rooms consult the timetables webpage.
Attendance to the lectures is not mandatory at all. This is left to your sole discretion and responsibility, though it is in your best interest to attend the lectures, as well as the practicals, if any. See the assessments section for more information.
Each week you should:
- attend lectures, take notes, ask questions;
- provide the lecturer with personal feedback and requests about the orientation of course;
- implement indivually the problems presented in the practical's questions, if any;
- conduct your own research to extend your knowledge on the week's topic;
- work on any assignments that have been released (and submit them on time);
Lecture notes (slides) should be available each week on this page and on Blackboard. Lecture notes are not a substitute for your own research. Lectures and notes provide you with introductory concepts and a list of pointers to look up for yourself, for the sake of the projects' completion, and preferrably for your own enjoyment.
Learning Outcomes
A student completing the unit with a PASS or superior grade should have:
-
a deep understanding what a constitutes:
- an embedded device,
- an embedded system,
- a real-time system;
- a deep understanding and practical experience of mobile programming issues, as well as some practical programming and deployment experience for embedded platforms;
- a good vision of a varied set of industry recognized embedded platforms and embedded software packages;
- the ability to extend on this knowledge by developing it further and to reuse it in professional environments.
In addition to these specific learning outcomes, this unit will help you develop a broader understanding of computing including the following:
- Quality Assurance testing practices;
- portability, interoperability and real-time architectures and APIs standards.
In addition, as with most computing units you will develop your project management skills, communication skills, and quality assurance skills in completing assignment work, and you will gain insight into yourself, and how you work most effectively.

