Salta al contenuto principale della pagina

TOPICS IN COMPUTER SCIENCE

CODE 109203
ACADEMIC YEAR 2022/2023
CREDITS
  • 6 cfu during the 1st year of 10852 COMPUTER SCIENCE (LM-18) - GENOVA
  • SCIENTIFIC DISCIPLINARY SECTOR INF/01
    LANGUAGE English
    TEACHING LOCATION
  • GENOVA
  • SEMESTER 1° Semester
    TEACHING MATERIALS AULAWEB

    AIMS AND CONTENT

    LEARNING OUTCOMES

    The course is intended to refresh fundamental concepts in programming, data structures and algorithms using the Python language and introduce 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

    Further material (including video recordings) will be made available on aulaweb.

    TEACHERS AND EXAM BOARD

    Exam Board

    EUGENIO MOGGI (President)

    GIORGIO DELZANNO

    ALESSANDRO VERRI (President Substitute)

    ANNALISA BARLA (Substitute)

    GIOVANNA GUERRINI (Substitute)

    LESSONS

    Class schedule

    All class schedules are posted on the EasyAcademy portal.

    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.

    ASSESSMENT METHODS

    • 30% home assignments submitted during the course

    • 70% final exam (lab test) after the end of the course

    The final mark is given by the weighted average (rounded up) of the scores obtained in the two parts minus the accumulated penalty points. The exam is passed if the final mark is at least 18/30.

    Exam schedule

    Date Time Location Type Notes
    24/01/2023 09:00 GENOVA Laboratorio
    17/02/2023 09:00 GENOVA Laboratorio
    13/06/2023 09:00 GENOVA Laboratorio
    11/07/2023 09:00 GENOVA Laboratorio
    05/09/2023 09:00 GENOVA Laboratorio