• Parallel and Distributed Systems (paradigms and models) (2018). C++ and FastFlow implementation of the parallel scan Blelloch algorithm with a master-worker architecture schema and tests.
    Code
  • Programming Tools for Parallel and Distributed Systems (2018). Collection of exercises on MPI, TBB and OpenCL. In particular, a C++ implementation of the Mandelbrot set computation using the Intel Threading Building Blocks library has been implemented.
    Code
  • Networks and Technologies for Telecommunications – FPGA part (2018). Implementation of Adders, Subtractors and Multipliers in Verilog HDL. The tests have been conducted on both the Quartus University Program Waveform Simulator and on the DE2-115 series FPGA board.
    Code
  • Networks and Technologies for Telecommunications – SDN part (2018). Portion of an In-Band Telemetry application to monitor the latency of packets traversing a certain path/tunnel established between two switches. Programming language/framework: Java, P4, P4 Runtime, ONOS, Mininet.
    Code
  • Packet Switching and Processing Architectures (2018). C++ monitoring application that captures traffic with libpcap and identifies and analyses different flows.
    Code
  • Advanced Software Engineering (2017). Collection of exercises on web services, business process modeling and containerization with Docker.
    Code
  • Advanced Programming (2016). Collection of four projects:
    1. OCaml Domain Specific Language for a Software Defined Network model and a simulation of the behavior of the network.
    2. Python API for a Software Defined Network model and a simulation of the behavior and state of the network.
    3. Multiset data structure implemented in Java using different concurrency policies.
    4. Simple Scala IRC-style chat program.
    Code
  • Network Management (2014). Lua script that monitors system events with Sysdig to measure the performance of an application and the amount of resources required.
    Code
  • Programming Languages 2 (2014). Collection of two projects:
    1. OCaml implementation of an interpreter for a functional language.
    2. Java project oriented to programming by contract approach.
    Code
  • Computer Networks (2014). Java implementation of a distributed chat system where users in a WAN can register and exchange messages with each others. The architecture of the application is composed by a Java RMI registry, a server, a set of user agents that manage the requests inserted by connected users, a set of proxies that manage the messages addressed to offline users.
    Code