CLOUD COMPUTING AND BIG DATA

Academic Year 2021/2022 - 2° Year
Teaching Staff: Giuseppe Pappalardo
Credit Value: 6
Taught classes: 40 hours
Term / Semester:

Learning Objectives

  1. Knowledge and understanding (Conoscenza e capacità di comprensione). Students will acquire a precise knowledge and understanding of fundamental concepts in the field of cloud computing, chiefly through a guided exploration of the main technological solutions available from the public Cloud, focusing on resources and services oriented to data storage, analysis, visualization and machine learning.
  2. Applying knowledge and understanding (Capacità di applicare conoscenza e comprensione). Based on the operating knowledge acquired, students will develop an effective "toolset" of practical, application-oriented skills in leveraging the Cloud to cater for the typical needs of a data scientist: i.e. processing large datasets with a view to revealing meaningful patterns and relationships. Cloud implementations of state-of-the-art tools and frameworks like, e.g., MapReduce/Hadoop or TensorFlow, will be employed
  3. Making judgements (Autonomia di giudizio). The student will develop the ability to choose the suitable Cloud-based resource for the Data Science scenario of interest, properly estimating the ensuing costs and performance gains, as well as consciously assessing the tradeoffs involved.
  4. Communication skills (Abilità comunicative). The student will acquire the communication skills required to express and discuss, at a rigorous technical level, the benefits and (mostly cost-related) downsides of the Cloud for Data Science applications. In addition, the student will gain the ability, for presentation purposes, to effectively highlight the features of very large datasets by means of cloud-based visualization services.
  5. Learning skills (Capacità di apprendimento). Students will become capable of profitably consulting technical documentation concerning Data Science-oriented Cloud services, in order to concretely put them to effective use

Course Structure

Lectures will mainly consist in live sessions dealing with using the Cloud for the purposes of data analysis and machine learning. These sessions will be carried out by the lecturer and replicated, with suggested variations, by the students, on available equipment. Laboratory practice aims at enabling students to refine their understanding of the technologies presented and acquire autonomous operating skills. As a framework and guidance, lecture notes will be displayed during lectures and shared with students. Notes will provide a precise record of the material presented, as well as pointers to the required reference technical documentation.

Should teaching be carried out in mixed mode or remotely, it may be necessary to introduce changes with respect to previous statements, in line with the programme planned and outlined in the syllabus. Learning assessment may also be carried out on line, should the conditions require it.


Required Prerequisites

Fundamentals of data analysis and machine learning. Basic skills in using a desktop computing environment and the Web.


Attendance of Lessons

Attending classes is not mandatory but strongly recommended.


Detailed Course Content

This course aims at enabling the data scientist to put into practice on the public Cloud principles and methodologies learnt in courses concerned with data storage, processing, analysis, and machine learning. Indeed, in these areas, present day industrial and enterprise applications typically require storage volumes, computing power and bandwidth at a scale impossible or (even for large organizations) impractical to attain with proprietary equipment. In realistic Data Science scenarios, it is therefore hardly avoidable for the data scientist to resort to the Cloud, i.e. storage and computing services offered by third-party providers over the public Internet, with a pay-per-use cost model.

In a nutshell, quoting reference [2], we may say that: “The Cloud turbocharges Data Science” .

Google Cloud is the platform of choice, for its ease of use and free availability to students.

SQL on Google Cloud and BigQuery: performing structured queries on BigQuery and Cloud SQL. Importing data from CSV files.

Processing big data with a Google cloud shell: installing and using a Unix-based shell

Data acquisition into Google Cloud: downloading selected data from a large public data set over the internet, and processing it with Google App Engine.

Google Cloud Dataflow: processing a real-time, real-world data set, and storing the results on the cloud. Case study: real-time geospatial data.

Visualization with Google Data Studio: Visualizing data stored in Google Cloud SQL. Visualizing Real Time Geospatial Data.

Google Datalab for Data Analysis: loading text data into Google BigQuery; rapid exploratory data analysis with Google Cloud Datalab notebooks.

Google Cloud AI Platform: using Google AI Platform to perform queries and present the data.

Evaluating a Data Model: partitioning a data set into a training set and a test set; evaluating various predictive models.

Machine Learning with Spark on Google Cloud Dataproc. Implementing logistic regression through machine learning on Apache Spark running on a Google Cloud Dataproc. Developing a model from a multivariable dataset.

Machine Learning with TensorFlow: developing and evaluating prediction models.

MapReduce e Hadoop on Google Cloud: exploiting parallelism and machine clusters.


Textbook Information

  1. Google Inc. Student Training: Kick-Start Your Cloud Trainings. https://edu.google.com/programs/students/training.
  2. Lakshmanan, V. Data Science on the Google Cloud Platform. O'Reilly Media, Inc. 2018.
  3. Lecture notes, to be made available through the Studium portal or the University's Teams platform.


Course Planning

 SubjectsText References
1Google Cloud (GC): Performing structured queries on BigQuery Lecture notes 
2GC: Performing structured queries on Cloud SQLLecture notes 
3Processing big data with a cloud (Unix) shellLecture notes 
4GC: Importing big data from CSV filesLecture notes 
5Downloading large public data sets to GCLecture notes 
6Processing data with the Google App EngineLecture notes 
7GC Dataflow: processing a real-time, real-world data setLecture notes 
8Case study: real-time geospatial data on GCLecture notes 
9GC Data Studio: Visualizing data from Google Cloud SQLLecture notes 
10GC Datalab: Data Analysis and Google BigQueryLecture notes 
11GC Datalab notebooks for rapid exploratory data analysisLecture notes 
12GC AI Platform: queries and data presentationLecture notes 
13Machine Learning (ML) with Spark on GCLecture notes 
14ML with Spark on GCLecture notes 
15ML with TensorFlow on GC: developing and evaluating predictive modelsLecture notes 
16MapReduce e Hadoop on Google Cloud: exploiting parallelism and machine clustersLecture notes 

Learning Assessment

Learning Assessment Procedures

Laboratory session individually performed by the student vis-à-vis the lecturer. The student will be required to carry out the Cloud-based procedures demonstrated during the lectures, as well as to discuss their significance, and critically assess their outcomes. Learning assessment may also be carried out on line, should the conditions require it.


Examples of frequently asked questions and / or exercises

See material available on the Studium portal.