TEACHING
Courses
BS DEGREE - PROGRAMMING
This course provides an introduction to computer programming using the Java language. The primary objective is to provide students with the knowledge necessary
to understand and use Java language and to apply language to solve problems. The course supports the theoretical teaching of Java language and its structures, exercises
and laboratories. At the end of this course the student:
1. knows the main elements that characterize a programming language (syntax, semantics, implementation mechanisms);
2. knows the control structures, the basic data structures and the main abstractions provided by the Java language and in general by object languages;
3. applies the language for solving simple problems exploiting the potential of an object-oriented programming language.
At the end of the course the student has the necessary knowledge to individually deal with the study of a programming language and to understand the problems related to the development and application of programming languages. At the end of the course the student is able to apply the programming language to the resolution of simple problems identifying the abstractions most suitable for the formalization of the problem in an object language. At the end of the course the student is able to identify the conceptual scheme of solving a problem and to use the programming language for organizing its solution. At the end of the course the student is able to communicate in full and correct way the characteristics of a programming language and the structure of the applications built with such a language.
1. knows the main elements that characterize a programming language (syntax, semantics, implementation mechanisms);
2. knows the control structures, the basic data structures and the main abstractions provided by the Java language and in general by object languages;
3. applies the language for solving simple problems exploiting the potential of an object-oriented programming language.
At the end of the course the student has the necessary knowledge to individually deal with the study of a programming language and to understand the problems related to the development and application of programming languages. At the end of the course the student is able to apply the programming language to the resolution of simple problems identifying the abstractions most suitable for the formalization of the problem in an object language. At the end of the course the student is able to identify the conceptual scheme of solving a problem and to use the programming language for organizing its solution. At the end of the course the student is able to communicate in full and correct way the characteristics of a programming language and the structure of the applications built with such a language.
The acquisition of the different knowledge and skills expected will develop parallel throughout the teaching, in which the following topics will be dealt with:
˗ Introduction to programming languages: abstractions, algorithms, syntax, semantics and development tools (lessons 3 hours).
˗ Introduction to the Java language. Basic concepts, compilation, execution, application structure (lessons 3 hours).
˗ Primitive types and expressions (lessons 8 hours; exercises 1 hours; laboratory 2 hours).
˗ Control structures (lessons 8 hours; exercises 1 hours; laboratory 2 hours).
˗ Arrays (lessons 4 hours; exercises 1 hours; laboratory 2 hours).
˗ Hierarchy of reference types, cast and polymorphism (lessons 6 hours; exercises 1 hours; laboratory hours 4).
˗ Implementation of classes (lessons 8 hours; exercises 1 hours; laboratory hours 4).
˗ Implementation of inheritance (lessons 8 hours; exercises 1 hours; laboratory 2 hours).
˗ Interfaces (lessons 2 hours; exercises 1 hours; laboratory 2 hours).
˗ Variables, scopes and shading (lessons 2 hours; exercises 1 hours; laboratory 2 hours).
˗ Early- and late-binding in Java (lessons 4 hours; exercises 1 hours; laboratory 2 hours).
˗ Memory management: stack and heap. Recursive methods (lessons 4 hours; exercises 1 hours; laboratory 2 hours).
˗ Exceptions (lessons 6 hours; laboratory 2 hours).
˗ Implementation of generic types (lessons 4 hours).
˗ Introduction to programming languages: abstractions, algorithms, syntax, semantics and development tools (lessons 3 hours).
˗ Introduction to the Java language. Basic concepts, compilation, execution, application structure (lessons 3 hours).
˗ Primitive types and expressions (lessons 8 hours; exercises 1 hours; laboratory 2 hours).
˗ Control structures (lessons 8 hours; exercises 1 hours; laboratory 2 hours).
˗ Arrays (lessons 4 hours; exercises 1 hours; laboratory 2 hours).
˗ Hierarchy of reference types, cast and polymorphism (lessons 6 hours; exercises 1 hours; laboratory hours 4).
˗ Implementation of classes (lessons 8 hours; exercises 1 hours; laboratory hours 4).
˗ Implementation of inheritance (lessons 8 hours; exercises 1 hours; laboratory 2 hours).
˗ Interfaces (lessons 2 hours; exercises 1 hours; laboratory 2 hours).
˗ Variables, scopes and shading (lessons 2 hours; exercises 1 hours; laboratory 2 hours).
˗ Early- and late-binding in Java (lessons 4 hours; exercises 1 hours; laboratory 2 hours).
˗ Memory management: stack and heap. Recursive methods (lessons 4 hours; exercises 1 hours; laboratory 2 hours).
˗ Exceptions (lessons 6 hours; laboratory 2 hours).
˗ Implementation of generic types (lessons 4 hours).
MS DEGREE - INNOVATIVE TELECOMMUNICATION SYSTEMS
The main goal is to improve the skills acquired during the BS course, entitled Internet of Things Fundamentals, and to provide an in-depth knowledge of the latest generation
telecommunication systems. The module aims to provide the necessary knowledge and skills for the design and testing of innovative telecommunication systems in order to create
dynamic and skilled professional figures, with respect to the current market requests. In the program, the addressed topics are selected on the basis of two criteria: a topic
which represents a fundamental knowledge in the current technology landscape and/or a topic characterized by many real applications. To this end, the goals are:
1. the deep study of the Internet of Things paradigm and the various technologies connected to it, and the performance evaluation by means of simulation tools. In fact, different simulation environments will be analyzed, in order to be able to critically choose the most suitable solution to realize the desired system
2. the ability to identify a problem and solve it by means of a professional approach
3. the acquisition of transversal skills, such as language skills, written communication skills, and judgment autonomy. In fact, the module will try to motivate the student's critical attitude in evaluating the various solutions. The student will be able to make a judgment on the eligibility of the obtained results, motivating it on the basis of the acquired knowledge by means of a systematic and scientific approach
4. the knowledge of the constant technological innovations and the development of innovative solutions that meet the requirements based both on the knowledge, gained through the lessons and experience in the laboratory. Finally, the module will train the student by taking part in the open and debated issues within the scientific community and by identifying possible future developments.
1. the deep study of the Internet of Things paradigm and the various technologies connected to it, and the performance evaluation by means of simulation tools. In fact, different simulation environments will be analyzed, in order to be able to critically choose the most suitable solution to realize the desired system
2. the ability to identify a problem and solve it by means of a professional approach
3. the acquisition of transversal skills, such as language skills, written communication skills, and judgment autonomy. In fact, the module will try to motivate the student's critical attitude in evaluating the various solutions. The student will be able to make a judgment on the eligibility of the obtained results, motivating it on the basis of the acquired knowledge by means of a systematic and scientific approach
4. the knowledge of the constant technological innovations and the development of innovative solutions that meet the requirements based both on the knowledge, gained through the lessons and experience in the laboratory. Finally, the module will train the student by taking part in the open and debated issues within the scientific community and by identifying possible future developments.
• General introduction (1h)
• Internet of Things paradigm (4h) (Objectives 1,3)
• Application scenarios (2h) (Objectives 3, 4)
• Technologies, protocols and standards: (Objectives 1,3) WSN and WMSN (5h); Emulators: Contiki, Cooja; Simulators: Omnet, Castalia; Security; RFID (4h); NFC (2h); Nanotechnologies (2h); MQTT, COAP, RPL, 6LowPAN, ZigBee (7h); Information Centric Networks paradigm (2h)
• Security and privacy (3h) (Objectives 3, 4)
• Internet of Things paradigm (4h) (Objectives 1,3)
• Application scenarios (2h) (Objectives 3, 4)
• Technologies, protocols and standards: (Objectives 1,3) WSN and WMSN (5h); Emulators: Contiki, Cooja; Simulators: Omnet, Castalia; Security; RFID (4h); NFC (2h); Nanotechnologies (2h); MQTT, COAP, RPL, 6LowPAN, ZigBee (7h); Information Centric Networks paradigm (2h)
• Security and privacy (3h) (Objectives 3, 4)