Study-unit INTERNET AND WEB PROGRAMMING

Course name Computer engineering and robotics
Study-unit Code A003451
Curriculum Data science e data engineering
Lecturer Walter Didimo
Lecturers
  • Walter Didimo
Hours
  • 72 ore - Walter Didimo
CFU 9
Course Regulation Coorte 2023
Supplied 2023/24
Supplied other course regulation
Learning activities Caratterizzante
Area Ingegneria informatica
Sector 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 in Java. 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.
To support the student, the majority of the topics of the course are presented in a set of slides prepared by the teacher.

In addition, books and tutorials can be used to get more details on the different topics of the course. Among them:

(i) J. Kurose e K. Ross, Internet e Reti di Calcolatori, McGraw-Hill (for the first part, concerned with well-known network applications)
(ii) Ken Arnold, James Gosling, David Holmes, Java: Manuale Ufficiale, Addison-Wesley (for technical aspects related to advanced Java programming)
(iii) on-line tutorial from the w3c web site (for the part devoted to Web applications and services)
Educational objectives The aim of the course is to provide theoretical and practical notions on client/server architectures and on Web applications and services. In particular, at the end of the course the student should have:

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

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

(c) knowledge of the main methodologies for the design and the development of Web applications. Ability of implementing services with a client/server architecture in the Java language, both directly using low-level sockets and using high-level technologies like RMI.

(d) ability of self-orienting among the different technologies available for developing Web services, and ability of applying some of these technologies, both for client-side and for server-side development.
Prerequisites Students should have basic knowledge on algorithm design and analysis. They should also know the principle of common software programming paradigms, such as the imperative and the object-oriented ones, with special attention to Java, learned in the fundamental programming module.
Knowledge on software engineering recommended.
Teaching methods The course consists of two main kinds of lessons:

(i) Lessons in the classroom (about 60% 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 40% 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



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 [Service in Internet]. The Internet Architecture. Internet services: client/server architecture. Well-known services: World Wide Web (HTTP), electronic mail (SMTP), Remote connections (telnet), File transfer (ftp), DNS.

[Design of client/server applications in Java]. Advanced programming tools in Java: Exceptions, multithreading, input/output classes. Design of communication protocols. TCP socket. Case studies: Web client, SMTP client, ChatLine. UDP socket. Middleware for distributed applications: Remote Method Invocation (RMI).


[Web Applications and Services]. Exchanging data between applications: XML, JSON. Web applications and Web Services: architectural principles and types of Web Services (SOAP-based e RESTful). HTML, CSS, Servlet, Javascipt, AJAX, Node.js.
Obiettivi Agenda 2030 per lo sviluppo sostenibile

Digital Information Service by Lidia Pozzoblu - Thanks to Aldo Bizzilupo for Web site and other technical assistance.