69775 - Laboratory of Networking and Mobile App Programming

Academic Year 2021/2022

  • Docente: Walter Cerroni
  • Credits: 6
  • SSD: ING-INF/03
  • Language: Italian
  • Moduli: Walter Cerroni (Modulo 1) Enrico Paolini (Modulo 2)
  • Teaching Mode: Traditional lectures (Modulo 1) Traditional lectures (Modulo 2)
  • Campus: Cesena
  • Corso: First cycle degree programme (L) in Electronics Engineering for Energy and Information (cod. 8767)

    Also valid for First cycle degree programme (L) in Biomedical Engineering (cod. 9082)

Learning outcomes

Within this course, the student will learn how to design and manage a typical corporate telecommunication network and how to program applications for mobile devices. In particular, through lectures and lab experience, the student will gain knowledge about design, configuration, and deployment of a private telecommunication network. In addition, the student will learn and practice on the development of applications for mobile devices, such as smartphones and tablets. Lab sessions constitute a relevant part of the course schedule.

Course contents

The course provides the basic principles for the design, administration, monitoring and management of enterprise networks based on TCP/IP protocols, and for mobile application development.

The specific topics addressed include:

  • Introduction to Linux as an operating system for network administration
  • Software tools for protocol analysis: wireshark, tcpdump
  • Basics of network security issues, SSH protocol
  • IP addressing and network planning, subnetting
  • Network interface configuration, DHCP server
  • Ethernet switch management and virtual LAN (VLAN) configuration
  • IP packet forwarding, tools for firewall and NAT implementation
  • Open-source IP router implementation
  • Introduction to application programming for mobile devices
  • Native and web-based app programming
  • Mobile app development frameworks
  • Basics of HTML5, Javascript, CSS as tools for mobile app development
  • Laboratory sessions for app development
  • Final project of a mobile app

Readings/Bibliography

M. L. Merani, M. Casoni, W. Cerroni,  Hands-On Networking. From Theory to Practice, Cambridge University Press, UK, 2009, ISBN-13: 9780521869850.

Slides provided by the instructor (in italian).

Linux man and info commands.

Suggested documentation available on-line.

Teaching methods

The course consists of both lectures, to introduce specific topics and focus on operational aspects, and practical laboratory sessions. Significant part of the course schedule is dedicated to lab experiments, which are essential to gain a deep knowledge of the practical aspects related to the design and management of communication networks, and to the development of applications for mobile devices.

In order to motivate students and stimulate their interest, each lab exercise is finalized to achieve practical goals that are also functional to perform the following ones. Lab exercises are also intended to stimulate teamwork skills.

Assessment methods

The final assessment consists of two parts:

  • Module 1: a written test, where the student is asked to design a communication network, from address planning to equipment configuration.
  • Module 2: a written and practical test. In the written test, the student is requested to answer a few multiple-choice questions about web technologies; in the practical test, the student must write code for programming mobile applications.

Both parts require the use of theoretical and practical concepts learned in the course. Attending the lab sessions is essential to develop problem solving skills required to successfully pass the final exam.

Teaching tools

Software-based protocol analyzer.

Linux-based workstations with networking software tools.

Ethernet switches.

Software tools for mobile app development.

Video projector for class lectures.

Office hours

See the website of Walter Cerroni

See the website of Enrico Paolini

SDGs

Industry, innovation and infrastructure

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