73119 - Telecommunication Software and Laboratory

Course Unit Page

Academic Year 2018/2019

Learning outcomes

As an outcome of the course the student will acquire knowledge about programming applications and services for telecommunications systems. In particular, basic principles of SW programming will be acquired with hands on experience on Android application development.

Course contents

The course consists in two modules: "Software per le Telecomunicazioni" and "Laboratorio di Software per le Telecomunicazioni" that run in parallel.

The first modules, awarding six credits, introduces basics on Software development, Object Oriented Programming, and Operating Systems with the objective of allowing Students to understand the principles of software applications development and Operating Systems behavior. Laboratory experiences (in addition to those of the second module) and homework are proposed throughout the entire module with the aim of helping Students to mastering the concepts and tools studied during the course.

The first module is organized into three parts as follows:

Part I: Programming Languages

  • Introduction and rationale
  • Software programming principles and tools
  • Object Oriented Programming Paradigm
  • Object Oriented Programming Languages (JAVA)
  • Principles of Android Application Programming

Part II: Operating System Overview

  • OS Architecture (Linux/Android)
  • OS Basic components (Linux/Android)
  • OS Networking (Linux/Android)
  • OS Drivers (Linux/Android)

Skills and knowledge acquired during the first module will be used during the second module, "Laboratorio di Software per le Telecomunicazioni T" (3 credits). Students will create, design, and develope an Andorid Mobile application. The detailed program of the second module can be found in the course web page.


Slides will be made available to the registered students on AMS Campus.

The following books shall be used to complete the preparation and as references

  1. M. Gabbrielli, S. Martini, Programming Languages: Principles and Paradigms, Springer
  2. Siddhartha Rao, C++ in One Hour a Day, Sams Teach Yourself, Sams Publishing
  3. Rogers Cadenhead, Java in 24 Hours, Sams Teach Yourself, Sams Publishing
  4. Mark G. Sobell, A Practical Guide to Linux Commands, Editors, and Shell Programming, Prentice All
  5. Modern Operating Systems, Andrew S. Tanenbaum, Herbert Bo, Pearson Ed.


Other supporting material can be suggested during the course and listed on the course slides.

Teaching methods

Principles, concepts, and basic tools are introduced with the support of slides.
Programming exercises are proposed to Students as laboratory experiences and homework in order to allow a better understanding of the course subjects.

Assessment methods

Assessment is performed through

  • a multiple choice test;
  • an interview.
The multiple-choice test and the interview are part of a single assessment and shall be undergone on the same day.

Teaching tools

  • Laboratory with personal computers equipped with Eclipse (IDE), Java Developer Kit (JDK), and Android SDK.
  • Students can use their own computing resources (notebooks or personal computers). IDE and SDK tools needed to complete the proposed exercises and homework are open source tools available on the Internet

Links to further information


Office hours

See the website of Alessandro Vanelli Coralli

See the website of Daniele Tarchi