All

WindFlow

Contribution to the WindFlow library, designed to perform parallel stream processing on shared-memory systems. This is a project of the Parallel Programming Models ([PPMs](http://calvados.di.unipi.it/paragroup/)) group at the Department of Computer Science, University of Pisa, Italy. My contribution mainly consists in the implementation of a benchmark composed by four real-time streaming applications in the fields of fraud detection, Internet of Things, vehicular traffic monitoring and word frequency analysis.

Parallel and Distributed Systems (paradigms and models)

C++ and FastFlow implementation of the parallel scan Blelloch algorithm with a master-worker architecture schema and tests.

Programming Tools for Parallel and Distributed Systems

Exercises on MPI, TBB and OpenCL, including a C++ implementation of the Mandelbrot set computation using the Intel TBB library.

Networks and Technologies for Telecommunications - FPGA part

Verilog implementation of Adders, Subtractors and Multipliers.

Networks and Technologies for Telecommunications - SDN part

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.

Packet Switching and Processing Architectures

C++ monitoring application that captures traffic with libpcap and identifies and analyses different flows.

Advanced Software Engineering

Collection of exercises on web services, business process modeling and containerization with Docker.

Advanced Programming

Collection of four projects using OCaml, Python and Java programming languages.

Network Management

Lua script that monitors system events with Sysdig to measure the performance of an application and the amount of resources required.

Programming Languages 2

Collection of four projects using OCaml and Java programming languages.