CODE 97164 ACADEMIC YEAR 2021/2022 CREDITS 9 cfu anno 1 INGEGNERIA GESTIONALE 10716 (L-9) - GENOVA SCIENTIFIC DISCIPLINARY SECTOR INF/01 LANGUAGE Italian TEACHING LOCATION GENOVA SEMESTER 2° Semester TEACHING MATERIALS AULAWEB AIMS AND CONTENT LEARNING OUTCOMES The objective of the course is to introduce the student to the fundamental concepts relating to computers and their programming. The course will provide knowledge on the organization of a processing architecture, on the structure of the main application programs, and on programming in the Python language, with reference to the main types of data and programming constructs. As part of the teaching, the student will acquire the skills to create simple applications using the Python language, the ability to empirically evaluate their performance and to choose the best data structures, among those available in the language, to perform certain tasks. AIMS AND LEARNING OUTCOMES The student will acquire the skills to create simple applications using the Python language, the ability to empirically evaluate their performance and to choose the best data structures, among those available in the language, to carry out certain tasks. In particular, at the end of the course the student must be able to remember the fundamental concepts related to some computational models and programming analyze pieces of programs (written in Python) and understand how they work modify, run and test small programs starting from an informal specification of a problem, design and write (parts of) programs that solve the problem TEACHING METHODS Teaching takes place over 12 weeks, each of which normally includes 4 hours of classroom lessons (including theory and exercises) and 3 hours of computer lab (which could take place, at least in part, at a distance using the teams platform) . SYLLABUS/CONTENT Basic notions on computers: representation of data and computer arithmetic; outline of some computational models; hints on von Neumann architecture and operating systems aimed at basic understanding of program execution. Introduction to programming (using Python): high-level programming languages; state and change of state (variables, expressions, instructions); structured programming and functions; base and structured types; simple algorithms and their implementation; divide-and-conquer approach and memoization of functions. Small programming (using Python): design of small sequential programs starting from the informal specification of the problem; compilation/interpretation of programs; code execution; basic ideas of testing and debugging. RECOMMENDED READING/BIBLIOGRAPHY The teaching material (including any video recordings) will be made available on aulaweb. It is also possible to consult and download the documentation available online in English https://docs.python.org/3/ and Italian https://www.python.it/doc/ TEACHERS AND EXAM BOARD EUGENIO MOGGI Ricevimento: See web page https://person.dibris.unige.it/moggi-eugenio/ a student may also agree an appointment by email (moggi@unige.it) Exam Board EUGENIO MOGGI (President) MANUELA CHESSA GIOVANNI LAGORIO GIANNA REGGIO ARMANDO TACCHELLA LESSONS LESSONS START See https://easyacademy.unige.it/portalestudenti/ Class schedule The timetable for this course is available here: Portale EasyAcademy EXAMS EXAM DESCRIPTION The exam consists of two tests, which can be taken independently: a quiz test (contributes 40% to the final grade, if assessed at least 15/30) a laboratory test (contributes 60% to the final grade, if assessed at least 15/30). Only for students who attend the course in the academic year in which they have included it in the study plan, ongoing assignments are foreseen, with sample correction, which give the right to a bonus of 2 points on the final grade (the bonus is also kept in the following academic years). Students who confirm the delivery of a laboratory test rated less than 10/30 are assigned a penalty of 1 point on the final grade. Please refer to the AulaWeb specific teaching request for details on ongoing deliveries, methods of conducting the exam tests, bonuses and malus. ASSESSMENT METHODS The quiz test verifies the knowledge of the fundamentals and the ability to analyze and understand pieces of code. The laboratory test verifies the ability to write, modify, execute and test programs. Exam schedule Data appello Orario Luogo Degree type Note 10/01/2022 09:00 GENOVA Laboratorio 11/01/2022 09:00 GENOVA Scritto 07/02/2022 09:00 GENOVA Laboratorio 08/02/2022 09:00 GENOVA Scritto 10/06/2022 09:00 GENOVA Laboratorio 13/06/2022 09:00 GENOVA Scritto 11/07/2022 09:00 GENOVA Laboratorio 13/07/2022 09:00 GENOVA Scritto 31/08/2022 09:00 GENOVA Laboratorio 02/09/2022 09:00 GENOVA Scritto