CODE 109203 ACADEMIC YEAR 2023/2024 CREDITS 6 cfu anno 1 COMPUTER SCIENCE 10852 (LM-18) - GENOVA SCIENTIFIC DISCIPLINARY SECTOR INF/01 LANGUAGE English TEACHING LOCATION GENOVA SEMESTER 1° Semester TEACHING MATERIALS AULAWEB OVERVIEW The course is intended to refresh fundamental concepts in programming, data structures and algorithms, providing useful background knowledge for many courses of the Master Degree in Computer Science. AIMS AND CONTENT LEARNING OUTCOMES Refreshing the fundamental concepts in programming, data structures and algorithms using the Python language and introducing students to the use of the numpy library. AIMS AND LEARNING OUTCOMES The student should 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, the student should be able to use the online documentation on Python and some of its libraries 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 week normally consists of 4 hours of classroom lessons (lessons may be recorded on MS Teams, for the benefit of foreign students abroad) and at most 1 weekly home assignment related to the topics covered so far in the course. It is assumed that students have a laptop with anaconda3 installed. Assistance to install anaconda3 and to use Jupyter Notebook will be provided at the start of the course. Home assignments can be done in group (of at most 3 students) and must be uploaded on aulaweb at specified deadlines. SYLLABUS/CONTENT Language constructs: expressions, assignments, conditionals, iteration, functions, recursion, exceptions, list comprehension. Data structures: lists/sequences, dictionaries, sets Algorithmic techniques: divide-and-conquer, list processing, memoization, staging Numpy library: arrays,linear algebra operations RECOMMENDED READING/BIBLIOGRAPHY https://docs.python.org/3/ online documentation https://greenteapress.com/wp/think-python-2e/ free book (pdf/html) Further material (including video recordings) will be made available on aulaweb. TEACHERS AND EXAM BOARD EUGENIO MOGGI Ricevimento: See the aulaweb module and as second alternative the web page https://person.dibris.unige.it/moggi-eugenio/ Exam Board EUGENIO MOGGI (President) GIORGIO DELZANNO ALESSANDRO VERRI (President Substitute) ANNALISA BARLA (Substitute) GIOVANNA GUERRINI (Substitute) LESSONS LESSONS START In agreement with the calendar approved by the Degree Program Board of Computer Science. Class schedule The timetable for this course is available here: Portale EasyAcademy EXAMS EXAM DESCRIPTION The exam (of at most 3 hours) consists of programming exercises done individually in DIBRIS SW labs and submitted on aulaweb. After submission a possible solution will be made available, and students have a limited time (at most 18 hours) to confirm the submission. Only confirmed submissions are evaluated, and if they are rated less than 10/30, the student accumulates a penalty of 1 point on a future final mark. The final mark is given by the weighted average (rounded up) of the scores obtained in the two parts 30% home assignments submitted during the course 70% final exam (lab test) after the end of the course minus the accumulated penalty points. The exam is passed if the final mark is at least 18/30. ASSESSMENT METHODS The two parts assess the programming skills acquired by the students in different context: in home assignments submitted during the course the student is expected to mske appropriate use the programming constructs presented so far and may work in team in the lab tests after the end of the course the student has to work individually in a limited time, and after submission has some extra time to perform self-evaluation of the submission against a proposed solution. Exam schedule Data appello Orario Luogo Degree type Note 11/01/2024 09:00 GENOVA Laboratorio SW2 DIBRIS 16/02/2024 09:00 GENOVA Laboratorio SW1 del DIBRIS 18/06/2024 09:00 GENOVA Laboratorio 19/07/2024 09:00 GENOVA Laboratorio 03/09/2024 09:00 GENOVA Laboratorio Agenda 2030 - Sustainable Development Goals Quality education