- Docente: Federico Montori
- Credits: 6
- SSD: INFO-01/A
- Language: Italian
- Teaching Mode: In-person learning (entirely or partially)
- Campus: Bologna
-
Corso:
First cycle degree programme (L) in
Computer Science (cod. 8009)
Also valid for First cycle degree programme (L) in Information Science for Management (cod. 6060)
Learning outcomes
At the end of the course, the student knows methodological and technological aspects, and application development tools for mobile devices both under iOS (iPhone, iPad, iPod Touch) and Android platforms. Students will understand the management of devices with innovative user interfaces, multi-touch, event management, ObjectiveC programming, Xcode and Cocoa Touch, Eclipse and Android SDK, design patterns, I/O, sensors and geo-localization/maps APIs, networking services, debugging and testing of applications. In addition, students will understand the basic issues of applications' execution in wireless mobile scenarios, and will experience the most relevant platforms for mobile applications' development, APIs of internal devices, multimedia management, iPhone and Android SDK and design of applications under a Model-View-Control pattern.
Course contents
- Overview of the technological aspects of mobile devices
- Differences between hybrid, native, and Web applications
- Android Setup
- Android Architecture and Components
- Kotlin for Android
- Android Activities
- Android Views, Layouts, and Events
- Android Resources
- Android Intents
- Android Fragments and Navigation
- iOS Setup
- iOS Architecture and Components
- Swift for iOS
- iOS Storyboards and UIKit
- iOS Targets, Actions, and Outlets
- Architectural Design Patterns
- Android Background Work
- Android Data Management
- Pervasive computing (maps, sensors, …)
- Programmatic UI and Compose
- Flutter
Readings/Bibliography
Online material on https://developer.android.com/
Online material on https://developer.apple.com/
Teaching methods
The course takes place in the second semester and is structured as in-person lectures held in Italian, with course materials provided in English. It first introduces the fundamental concepts that are covered in the rest of the course and establishes the exam policies.
In particular, after presenting the basic notions and development tools (AndroidStudio and XCode), each lecture addresses a specific topic, with many references to support libraries, development tools, and debugging facilities. In most cases, lectures conclude with the practical application of the presented concepts through programming exercises carried out live in class by the instructor. This approach fosters understanding of the principles and their practical implementation, enabling students to independently develop their own prototype applications outside the classroom (using personal development tools). The course also provides introductory elements to guide students toward hybrid application development.
Given the type of activities and teaching methods adopted, attendance in this course requires prior completion by all students of Modules 1 and 2 of the safety training for study environments, available in e-learning mode at: https://elearning-sicurezza.unibo.it/
Assessment methods
The course requires the completion of a project (individual or in groups of two) involving the development of a mobile application, in any available technology. The project must then be discussed, including the design and implementation choices, during an oral exam session (approximately 30 minutes). Before the end of the course, possible projects are proposed, along with possible levels of extension and complexity. If interested, students may propose their own project ideas. In this case, the application must be agreed upon in advance with the instructor and the tutor, preferably by sending an email with the subject line: “Proposta progetto esame corso LAM A.A. X/Y” to the course tutor’s email address.
Once the project has been defined (either approved by the instructor or selected from the provided list), the student must develop the application and prepare: a 10-minute presentation (supported by 10–15 slides); a written report in electronic format (PDF), equivalent to an expanded version of the presentation’s verbal content, including a description of how the application works supported by screenshots, design choices, and all references to materials, developed code, and documentation sources.
There are normally six annual submission deadlines: June, July, September, November, January, and February. Projects must be submitted by the indicated deadlines (communicated via the course mailing list and on the VIRTUALE course portal), exclusively through the course’s VIRTUALE platform, by uploading a compressed archive containing the project code and the report. After submission, students are usually invited to the oral exam within one or two weeks following the deadline. The exam date is scheduled in advance on Almaesami and published on the course newsgroup to allow interested students to attend. The exam takes place in person at the instructor’s office or in one of the seminar rooms of the Department of Computer Science and Engineering, located at Mura Anteo Zamboni 7. The exam session (project demo/presentation) also includes an oral examination (consisting of questions and short exercises) covering the entire course syllabus, including theoretical questions about the in-class demos carried out on both platforms (iOS and Android). Students are therefore required to be familiar with the development techniques illustrated in class for both platforms. The outcome of the project discussion results in a grade out of 30, which may be adjusted upward or downward based on the theoretical part of the oral exam. This determines the proposed final grade. Both parts of the exam must be passed in order to pass the course. If the final grade reaches or exceeds 30/30, honors (lode) may be awarded.
Students with Specific Learning Disorders (SLD) or temporary or permanent disabilities: students are encouraged to contact the University's dedicated support office as early as possible (https://site.unibo.it/studenti-con-disabilita-e-dsa/it). The office will propose any appropriate accommodations for eligible students. Such accommodations must be submitted to the course instructor for approval at least 15 days in advance. The instructor will assess their suitability in relation to the intended learning outcomes of the course.
Regarding assessment, a limited, transparent, and non-substantive use of AI is permitted for support activities, such as summarization and rephrasing. The substantial use of AI to complete any part of the assessment is not permitted.
Teaching tools
Slides, personal computer, projector, online references.
Office hours
See the website of Federico Montori