INTERNET TECHNOLOGIES
cod. 1007076

Academic year 2020/21
3° year of course - First semester
Professor
Academic discipline
Sistemi di elaborazione delle informazioni (ING-INF/05)
Field
Ingegneria informatica
Type of training activity
Characterising
72 hours
of face-to-face activities
9 credits
hub: PARMA
course unit
in ITALIAN

Learning objectives

Knowledge and understanding - By means of lectures attended in the context of the course, the student will acquire the methods and knowledge that are necessary to understand how the Internet works. The student will learn the major Web technologies and the JavaScript programming language. The student will also learn principles and technologies of service oriented architectures. The student will acquire knowledge about the most important peer-to-peer and blockchain architectures and protocols. Finally, the student will learn the basic principles of cryptography and secure communication protocols.
Applying knowledge and understanding - By means of lectures and practical activities in the context of the course, the student will learn how to apply the acquired knowledge in a real design environment. In particular, the student will learn to: implement dynamic Web pages, implement Web applications, design and implement Web services, design and implement peer-to-peer applications, with particular attention to security issues.
Making Judgements - The student will be able understand and critically evaluate the main types of Internet technologies.
Communication Skills - By means of the lectures and the discussions with the teacher, the student will acquire the specific lexicon related to Internet technologies. It is expected that, at the end of the course, the student will be able to transmit, both in oral and written form, the main topics of the course, like ideas, engineering problems and related solutions.
Learning skills - The student that will attend the course will be able to improve its knowledge about Internet technologies, by autonomously referring to specialized books, scientific publications, also beyond the topics presented by the teacher during the lectures, in order to effectively face the entry into employment and undertake further training paths.

Prerequisites

- - -

Course unit content

1. Internet
2. Web technologies
3. Service-oriented architectures
4. Peer-to-peer systems
5. Blockchain
6. Cybersecurity

Full programme

1. Internet (4 hours) - Network edge; Network core; Delay, loss and throughput; Protocol layers; Network services; History of the Internet.
2. Web technologies (26 hours) - HTTP; Apache HTTP Server; HTML; CSS; XML; JSON; Search engines; JavaScript: basics, window object, DOM, events, AJAX, JQuery, storage, scripted graphics, development tools; Node.
3. Service-oriented architectures (4 hours) - General SOA concepts; SOAP services; RESTful services.
4. Peer-to-peer systems (8 hours) - Qualitative and quantitative characterization of P2P systems; Design issues of P2P systems; HM, DUM, DSM e LM models; HM-based peer-to-peer systems: SoulSeek, Napster, eMule, BitTorrent; DUM-based peer-to-peer systems: Gnutella, Mute, Freenet; DSM-based peer-to-peer systems: Kademlia, Chord; LM-based peer-to-peer systems: Skype.
5. Blockchain (8 hours) - General principles of blockchains; Transactions, Bitcoin; Smart Contracts; Erthereum; Consensus models: Proof of Work and Proof of Stake; Ouroboros, Ouroboros Praos and Cardano; Algorand; Types of cyber-attacks against blockchains.
6. Cybersecurity (22 hours) - General concepts of cybersecurity; Symmetric-key cryptography; Hash functions; MAC; Public-key cryptography; Digital signatures; Key distribution; User authentication; TLS and HTTPS.

Bibliography

M. Amoretti, lecture notes in english.
J. Kurose, K. Ross, "Computer Networking: A Top Down Approach", ed. Addison-Wesley, 2012.
D. Flanagan, "JavaScript - The Definitive Guide", ed. O’Reilly, 2011.
W. Stallings, "Cryptography and Network Security: Principles and Practice", 7th edition, 2017.

Teaching methods

The lectures will be given in presence, with the possibility to access them in live streaming (using Teams).
The teacher will illustrate the course topics by means of slides. Some hours will be devoted to the practice of software development. Teaching materials (including slides, lecture notes, source code, scientific articles) will be weekly uploaded on the Elly platform. To download teaching materials, on line subscription to the course is mandatory. Students that won't attend the lectures are invited to check the available teaching materials and recommendations provided by the teacher through the Elly platform.

Assessment methods and criteria

The learning evaluation consists of three moments: 1) a written exam lasting 2 hours, with open questions related to the theoretical topics of the course. excluding the cybersecurity part; 2) a written exam lasting 1 hour, with open questions related to the cybersecurity part of the course; 3) a software development project based on the technologies illustrated within the course; it is mandatory to write a short report and to make an oral presentation of the work done. Each written exam is evaluated on a 0-30 scale. The project is evaluated on a 0-30 scale. The final grade is the average of the three partial grades. There will not be midterm exams.

Other information

- - -