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 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 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 |
- 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
- Attività formative di base
- Ambito disciplinare: Matematica, informatica e statistica
- Lecture (Hours): 60
- CFU: 6.00
- SSD: ING-INF/05