Network programming and security (2019/2020)

Course code
4S003184
Credits
6
Coordinator
Damiano Carra
Academic sector
INF/01 - INFORMATICS
Language of instruction
Italian
Teaching is organised as follows:
Activity Credits Period Academic staff Timetable
Teoria 4 II semestre Damiano Carra, Po Pa Futuro

Go to lesson schedule

Laboratorio 2 II semestre Damiano Carra, Po Pa Futuro

Go to lesson schedule

Learning outcomes

The course aims to provide knowledge in three areas: programming of network applications, configuration and management of a network and its equipment, basic concepts on the security of computer systems in the network.

At the end of the course the student will have to demonstrate knowledge and ability to understand the functioning of the networks, the applications that use them and the basics of security; to have the ability to apply the acquired knowledge and skills to design network applications, to design simple secure networks and to configure the related equipment; to know how to choose the most appropriate protocol for each communication service contained in the designed application; to know how to develop the necessary skills to continue the studies independently in the field of communications security.

Syllabus

* Netowrk programming:
-- TCP/UDP sockets in Java and C;
-- Multithread sockets;
-- Websockets and web services;
-- Design of client-server applications.

* Network management:
-- Network analysis tools (Wireshark, traceroute, ping, ifconfig, route, nslookup, whois);
-- Configuration and management of routers and routing protocols, addressing and subnetting, IP services (access control lists, DHCP, NAT), and switching (VLAN, Spanning Tree).

* Computer security:
-- Introduction to system and network security;
-- Cryptography, symmetric and asymmetric;
-- Message integrity and authentication;
-- Application layer security (e.g., PGP), transport layer security (SSL), data link security (wireless LAN);
-- Operational security (firewall and intrusion detection).

Assessment methods and criteria

The examination aims at verifying the comprehension of course contents and the capability to apply these contents in the resolution of some exercises.

Written examination with theoretical questions, code writing, exercises according to the content of lessons and laboratory sessions.
The total score that can be obtained from the questions about the theory is 18 points, while the total score that can be obtained from the exercises is 15 points. The final score is the sum the points obtained from the questions and from the exercises. If the final score is less than 17 points, the examination fails. If it is equal to 17 points, the student must sustain an oral exam. If the final score is equal to or greater than 18 points, the exam is passed, unless the examiner asks for a compulsory additional oral exam. If the exam is passed, the student may ask for an additional oral exam. The oral exam consists of at least two questions about the theory. The final score is given by the mean of the scores obtained in the written and oral exams.

Reference books
Activity Author Title Publisher Year ISBN Note
Teoria Andrew S. Tanenbaum Reti di calcolatori (Edizione 4) Pearson - Prentice Hall 2003 8871921828
Teoria J.F. Kurose, K.W. Ross Reti di calcolatori e Internet - Un approccio top-down (Edizione 6) Pearson Education Italia 2013 9788871929385
Teoria B.A. Forouzan, F. Mosharraf Reti di calcolatori - Un approccio top-down (Edizione 1) McGraw-Hill 2013 9788838668197