Identifying Data 2022/23
Subject (*) Systems Programming Code 614G01058
Study programme
Grao en Enxeñaría Informática
Descriptors Cycle Period Year Type Credits
Graduate 1st four-month period
Fourth Optional 6
Language
Spanish
English
Teaching method Hybrid
Prerequisites
Department Enxeñaría de Computadores
Coordinador
Vazquez Regueiro, Carlos
E-mail
carlos.vazquez.regueiro@udc.es
Lecturers
Vazquez Regueiro, Carlos
E-mail
carlos.vazquez.regueiro@udc.es
Web
General description Programación de sistemas encaixados e dispositivos móbiles

Study programme competencies
Code Study programme competences
A32 Capacidade de desenvolver procesadores específicos e sistemas embarcados, así como desenvolver e optimizar o sóftware dos ditos sistemas.
A34 Capacidade de deseñar e implementar sóftware de sistemas e de comunicacións.
B1 Capacidade de resolución de problemas
C6 Valorar criticamente o coñecemento, a tecnoloxía e a información dispoñible para resolver os problemas cos que deben enfrontarse.
C7 Asumir como profesional e cidadán a importancia da aprendizaxe ao longo da vida.
C8 Valorar a importancia que ten a investigación, a innovación e o desenvolvemento tecnolóxico no avance socioeconómico e cultural da sociedade.

Learning aims
Learning outcomes Study programme competences
Ability to develop Android applications in mobile devices, specific processors and embedded systems A32
A34
B1
C6
C7
C8
Ability to develop Android applications with capacity of communications and interaction A32
A34
B1
C6
C7
C8

Contents
Topic Sub-topic
1.1. Introduction to Systems Program Introduction to Systems Program
Subject presentaction
1.2. Introduction to Android History and evolution
Architecture and characteristics
Main components
Manifest
1.3. Development tools SDK and Android Studio instalation
Basic application and application structure
Debugging and testing
Application's Resources
2.1. Activities, Fragments and Intents Activities and Cycle of life
Intents, explicit and implicit
Parameters exchange
Fragments: estatics and dynamics
Fragments communication
2.2. User interface Layouts and Views
Events
Notifications
Menus and Dialogs
Lists and Adapters
2.3. Working in background Local Services
Bound Services
Broadcast Receivers
Processes and Threads
Asynchronous threads
3.1. App architecture Types of app architectures
Distribution of layers
Interchanges
3.2. Data persistence Preferences
Files internal and external
Data bases: SQL and ROOM
Content Providers
3.3. Interconnection Communications
Advanced network services
Cloud services
4.1. System services and Sensors System services
Sensors
Location
Maps
4.2. Distribution Publication
Permissions
Monetization and Publicity
Optimization

Planning
Methodologies / tests Competencies Ordinary class hours Student’s personal work hours Total hours
Laboratory practice A32 A34 B1 C6 C7 15 45 60
Supervised projects A32 A34 B1 C6 C7 C8 7 35 42
Guest lecture / keynote speech A32 A34 20 25 45
 
Personalized attention 3 0 3
 
(*)The information in the planning table is for guidance only and does not take into account the heterogeneity of the students.

Methodologies
Methodologies Description
Laboratory practice Students will develop practices in the laboratory for learning programming mobile devices with Android. A series of practices following a script to familiarize the student with the concepts and the basic procedures of Android programming will be raised (competencies A32 and A34).

It will also promote the expansion and improvement of the basic features of each proposed practice (competency C7) as well as the discussion and resolution of problems (competencies B1 and C6).

The practices consist of an immediate part that is delivered at the end of the session and a deferred part that is delivered before the next session.

Some practice may also consist of creating and presenting an individual work on some relevant aspect of mobile device programming.

Part-time students could present all the practices of non Presential form.
Supervised projects Works (applications) will be proposed to make students deepen in topics covered by the course (competences A32 and C34) and explore new knowledge (competencies C6 and C7). It will be valued especially that the application is functional and robust (competency B1) and is valuable for society (competency C8).

Each work will be developed by a small number of students (typically between 2 and 4), so that group coordination and working methodology is very important. A small report of follow-up in the most important phases of development will also be required.

Ideas and problems will be discussed primarily during the hours tutoring in small groups.
Guest lecture / keynote speech Didactic exhibition of the theoretical content of the subject using slides and other ICT resources.
Also, certain basic application will be explain in detail so that students can implement them and tested during laboratory practices.

The lectures are oriented both to adquire the necesssary knowledges (A32 and A34) as to guide the students to autonomously search and adquire new knowledge (competency C7). Moreover, the lectures are used to encourage the discussion and criticism of different options and alternatives in the problem resolution (competences B1 and C6).
Some of the sessions may be guided by the students themselves.

Personalized attention
Methodologies
Supervised projects
Laboratory practice
Guest lecture / keynote speech
Description
Keynote session: attend and answer questions from students in relation to the theoretical material exposed in the lectures.
Laboratory practice: attend and answer questions from students in relation to proposed or carried out in the laboratory practices.

Supervised projects: attend and answer questions from students in relation to the proposed projects.

The personalized attention will be carried out preferably by telematic means.

Assessment
Methodologies Competencies Description Qualification
Supervised projects A32 A34 B1 C6 C7 C8 Evaluation of the work done by the student in the supervised projects by means of mixed tests.
It includes various monitoring reports, the repository and the source code of the application, the application file and the exhibition of the final work through a video created by the participants.
40
Laboratory practice A32 A34 B1 C6 C7 Evaluation of the work done by the student in the laboratory practice.

Of this note, 5/6 will be the laboratory practices themselves, while 1/6 (10% final grade) will be for continuous monitoring.
60
 
Assessment comments
The subject is approved by obtaining at least 50% of the rating.
Part-time students could present all the practices of non Presential form.
But the mixed objetive/subjective test and defense of supervised projects will be mandatory, face-to-face or virtual through ICT resources.
In the July evaluation, a mixed objetive/subjective test and defense of supervised project will be valued and practices can be improved or presented.

Sources of information
Basic Wie Meng Lee (2012). Android 4 Desarrollo de aplicaciones. Wrox (Anaya Multimedia)
Erik Hellman (2013). Android Programming: Pushing the Limits. Wiley
Scott McCracken (2012). Android. Curso de desarrollo de aplicaciones. Inforbook
Jesús Tomás Gironés (2012). El gran libro de Android. Marcombo
Joseph Annuzzi, Lauren Darcey y Shane Conder (2015). Introduction to Android Application Development. Android Essentials. Addison-Wesley
Joan Ribas Lequerica (2014). Manual imprescindible de desarrollo de aplicaciones para Android. Anaya Multimedia
Reto Meier (2016). Professional Android. WRox

Complementary Lauren Darcey y Shane Conder (2012). Android Application development in 24 hours. SAMS
Joshua J. Drake , Zach Lanier , Collin Mulliner , Pau Oliva Fora, Stephen A. Ridley , Georg Wichersk (2014). Android Hacker's Handbook. Wiley
José Enrique Amaro Soriano (2012). Android. Programación de dispositivos móviles a través de ejemplos. Marcombo
Joan Ribas Lequerica (2012). Desarrollo de aplicaciones para Android. Anaya
Anders Goransson (2014). Efficient Android Threading: Asynchronous Processing Techniques for Android Applications. O'Reilly Media


Recommendations
Subjects that it is recommended to have taken before
Operating Systems/614G01016
Concurrency and Parallelism/614G01018

Subjects that are recommended to be taken simultaneously
Embedded Systems/614G01060

Subjects that continue the syllabus

Other comments


(*)The teaching guide is the document in which the URV publishes the information about all its courses. It is a public document and cannot be modified. Only in exceptional cases can it be revised by the competent agent or duly revised so that it is in line with current legislation.