ADVANCED CODING FOR DATA ANALYTICS

ADVANCED CODING FOR DATA ANALYTICS

Alessio Martino, Andrea Coletta

Obiettivi formativi

In this hands-on course, the students will be introduced to fundamental coding tools for data analytics and will acquire skills regarded as essential for any aspiring data professional. Using Python as a main programming language, they will get acquainted with data manipulation, exploratory data analysis and visualization techniques, hinging upon some of the most popular Python libraries (e.g., Pandas, NumPy, MatplotLib, NetworkX) and working with real-world datasets. Along the way, they will also learn advanced coding features especially useful in the big data analytics realm, most notably functional and parallel programming functionalities.

Risultati di apprendimento attesi

Knowledge and understanding: At the end of the course the students will have a deep knowledge of the fundamental techniques and programming tools for solving real-world data analytics problems. The course will cover advanced aspects of Python, as well as widely-used libraries for scientific computing and data visualization. Applying knowledge and understanding: At the end of the course the students will be able to employ advanced coding techniques to design efficient solutions for real-world data analytics problems. Making judgements: We expect students to be able to critically choose the most appropriate solution on a rigorous methodological basis. Communication skills: The course will give the students the ability to communicate effectively - in English - their ideas, proposals, and critical reasoning in the field of data analytics. Learning skills: This course will provide the students with the ability to learn a series of design and analytical tools and to apply them to real problems. The method of study will make the students able to break down complex problems arising in specific applications into manageable pieces and to apply advanced coding tools in order to design rigorous and documentable solutions.

Contenuti Del Corso

The course focuses on advanced programming abstractions and tools for analyzing data. In particular, the course will cover the following topics: - Functional and parallel programming functionalities - Regular expressions - Libraries for scientific computing, data analytics and visualization, manipulation of complex networks

Testi Di Riferimento

Lecture notes and other course material provided by the instructors and made available on the Luiss Learn platform.

Metodologie Didattiche

Lectures, lab sessions and group project work. Students' participation during lectures is strongly encouraged. Course not recommended for non-attending students due to the high team workload.

Modalità di verifica dell'apprendimento

40% group project 30% business-driven data analytics challenge 30% multiple choice quiz

Criteri per l’assegnazione dell’elaborato finale

A thesis will be assigned (upon specific request to the instructor) to students who have average grade > 27/30 and who demonstrate a serious and motivated interest in the course topics.

Settimana 1

Session 1: on campus Iterators and generators Session 2: online Coding lab

Settimana 2

Session 1: on campus Functional programming in Python Session 2: online Coding lab: lambda, filter, map, reduce

Settimana 3

Session 1: on campus Decorators and memoization Session 2: online Coding lab

Settimana 4

Session 1: on campus Regular expressions Session 2: online Coding lab

Settimana 5

Session 1: on campus Parallelism in Python Session 2: online Coding lab

Settimana 6

Session 1: on campus Parallelism in Python Session 2: online Coding lab

Settimana 7

Guest session held by a company guest speaker Data analytics project assignment

Settimana 8

Session 1: on campus Scientific computing Session 2: online Coding lab: NumPy

Settimana 9

Session 1: on campus Data visualization Session 2: online Coding lab: MatplotLib

Settimana 10

Session 1: on campus Data analysis and manipulation Session 2: online Coding lab: Pandas

Settimana 11

Session 1: on campus Graph algorithms Session 2: online Coding lab: NetworkX

Settimana 12

Course recap, Q&A session and project presentation