Università degli Studi di Napoli "Parthenope"

Teaching schedule

Academic year: 
2020/2021
Belonging course: 
Course of Master's Degree Programme on DATA AND COMMUNICATION SECURITY ENGINEERING
Disciplinary sector: 
INFORMATION PROCESSING SYSTEMS (ING-INF/05)
Language: 
Italian
Credits: 
6
Year of study: 
1
Teachers: 
de simone luigi
Cycle: 
Second semester
Hours of front activity: 
48

Language

Italian

Course description

To understand the main architectural and implementation spects related to web applications and mobile applications, for some of the most widespread technologies. To acquire the capability in designing and developing Web and mobile applications.

Prerequisites

Object Oriented Programming

Syllabus

Introduction to the Java language. Origins and objectives. Life cycle of a Java program. Implementation, compilation and execution of a Hello, World program. Basic constructs of the Java language. Introduction of the Eclipse development environment. I / O in Java. Exception handling. Types of abstract data: arrays and collections. Inheritance and polymorphism. Interfaces and implementation. User interface in Java. Events and listeners. Programming exercise in Java: creation of an interactive application for the calculation of the tax code from existing libraries for calculation. Introduction to Android. Android architecture. Real and virtual machines. Life cycle of an application. Introduction to Gradle Introduction to the Android Studio development environment. Implementation of the static part of an Android application. Manifest. Resources and internationalization. Graphic layout. Layouts, styles and themes. Activity. Fundamental widgets. Events and listeners. Implementation of a first Hello, World application. Further elements of the user interface of an Android application: fragment, menu, dialog, toast. Intent and communication between Activity. Management of persistent data in the Android environment: Shared Preferences, files, databases, access to Web services, use of remote databases with Firebase. Publishing of an Android application. Signature, safety and business models. Thread, Task and Services. Access to sensors and maps. Introduction to testing of Android applications Android programming exercise: creation of an application to calculate the tax code starting from the interactive Java application made previously. Introduction to Concurrent Versioning Systems. Key features offered by Git. Creation and sharing of software projects with Github Introduction to Web applications. Basic architectures and languages. Client server model and subsequent evolutions. Introduction to Client Side languages for Web applications. Introduction to HTML and HTML 5. CSS. Introduction to Javascript. Basic constructs. Events and listeners. Types of data. Interaction with the DOM. Javascript debugging with Firebug. JQuery. Introduction to Rich Internet Applications and Ajax. Overview of the additional extensions proposed for Javascript. Programming exercise in Javascript Server side languages. Introduction to PHP. Node.js: general features, tools and hosting. Creation of a Web Server (Hello, World) in node.js Basic forms. Creation of new modules in Node.js. Management of requests and responses http. Access to the file system. Events and listeners. Sending emails. Programming tutorial with Node.js: creation of a static server in node.js

The course aims to provide the basic theoretical and methodological notions for the design and development of web applications and mobile applications. To this purpose, after an introduction to Java language programming, the main methodological and architectural issuesrelated to mobile applications are presented. The study of mobile applications is specialized by focusing on Android applications, for which the development and execution environments and the design and programming techniques necessary for their realization are presented. In the second part of the course the architectural and design issues related to web applications are presented, with brief introductions to some basic technologies, such as HTML, Javascript, CSS. Finally, node.js is presented as an environment for the creation of client-server web applications.

Teaching Methods

Theoretical lectures are alternated with some practical lessons aimed at the development of prototypes of web and mobile applications.

Textbooks

Recommended texts: For java programming: Bruce Eckel, Thinking in Java, Apogeo http://mindview.net/Books/TIJ4 For Android: Massimo Carli, Android 6, guide for the developer, Apogeo Fabio Collini, Matteo Bonifazi, Alessandro Martellucci, Android. Advanced programming, LSWR editions Doug Sillars, Developing high-performance Android applications, O'Reilly For Node.js: Marc Wandschneider, Node.js, Apogeonline

Learning assessment

Evaluation and discussion of an Android mobile application and a node.js web application realized by the students, possibly organized in small groups. Single oral exam for each student.

More information

None.