The activities used to underpin the competences and the skills in the course are:
- Exercises covering the following topics: design the most appropriate data structure for a functionality in a mobile application, write code fragments to manipulate data structures, read/write fields, process data, creation of processes and threads, interprocess communication, etc, calculate the amount of memory occupied by different data structures.
- During the lab sessions code fragments are written, compiled, linked and executed using different compiler options and detect, analyze and correct these programs using the debugger.
- During the lab sessions code fragments are written to create, destroy and manipulate data structures using dynamic memory. Students are also requested to divide a given functionality into functions and write their code.
- During a nine-week period students are divided into teams and they must execute a project entailing the design of a software application containing multiple milestones, deliverables and objectives.
- Write detailed meeting minutes with the action items and final conclusions, exchange information between teammates using chats, forums, email, explain the requirements derived from the specification of a work module, and the solution decided by the team.
- Students are requested in several activities throughout the course to search for auxiliary documents to support the information studied in a topic. In their final report, they must acknowledge the information sources they used.
- Use of the following tools: Virtual machines, compiler and version control in multiple laboratory sessions.
During these activities the teaching staff reviews the student work in the class, supervises the lab sessions, answers questions in course forum, maintains at least one hour a week of office hours and calls for plenary office hours upon demand.