Unit INTERNET AND WEB PROGRAMMING

Course
Electronic engineering for the internet-of-things
Study-unit Code
70A00035
Curriculum
Consumer and aerospace iot
Teacher
Walter Didimo
Teachers
  • Walter Didimo
Hours
  • 72 ore - Walter Didimo
CFU
9
Course Regulation
Coorte 2022
Offered
2022/23
Learning activities
Affine/integrativa
Area
Attività formative affini o integrative
Academic discipline
ING-INF/05
Type of study-unit
Opzionale (Optional)
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.
Condividi su