PROGRAMMING AND INTRODUCTION TO ARTIFICIAL INTELLIGENCE MOD1
cod. 1012442

Academic year 2024/25
1° year of course -
Professor
Francesco ZAMMORI
Academic discipline
Sistemi di elaborazione delle informazioni (ING-INF/05)
Field
Attività formative affini o integrative
Type of training activity
Related/supplementary
48 hours
of face-to-face activities
6 credits
hub:
course unit
in

Learning objectives

By the end of the course, students will master the main tools for data
analysis and for numerical calculation. Specifically they will kwno both "procedural" and "object oriented" programming.
Elements of "functional" programming will be also provided.

Prerequisites

The course only requires basic skills in information science and in statistics.
anyhow, to
foster the comprehension, all topics will be introduced and explained
starting from scratch.

Course unit content

The course introduces the main IT tools for data science and for
the solution of typical engineering and operating research
problems.
The focus is on Python 3.10 programming language and on its main
libraries for scientific programming and numerical computing.

Full programme

- Introduction to programming.
- Decision Making.
- Repetitions and interation.
- Basic Functions.
- Advanced types and their methods.
- Lambda functions.
- Functions accepting other function as input.
- Closures: functions returning another function.
- Recursion: functions calling themselves.
- Iterator and Generator.
- Exception management and Code Debugging.
- Object Orienting Programming.
- Methods and magic methods.
- Inheritance and polymorphism.
- Properties.
- Creating user defined structures.

Bibliography

1) Pensare in Python, by Allen Downey, edited by O’Reilly
2) Learning Python, by Mark Lutz, edited by O’Reilly
3) The Python Workbook, Second Edition, by Ben Stephenson Edited by
Springer
Also, lecturer's teaching handouts (covering the whole program) will be provided in advance.

Teaching methods

The course includes both theoretical and practical aspects.
The theoretical part will be introduced writing on the blackboard (using coloured
chalks) and, next, all the topics covered during the theory lessons will be
deepened and operationalized during practical sessions, held in the
computer labs (about 50% of the total time).

Assessment methods and criteria

The examination consists of a written test lasting approximately 2.5 hours.
The test includes 4-5 exercises of increasing difficulty and it is organised in a way that allows students to take it entirely "using paper &
pencil". However, it is also possible to take the test in digital form using a laptop (this is the recommended approach).
The oral test is optional; it is compulsory only for students who got a score below 18 (in the written test).
To increase the score, a pratical assignment can also be requested by students that got a score (in the written test) equal or higher that 24.

Other information

About 50% of the lessons will be hold in traditional classrooms, while the
remainder will be held in computer labs. For a better understading,
students are encouraged to take their laptop also during the theoretical
lessons. For convenience, students are allowed to use their
personal laptop instead of the PCs installed in the labs.
Anyhow, students must install Python 3.10 (or a superior version) on their laptop. Students are also encouraged to install the ANACONDA programming environment on their laptop and to write code using the editor Spyder and/or Jupiter Notebook (both included in ANACONDA).