IN/0028 - OBJECT ORIENTED PROGRAMMING LANGUAGES
Academic Year 2021/2022
Free text for the University
AMBRA DEMONTIS (Tit.)
- Teaching style
- Lingua Insegnamento
|[70/89] ELECTRICAL, ELECTRONIC AND COMPUTER ENGINEERING||[89/30 - Ord. 2016] INFORMATICA||5||50|
|[70/89] ELECTRICAL, ELECTRONIC AND COMPUTER ENGINEERING||[89/66 - Ord. 2016] INFORMATICA ON LINE E IN PRESENZA (BLENDED)||5||50|
This course has two main goals. The first is to provide students with knowledge of the object-oriented programming paradigm. The second is to make the students able to take advantage of this paradigm to implement programs using the Python language.
Knowledge and ability to understand: the student will have good knowledge and comprehension of the concepts concerning the object-oriented programming paradigm.
Ability to apply the knowledge and the ability to understand: the student will be able to apply the object-oriented programming paradigm learned during the course to prototype and implement programs using the Python language. Furthermore, the student will be able to understand prototypes realized by a third party.
Autonomy of judgment: thanks to the learned knowledge, the student will be able to evaluate the positive and negative aspects of a prototype or the Python implementation of a program utilizing the object-oriented programming paradigm.
Communication skills: the student will be able to converse with skilled interlocutors about this course's contents and transmit them to interlocutors who lack this knowledge.
Ability to learn autonomously: the student will be able to quickly learning different object-oriented languages.
To address the course contents, it is required the knowledge of at least one procedural-imperative programming language, such as C, Pascal, or others.
The students can take the exams of this course only if they have already passed the exams of:
Mathematical Analysis 1;
Geometry and Algebra;
1. Introduction of the object-oriented programming paradigm:
Definition of object, class, attribute, method. Base concepts: encapsulation, composition, inheritance.
Techniques for schematizing objects: class diagrams drawn accordingly to the Unified Modelling Language (UML).
2. Overview of the Python language:
Introduction to the language, data types, boolean operators, conditional structures, cycles, functions, data structures.
3. Objects in Python:
Creation of classes and object initialization.
Using pre-defined modules and organizing the code creating new modules.
Usage of single inheritance in Python. Advanced concepts: multiple inheritances, polymorphism.
6. Exception handling:
Raising and handling exceptions. Defining new exceptions extending the exception class.
7. Python data structures:
The features of the objects of type tuple, list, dictionary.
The features of some of the pre-defined objects of type function.
The features of the file objects.
10. Strings and serialization:
The features of the string objects, regular expressions, the serialization of objects using the pickle module.
The features of the objects of type iterator.
12. Libraries for scientific visualization:
The library matplotlib
This course consists of theoretical lectures and exercises about all the course's contents (exercises illustrated in class and by the teacher and interactive practice exercises described by the tutor).
Due to the Covid-19 emergency, lectures may also be offered via streaming or recorded videos, and the exercise sessions may be conducted with the digital tools available.
This course is organized in:
35 hours of theoretical lectures
15 hours of exercises
17 hours of interactive exercises
Verification of learning
The verification of learning is accomplished with a written exam consisting of theoretical questions regarding the object-oriented programming paradigm and exercises that must be solved using the Python language.
Due to the Covid-19 emergency, the verification of learning might be made digitally.
The maximum final mark is 33. The honors will be achieved by obtaining a final mark equal to or higher than 32.
The number of exam sessions is the one defined by faculty regulation.
D. Phillips, Python 3 Object-Oriented Programming: Build robust and maintainable software with object-oriented design patterns in Python 3.8, Packt, 2018 (III edition).
Mark Lutz, Learning Python, O'Relly, 2013 (V edition).
Russ Miles & Kim Hamilton, Learning UML 2.0, O'Relly, 2006.
The course material, including the slides and the exercises' solutions, will be published on the course's website: https://unica-lpo.github.io.