Unit INTERNET AND WEB PROGRAMMING

Course
Computer engineering and robotics
Study-unit Code
A005836
Curriculum
Data science e data engineering
Teacher
Walter Didimo
Teachers
  • Walter Didimo
Hours
  • 48 ore - Walter Didimo
CFU
6
Course Regulation
Coorte 2025
Offered
2025/26
Learning activities
Caratterizzante
Area
Ingegneria informatica
Academic discipline
ING-INF/05
Type of study-unit
Obbligatorio (Required)
Type of learning activities
Attività formativa monodisciplinare
Language of instruction
Italian
Contents
Internet services. Design of client/server applications. Design of Web applications and services.
Reference texts
The course deals with a variety of methodologies and related technologies that are not included all together in a single book.
All topics of the course are presented in a collection of slides prepared by the teacher.
Educational objectives
The course aims to give students the theoretical and practical notions on client/server applications and on the development of Web services. In particular, at the end of the course the student will have acquired:

(a) knowledge of the principles of client/server architectures;

(b) knowledge of advanced programming tools in Java for the creation of distributed applications.

(c) knowledge of the main methodologies for the design and development of Web applications.

(d) ability to create client/server architecture services through the Java language.

(e) ability to create Web applications, through some widely used technologies, such as HTML/CSS, Jascript, Node.Js and Java.
Prerequisites
Basic knowledge of algorithm design and analysis is required, as well as knowledge of imperative and object-oriented programming using the Java language. These notions are typically acquired in a three-year course in computer science or in computer engineering.
Teaching methods
The course consists of two main kinds of lessons:

(i) Lessons in the classroom (about 50% of total time): consists of lessons in the classroom. In each lesson the teacher illustrates new theoretical concepts, by projecting pre-defined slides.

(ii) Practical exercises in the lab (about 50% of total time): held in the software engineering laboratory; they are devoted to the design and implementation of programs, under the supervision of the teacher.
Other information

Learning verification modality
[Aims of the assessment]. The assessment methods of this course aim to estimate the theoretical knowledge of the student and his/her ability to apply this knowledge to solve both theoretical and practical problems. Details are reported below:

Written test and programming test

Duration: 2 hours
Objective: evaluating the knowledge of theoretical concepts learned in the course and assessing abilities of network programming (Internet and Web)

The correction of the test is presented to the student during a brief interview; the student can comment and discuss the result with the teacher during this interview.
Extended program
[Internet services]. Reminders on the architecture of the Internet network. Internet services: principles of client/server architecture. Analysis of some widely used applications: World Wide Web (HTTP), e-mail (SMTP), remote connection (telnet), file transfer (ftp).

[Client/Server Applications Project in Java]. Advanced programming tools: error handling, multithreading, input/output management. Design of communication protocols. Network connections via sockets and TCP secure sockets. Case studies: Web client, ChatLine. Network connections via UDP sockets.

[Web Applications and Services]. Data description formats: XML, JSON. Web Applications and Web Services: architectural principles and types of Web Services (SOAP-based and RESTful). Web application development languages, protocols, and technologies: HTML/CSS, Java Servlet and related technologies, Javascipt, AJAX, Node.js, Web sockets, and gRPC.
Obiettivi Agenda 2030 per lo sviluppo sostenibile

Share on/Follow us on