73119 - Telecommunication Software and Laboratory

Academic Year 2020/2021

  • 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:

  1. Introduction to Matlab
  2. Matlab scripts and functions
  3. Array and indexing
  4. The numerical simulation on Matlab
  5. Control flow in Matlab
  6. Advanced data types
  7. Import / Export in Matlab
  8. Debugging in Matlab
  9. 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

Industry, innovation and infrastructure

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