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, as well as design and implementation principles of Cloud applications. Finally, the student will acquire knowledge about the most important peer-to-peer architectures and 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 Cloud applications, design and implement peer-to-peer applications.
Making Judgements - The student will be able understand and critically evaluate the main types of Internet oriented systems.
Communication Skills - By means of the lectures and the discussions with the teacher, the student will acquire the specific lexicon related to Internet oriented systems. 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 oriented systems, 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. Basic Web technologies
3. JavaScript
4. Service-oriented architectures and cloud applications
5. Peer-to-peer systems
Full programme
1. Internet (4 hours) 1.1. Network edge 1.2. Network core 1.3. Delay, loss and throughput 1.4. Protocol layers 1.5. network applications 1.6. History of the Internet 2. Basic Web technologies (8 hours) 2.1. HTTP 2.2. Apache HTTP Server 2.3. HTML, CSS, XML e JSON 2.4. Search engines 2.5. MVC 3. JavaScript (16 hours) 3.1. Client-side JavaScript (basics, window object, DOM, events, AJAX, JQuery, storage, scripted graphics, dev tools,
WebRTC) 3.2. Server-side JavaScript (Node.js) 4. Service-oriented
architectures and cloud applications (8 hours) 4.1. General SOA concepts 4.2. SOAP services 4.3. RESTful services 4.4. Microservices 4.5. OpenStack, cloud
application development 5. Peer-to-peer systems (12 hours) 5.1. Qualitative and quantitative characterization of P2P systems 5.2. Design issues of P2P systems 5.3. HM, DUM, DSM e LM models 5.4. HM-based peer-to-peer systems: SoulSeek, Napster, eMule, BitTorrent 5.5. DUM-based peer-to-peer systems: Gnutella, Mute, Freenet 5.6. DSM-based peer-to-peer systems: Kademlia, Chord 5.7. LM-based peer-to-peer systems: Skype 5.8. Blockchain and Bitcoi
Bibliography
M. Amoretti, dispense in inglese sugli argomenti del corso.
J. Kurose, K.
Ross, "Computer Networking: A Top Down Approach", ed. Addison-
Wesley, 2012.
D. Flanagan, "JavaScript - The Definitive Guide", ed. O’Reilly, 2011. M. Cantelon, M. Harter, T. J. Holowaychuck, N. Rajlich, "Node.js in action", ed. Manning, 2014.
Teaching methods
Teaching activities will be mostly performed in terms of lectures given by the teacher, showing slides and writing on the blackboard. Some hours will be devoted to the practice of software development for Internet oriented systems. 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 teachning materials and recommendations provided by the teacher through the Elly platform.
Assessment methods and criteria
The learning evaluation consists of two moments: 1) a written exam lasting 2 hours, with open questions related to the theoretical topics of
the course; 2) 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. The 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 two partial grades, with weight 0.4 for the written exam and 0.6 for the project. There will not be midterm exams.
Other information
- - -
2030 agenda goals for sustainable development
- - -