Objectives

The course illustrates the basic principles of object-oriented programming with reference to the Python language.

Attention is paid both to the methodological aspects of software design and to the techniques of information representation and manipulation.
It also intends to provide the student with the knowledge of the technological tools to aid him in programming such as compilers, function libraries, debuggers, etc. For these reasons, the course includes numerous guided exercises to be performed at the computer.
At the end of the course the student will be able to design, implement and test programs of medium complexity in Python.

Channels

1

ADRIANO FAZZONE ADRIANO FAZZONE   Teacher profile

Programme

Preliminary notions:
.) The calculator.
.) Programming languages.
.) Syntax and Semantics.
.) Algorithms.
.) Programming Paradigms.

Introduction to programming through the Python3 programming language:
.) Variables, the assignment statement, expressions, data types, and operators.
.) Conditional statements and loops.
.) Definition and invocation of functions.

Data structures: lists, sets, and dictionaries.

Management of data in secondary memory:
.) opening, writing, and reading files.

Code testing, debugging, and documentation.

Adopted texts

Handouts and collections of exercises provided by the teachers.

C. Horstmann R. D. Necaise "Concetti di Informatica e fondamenti di Python", ed. Maggioli, ISBN 9788891605085
http://www.maggiolieditore.it/9788891605085-concetti-di-informatica-e-fondamenti-di-python.html

"Think Python", free online book: https://github.com/AllenDowney/ThinkPythonItalian/blob/master/thinkpython_italian.pdf

Prerequisites

There are no prerequisites for the course.

Exam modes

The exam requires the design and the direct implementation on the computer of functions through the Python3 programming language.

Exam reservation date start Exam reservation date end Exam date
09/12/2021 13/01/2022 14/01/2022
17/01/2022 13/02/2022 14/02/2022
01/03/2022 10/03/2022 11/03/2022

2

Raffaele Nicolussi Raffaele Nicolussi   Teacher profile

Programme

References:
C. Rif. [1]: Horstmann e R. N. Necaise. Concetti di informatica e fondamenti di Python. Ed. Apogeo, 2014.
CI. Rif. [2]: Slides and other materials prepared by the teachers, available on https://piazza.com/uniroma1.it/fall2018/ldi1819/resources

Introductory notions
Introduction to the course. General architecture of a computer and diagram of Von Neumann.
Concept of algorithm

Rif. [1], chapter 1
Rif. [2], Slides on the website

Basic concepts about programming in python
Using the shell and base I / O. Using the IDLE Development Environment

Rif. [1], chapter 1
Rif. [2], Slides on the website

Basic aspects of programming in python
Arithmetic expressions and elementary data types. Variables and assignment instructions.
Representation of information. Chr character and function set, ord. The type of data string.

Rif. [1], chapter 2 until 2.6
Rif. [2], Slides on the website

Decisions - constructs if and else-if (elif)
Instructions if and else-if (elif). Relational operators. Boolean variables and operators. Nested nests and multiple alternatives.

Rif. [1], chapter 3
Rif. [2], Slides on the website

Cycles
Cycle for. Cycle while. Algorithms that use cycles. Nestled cycles

Rif. [1], chapter 4 until 4.9.3
Rif. [2], Slides on the website

Functions and Modules
Introduction to Python programming with features. Forms and their use. Running scripts.

Rif. [1], chapter 5
Rif. [2], Slides on the website

Lists
Basic Properties. List operations. Basic algorithms that make use of lists. Tuples.
Representation of tables and matrices. Basic knowledge of memory management: references / object pointers.

Rif. [1], chapter 6 excluding 6.5 and 6.6
Rif. [2], Slides on the website

File and file system
Opening, closing, and manipulating text files. Basic functions for accessing the file system.

Rif. [1], chapter 7 until 7.3
Rif. [2], Slides on the website
Examples seen in lesson

Dictionaries
Accessing and manipulating dictionaries. Using dictionaries to create complex data structures.

Rif. [1], 8.2
Rif. [2], Slides on the website

Sorting and Search Issues
The problem of characterizing and comparing the efficiency of algorithms and programs. Considerations of Computational Complexity. Sequential and binary search algorithms. Qualitative and experimental cost analysis for binary and sequential research.

Rif. [1], 12.6
Rif. [2], Slides on the website
Examples seen in lesson

Adopted texts

The reference book is:
C. Horstmann R. D. Necaise "Concetti di Informatica e fondamenti di Python", ed. Maggioli, ISBN 9788891605085
http://www.maggiolieditore.it/9788891605085-concetti-di-informatica-e-fondamenti-di-python.html

Other teaching material will be available in the section Resources of the course website:
https://piazza.com/uniroma1.it/fall2020/ldi2021/info

Prerequisites

No prerequisites required. Knowledge of another programming language may be helpful.

Study modes

The course is held in the classroom for theoretical lessons and in the laboratory for practical programming lessons.

Frequency modes

Attendance is not mandatory, but it is strongly recommended.

Exam modes

The candidate is asked to solve a series of programming exercises on the computer.

To pass the exam, you must obtain a grade of at least 18/30.

The student must demonstrate that they have acquired a sufficient knowledge of the basic concepts of programming.

To obtain a score of 30/30 and honors, the student must instead demonstrate that they have acquired an excellent knowledge of all the topics covered during the course, being able to connect them in a logical and coherent way.

Exam reservation date start Exam reservation date end Exam date
20/12/2021 13/01/2022 14/01/2022
20/01/2022 12/02/2022 14/02/2022
20/02/2022 10/03/2022 11/03/2022
20/05/2022 15/06/2022 17/06/2022
20/06/2022 11/07/2022 12/07/2022
20/08/2022 08/09/2022 09/09/2022
21/10/2022 23/10/2022 24/10/2022
Course sheet
  • Academic year: 2021/2022
  • Curriculum: Ingegneria Clinica (percorso formativo valido anche ai fini del conseguimento del doppio titolo italo-venezuelano)
  • Year: First year
  • Semester: First semester
  • SSD: ING-INF/05
  • CFU: 6
Activities
  • Attività formative di base
  • Ambito disciplinare: Matematica, informatica e statistica
  • Lecture (Hours): 60
  • CFU: 6.00
  • SSD: ING-INF/05