CODING IN ACTION LAB
Instructional goals
The course introduces students to computational thinking, programming, and data-driven problem solving. Rather than presenting programming as an end in itself, the course shows how computational tools can be used to answer practical questions, analyze data, automate tasks, and support decision-making processes. Students learn the fundamentals of Python programming and progressively apply them to realistic analytical problems. The course also introduces algorithms, computational cost, data processing, and visualization, with particular attention to the role of programming in the era of Artificial Intelligence and Large Language Models.
Intended learning outcomes
Upon successful completion of the course, students will be able to: understand the principles of computational thinking and algorithm design; write, read, and modify Python programs of moderate complexity; select appropriate computational tools to solve practical problems; understand basic notions of computational cost and algorithmic efficiency; acquire, transform, aggregate, and visualize data; perform exploratory analyses on real-world datasets; use AI-assisted programming tools critically and effectively; collaborate on computational projects.
Course Contents
Introduction to computing and programming. Computational thinking and problem decomposition. Variables, expressions, functions, and modularity. Control structures and iteration. Fundamental data structures. Algorithms and basic computational complexity. Data import, cleaning, transformation, and aggregation. Exploratory data analysis and visualization. Multidimensional data analysis. Introduction to segmentation, clustering, and recommendation systems. Artificial Intelligence, Large Language Models, and AI-assisted coding. Practical applications to real-world analytical and decision-making problems.
Reference Books
A. Downey, Think Python (latest edition). W. McKinney, Python for Data Analysis (latest edition). Additional teaching material, datasets, lecture notes, and readings will be provided during the course.
Teaching Methods
The course combines lectures, live coding sessions, guided exercises, and project-based activities. Theoretical concepts are introduced through practical examples and immediately applied to analytical and decision-making problems. Students work individually and in groups on activities supervised by the instructors. Selected activities will make use of AI-assisted coding tools to highlight both their opportunities and limitations.
Assessment Method
Assessment combines continuous evaluation activities conducted throughout the course (such as quizzes, assignments, projects, participation, and attendance) with a final oral examination. The oral examination will account for at least 50% of the overall grade and will assess students’ understanding of theoretical concepts, their ability to apply them to practical problems, and their mastery of the tools and techniques presented during the course. Further details regarding assessment will be communicated during the course.
Thesis assignment criteria
Students interested in pursuing a thesis related to the topics covered in the course are encouraged to discuss potential projects with the instructor. Thesis topics may involve the application of computational methods, data analysis techniques, or AI-based approaches to problems arising in different disciplines. Joint supervision with another faculty member may also be considered.
Week 1
Introduction to computational thinking. Why programming still matters in the age of Artificial Intelligence. Introduction to computers, software, programming languages, and development environments.
Week 2
Problem decomposition and algorithm design. Variables, expressions, data types, functions, and modularity.
Week 3
Conditions, logical operators, and control flow. Translating rules and processes into programs.
Week 4
Iteration and automation. For and while loops. Searching within sequences and introductory concepts of algorithmic efficiency.
Week 5
Strings, lists, dictionaries, sets, and other fundamental data structures. Choosing appropriate structures for different problems.
Week 6
Introduction to data analysis. Data import, cleaning, transformation, and dataset preparation.
Week 7
Exploratory data analysis. Descriptive statistics, distributions, outliers, and visualization.
Week 8
Aggregation and information synthesis. Grouping data and supporting decision-making.
Week 9
Multidimensional data analysis. Relationships between variables, correlation, and advanced visualization.
Week 10
Introduction to clustering and segmentation. Identifying patterns and groups in data.
Week 11
Recommendation systems and the representation of complex data. Practical applications.
Week 12
Large Language Models and modern development workflows. Prompting, AI-assisted development, and reflections on the relationship between human skills and AI tools.