ADVANCED CODING FOR DATA ANALYTICS

ADVANCED CODING FOR DATA ANALYTICS

Andrea Coletta, Marco D'Elia

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. Finally, students will explore modern AI-assisted development tools aimed at enhancing productivity and improving software quality.

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. 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 data analysis. In particular, it covers the following topics: - Writing clean, maintainable, and modular code using object-oriented programming principles and design patterns - Functional and parallel programming techniques for efficient data processing - AI-assisted coding tools and workflows - Python libraries for scientific computing, data analytics, data visualization, and complex network analysis - Development of interactive data visualization dashboards

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

60% group project 40% multiple choice quiz

Criteri per l’assegnazione dell’elaborato finale

A thesis will be assigned (upon specific request to the instructor) to students that demonstrate a serious and motivated interest in the course topics.

Settimana 1

Session 1: Intro and Python Recap Session 2: How to write clean code

Settimana 2

Session 1: Decorators Session 2: Iterators and Generators

Settimana 3

Session 1: Iterators and Generators Session 2: Functional Programming

Settimana 4

Session 1: Functional Programming Session 2: Numpy

Settimana 5

Session 1: Numpy, Scikit-learn Session 2: Unit-testing, Pandas

Settimana 6

Session 1: Pandas Session 2: Pandas

Settimana 7

Session 1: Parallel computing Session 2: Parallel computing

Settimana 8

Session 1: Data Visualization Session 2: Streamlit

Settimana 9

Session 1: AI for Coding Session 2: AI for Coding

Settimana 10

Session 1: Graph analysis and Networkx Session 2: Graph analysis and Networkx

Settimana 11

Session 1: Q&A Projects, Written exam test Session 2: Guest speaker

Settimana 12

Session 1: Project presentation Session 2: Project presentation