- Docente: Daniele Tarchi
- Credits: 9
- SSD: ING-INF/03
- Language: Italian
- Moduli: Alessandro Vanelli Coralli (Modulo 1) Daniele Tarchi (Modulo 3) Daniele Tarchi (Modulo 2)
- Teaching Mode: Traditional lectures (Modulo 1) Traditional lectures (Modulo 3) Traditional lectures (Modulo 2)
- Campus: Bologna
- Corso: First cycle degree programme (L) in Electronics and Telecommunications Engineering (cod. 0923)
Learning outcomes
At the end of the course the student is introduced to the fundamental concepts for the realization of telecommunication services and applications platforms. He knows the services for fixed and mobile terminals, the broadcasting and streaming services, the services based on web interfaces. It is introduced to the development of software applications for the practical realization of the services covered in the Telecommunication Software course.
Course contents
The course aims to introduce the basic concepts of the use of software in telecommunications. We will consider both aspects of telecommunication systems modeling, for their computer simulation, and programming, oriented to the development of telecommunication services and applications.
The "Telecommunication Software and Laboratory" course consists of three modules delivered in parallel.
Module 1 is taught by Prof. Alessandro Vanelli Coralli. Matlab is the software development platform used to model the functioning of telecommunication systems. Module 1 is organized as follows:
- Introduction to Matlab
- Matlab scripts and functions
- Array and indexing
- The numerical simulation on Matlab
- Control flow in Matlab
- Advanced data types
- Import / Export in Matlab
- Debugging in Matlab
- Application to Machine Learning and Neural Networks
Modules 2 and 3, taught by Prof. Daniele Tarchi, are organized as a single module aimed at introducing the use of programming languages for the implementation and development of telecommunications services. Java is the used programming language, while Android is the reference operating system for application development.
Modules 2 and 3 are organized in three parts.
Part 1: Introduction to the course and Java (20 hours):
- Introduction to the course. Telecommunications software. Mobile operating systems.
- Development environment.
- Introduction to Java
- Java operators.
- Selections and iterations in Java.
- The methods in Java. Arrays in Java.
- Classes and objects in Java.
- Exceptions in Java
Part 2: Introduction to Android and app development (20 hours)
- The Development environment: Android Studio; Installation; Hello World App. The Android Developer site. The examples on Android Developer.
- Multi-screen Apps: The Activities and the navigation flow; Resources in Android: Static resources; Use of resources at run time
- Tutorial on creating a basic app
- The explicit intent; Tutorial on creating a multi-screen app
- The User Interface: View and Layout; Tutorial on creating the User Interface
- Implicit intent. Tutorial on creating an app that takes advantage of Android system services
- Persistence management: Saving preferences; Tutorial on saving preferences.
- Persistence management: Saving data. Tutorial on saving data
Part 3: Network applications and their implementation on Java and Android (20 hours)
- Telecommunications and applications. The communication paradigms (Client / Server, Peer-to-Peer). Notes on protocols.
- The HTTP protocol
- HTML and XML languages. Introduction to HTML5.
- The Java I/O and Java Net libraries
- Network Socket implementation
- Access to the web in Android; image download.
- Sensors in Android: Management of direct sensors; Indirect sensors. Sensor management tutorial.
Readings/Bibliography
Slides of the course will be made available on IOL
Suggested readings for modules 2 and 3:
- Quentin Charatan, Aaron Kans, "Java in Two Semesters - Featuring JavaFX", Fourth Edition, Springer Nature Switzerland, 2019
- Massimo Carli, “Android 9 – Guida per lo sviluppo di applicazioni mobili”, Apogeo, 2019
- Michael Burton, "Android App Development For Dummies", 3rd Edition, Wiley, 2016
- Behrouz A. Forouzan, Firouz Mosharraf, "Reti di Calcolatori - un approccio Top-Down", McGraw Hill, 2013
- James F. Kurose, Keith W. Ross "Reti di calcolatori e internet - Un approccio top-down", 7th Edition, Pearson, 2017
Reference guide for Android development.
- http://developer.android.com
Teaching methods
Lectures and Lab hands-on sessions for developing Android based apps under the teacher guidance.
Assessment methods
The learning assessment will be carried out through a written exam followed by the presentation of the developed project.
The written exam will be aimed at verifying the learning of the theoretical notions given in the three modules.
The verification of the developed project will be carried out through the presentation of a working Android app.
At the beginning of the course the students will be organized in groups of two / three components who will be assigned an Android app project which they will have to develop. Students are free to propose an app project to be agreed with the teacher.
During the exam, students will have to make a short presentation (about 5 minutes) of their app using an Elevator Pitch approach, to illustrate the objective, architecture, greater complexity and future challenges of the developed project. An individual interview will follow in which each student will have to illustrate the portion of the code developed.
Teaching tools
PC Windows/Linux/MacOS for installing the development tools
Office hours
See the website of Daniele Tarchi
See the website of Alessandro Vanelli Coralli
SDGs

This teaching activity contributes to the achievement of the Sustainable Development Goals of the UN 2030 Agenda.