Subject: COMPUTER PROGRAMMING (A.A. 2022/2023)
Unit Fondamenti di programmazione
Mathematics, Information Technology and Statistics (lesson)
The course aims to provide the knowledge and skills necessary to correctly understand and autonomously develop simple Python programs for data elaboration.
Such knowledge is preparatory to an informed usage of those IT systems that students will use during both their academic career and work career.
The acquired skills also are preparatory to the creation, modification, extension, and usage of data analysis programs with which students will be interacting during their academic career as well as work career.
For a more comprehensive understanding of these teaching objectives, the reader is referred to the learning results expected after course completion.
No prerequisite apart from basic daily computer skills (internet surfing, creation of files and folders, files download/upload, text editor usage)
The subdivision of the course contents in hours is not normative, as depending on students feedback hours may shift amongst arguments.
Introduction (~4 hours):
- course presentation
- introduction to computer science
- introduction to programming
Python: the basics (~4 hours + ~8 hours of exercises):
- introduction to Python
- simple data types
- conditional instructions
- I/O from/to console
Python: compound data types (~4 hours + ~12 hours of exercises):
- lists (syntax, semantics, common operations)
- sets (syntax, semantics, common operations)
- dictionaries (syntax, semantics, common operations)
Python: strings and files (~4 hours + ~8 hours of exercises):
- string manipulation, search
- opening files and folders, search, reading, writing and closing files
Python: functions (~2 hours + ~4 hours of exercises)
Python: OO programming (~4 ore + ~8 ore di esercizi):
Pythonh Libraries (~8 ore + ~8 ore di esercizi):
The final part of the course (~12 hours) will be devoted to strengthen the acquired knowledge and skills in preparation of the final examination.
Lectures are given through in-person oral presentations. Lectures are supported by audio-video presentations (slides) and practical exercises developed in class. Presence at the lectures and exercises either in-person or in live-streaming is not mandatory but strongly advised. Every lecture is recored and made available to students after the lesson itself. Lectures are given in Italian. English translations for the teaching material are available upon request.
The final examination will be at the end of the course according to the official calendar of examinations as published on Esse3 and on the "news" forum of the course on Dolly. The examination is a practical exam to be done at the computer. The time allowed for completion is 2 hours The examination consists in the development of a Python program that reads input data from a file, processes that data to respond to 5 elaboration requests each worth 6 points, and produces the results in as many output files. The program to be developed is aimed at: - assessing the knowledge of the language acquired during the course - assessing the ability of students to properly combine and apply such knowledge - assessing the ability to solve new problems with the acquired skills The obtained grade is the result of the sum of the points earned for each elaboration request. The grade of 30 with honours will be attributed to those students that, besides successfully providing the correct result for the elaborations, also do it with a Python program with no severe inefficiencies. The grades will be announced within 1 week since the exam date, and publication will happen via Esse3.
At the end of the course, students should be able to:
1) Knowledge and comprehension ability
a) understand implementation programs written in Python
b) describe the steps of an algorithm required to solve a given programming problem
2) Applied knowledge and comprehension ability
a) modify simple programs written in Python
3) Autonomy of judgement
a) assess own ability to comprehend or not a program, in autonomy
b) assess own ability to solve a programming problem or not, in autonomy
4) Communication skills
a) describe in a correct and logically sound way own knowledge, recognising the required topics and responding in a detailed and complete way to exams elaboration requests
b) produce correctly the procedures and algorithms required to solve the exam elaborations
5) Learning ability
a) deepen the acquired notions to proceed own academic life putting to work the terminology, concepts, and methodology acquired for a mettere comprehension and exploitation of Python programming
b) mastering the acquired programming tools and expand their usage upon need to tackle new programming problems
Tutto il materiale didattico necessario al superamento dell'esame è disponibile sin dall'inizio del corso sul portale Moodle.
- slides delle lezioni
- esercitazioni svolte a lezione (con soluzioni)
- esercitazioni aggiuntive (con soluzioni)
- vecchi esami svolti
Sullo stesso sito è anche presente del materiale aggiuntivo per chi volesse approfondire le proprie conoscenza, tuttavia non necessario perini superamento dell'esame.