ADVANCED CODING FOR DATA ANALYTICS

ADVANCED CODING FOR DATA ANALYTICS

Andrea Coletta, Marco D'Elia

Instructional goals

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.

Intended learning outcomes

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.

Course Contents

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

Reference Books

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

Teaching Methods

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.

Assessment Method

60% group project 40% multiple choice quiz

Thesis assignment criteria

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

Week 1

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

Week 2

Session 1: Decorators Session 2: Iterators and Generators

Week 3

Session 1: Iterators and Generators Session 2: Functional Programming

Week 4

Session 1: Functional Programming Session 2: Numpy

Week 5

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

Week 6

Session 1: Pandas Session 2: Pandas

Week 7

Session 1: Parallel computing Session 2: Parallel computing

Week 8

Session 1: Data Visualization Session 2: Streamlit

Week 9

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

Week 10

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

Week 11

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

Week 12

Session 1: Project presentation Session 2: Project presentation