This curricular unit aims to provide students with fundamental knowledge and practices about the principles, concepts, models, and main techniques related to programming based on the object paradigm. In approaching the selected syllabus, the critical analysis of the new paradigm will be privileged, always seeking the perception of the correct placement of problems and their adequate resolution through object-oriented programming, encouraging the use of new approaches and improvement of existing ones.
Object-Oriented Programming. Objects. Classes.
Abstraction. Encapsulation. Inheritance. Polymorphism.
Students should be able to:
- Understand the basic concepts of object-oriented programming.
- Understand the mechanisms of software modularity and reuse.
- Know how to model a problem using object-oriented techniques.
- Know how to use an object-oriented language to code a problem.
Introduction to object-oriented development.
Analysis methodologies and object-oriented projects.
Basic concepts of classes, interfaces, and objects.
Abstraction hierarchies (class-class, class-object, object-object).
Attributes, methods, and access control.
Abstraction, encapsulation, inheritance, and polymorphism.
Pense em Python, 2.ª edição, de Allen B. Downey (O’Reilly), tradução de Sheila Gomes. ISBN 978-85-7522-508-0, Editora Novatec. Disponível livremente em licença Creative Commons: https://penseallen.github.io/PensePython2e/
Continuous assessment is privileged: 2 or 3 digital written documents (e-folios) during the semester (40%) and a presence-based final exam (p-folio) in the end of the semester (60%). In due time, students can alternatively choose to perform one final presence-based exam (100%).
Pré-requisito: UC 21178 Laboratório de Programação.