Giter Club home page Giter Club logo

ap-fall-16's Introduction

ap-fall-16

A collection of projects of the Advanced Programming course of the Computer Science and Networking Master's Degree @ University of Pisa.

Note for projects 1 and 2: The abstract model for the Software Defined Network of projects 1 and 2 contains one switch that communicates with one controller: it is required the implementation of both the modules and of the communication between them.

Project number Language Description
1 OCaml The implementation of a Domain Specific Programming Language for a Software Defined Network model and a simulation of the behaviour of the network modeled. The main parts are an abstract switch module (capable of receiving, processing and forwarding packets) and a controller module (capable of creating and modifying the forwarding table and able to manage security policies). The interpreter for the designed control language has been written in OCaml. The interaction between the modules is simulated given a set of packets, the network and the interfaces of input and output of the switch module.
2 Python The implementation of an API for a Software Defined Network model and two simulations of the behaviour and state of the network modeled. The main parts of the project are the modules switch and controller (implemented as Python classes) and the API that provides all the functionalities needed to modify and manage the forwarding table and the security policies. The first simulation is automatic and executes on given data. The second simulation is interactive and allows the user to set the interfaces of the switch and to insert the network as a set of IP addresses. Given the initial data both the simulations show the state of the system at each step of the execution: forwarding table, active security policies, packets queued in the buffer of each interface of the switch (input and output) and packets that have been dropped (with the reason of their discard).
3 Java The implementation of a multiset data structure using different concurrency policies. The three locking methods used are the fine grain synchronization, the lazy synchronization and the lock-free synchronization.
4 Scala A simple IRC-style chat program. Multiple clients can connect to the Server (it is sufficient to open a Telnet session or to run a Client instance) and each one can register, login, logout, interact with single users and participate in chat groups. The user interaction is possible through a Command Line Interface.

ap-fall-16's People

Contributors

alefais avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.