Object Oriented Programming

Base Knowledge

Programming in C language. Algorithms.

Teaching Methodologies

CIasses are theoreticaI and practicaI. In the theoreticaI cIasses, an expository methodoIogy is used present the theoreticaI foundations of the subjects, supported by exampIes.
In the practicaI cIasses, students appIy the knowIedge from the theoreticaI cIasses, deveIoping appIications under the supervision of the teachers.
Outside the cIassroom, students deveIop, in groups of two, a project which is evaIuated at an intermediate stage and at the finaI stage. Teachers foIIow the deveIopment of the project, cIarifying doubts and advising on the structure and options taken in the project.
The finaI cIassification resuIts from the weighted average of a written component and a practicaI component. The written component is the maximum cIassification obtained in the written exams and it weights 70% in the finaI cIassification. The practicaI component is obtained from the cIassification from the project and it has a weight of 30% in the finaI cIassification.

Learning Results

1.   Acquire knowledge on object oriented programming.
2.   Acquire knowledge on C++ object oriented programming.
3.   Acquire knowledge on consoled application development using C++.
4.   Acquire knowledge on polymorphic and encapsulated data structures oriented program design.
5.   Improve the abilities concerning organization, research, planning, autonomy, and documentation.

Program

1.   Introduction to C++
–   General concepts on object oriented programming
–   References
–   Constants
–   Overloading. Default parameters.
–   Classes.
2.   Data hiding in C++
–   Classes: data and functions members. Visibility.
–   Constructors and destructors
–   Inline functions
–   Static members.
–   Friend functions
3.   Compositions and agregation
–   Objects with objects
–   Objects with pointers to objects
–   Dinamic memory.
–   Copy constructions
4.   C++ Operadors
–   Member and non-member, unary and binary operators.
–   Conversion operators
–   Assignment operator.
5.   Inheritance in C++
–   Composition versus inheritance
–   Class inheritance
–   Constructors and destructors in inheritance.
–   Composition and inheritance
6.   Polimorfism
–   Upcasting
–   Virtual functions
–   Polimorphic data structures
–   Abstract classes and pure virtual functions
7.   Introduction to templates
–   Class and functions templates
8.   Introduction to the STL library
–   STL Containers

Curricular Unit Teachers

Internship(s)

NAO