Announcements
- The results of final evaluation (5/Fev) are available:
- The next exam will be organized on February 5, 2015, at 3 pm, in room 106 (DETI).
Students who failed to do the course during the semester, are automatically registered for this exam.
Students, who received positive evaluation during the semester, and are willing to improve their grade, must register via PACO.
Both tests (theoretical and practical) will start at the same time.
During the theoretical test it is not allowed to consult any auxiliary materials. During the practical test any auxiliary materials and code can be used.
- The results of evaluation are available:
- Students who wish to be evaluated during the second evaluation period have to send an e-mail to iouliia@ua.pt
indicating which part (theoretical, practical or both) you would like to do. Each part will weight 50% of the final note.
The remaining 50% will be either the other part or the result of your continuous evaluation during the semester. The e-mail has to be sent before January 19, 2015.
Identification
Course: Object-Oriented Programming (academic year 2014/2015, 1st semester)Scientific area: Science and Technology of Programming
Curricula: Integrated Master Degree in Electronic Engineering and Telecommunications, Master Degree in Industrial Automation Engineering
Weekly load: 3 hours of classes
Programme
- Objectives:
- to introduce and discuss basic concepts of object-oriented programming, such as type abstraction, encapsulation, hierarchy, polymorphism, interface and implementation, etc.;
- to compare these properties with those used in other technologies, such as in procedural programming, in modular programming, etc.;
- to introduce tools used to develop programs based on this technology;
- to address and analyze in detail all new constructions of C++ (relative to C) and demonstrate how they support the object-oriented programming;
- to develop practical applications using object-oriented programming in the areas of computing, electronics, telecommunications and others that are related to the specialization of the students.
- Programme
- Motivation: "why objects?", "what are new concepts?", "what advantages?"
- Abstract data types
- Introduction to encapsulation, inheritance, polymorphism, classes and objects, methods and data, interfaces and implementation
- Modeling with UML: basic UML components, class diagrams
- Key concepts in detail: classes and objects (encapsulation), inheritance and polymorphism
- New possibilities: data input and output, function overloading, values, pointers and references, default arguments, operators new and delete
- Classes and objects: attributes and methods; method name overloading, keywords this, const and friend, constructors and destructors, static data, static functions, static allocation and restricted visibility
- Inheritance: base and derived classes, virtual functions and dynamic polymorphism, virtual tables, upcasting, abstract classes, multiple inheritance, virtual base classes
- Operator overloading
- Templates
- Exception handling
Evaluation
The evaluation of the course of Object Oriented Programming is of continuous type and incorporates several intermediate tests and assessment of performance in the classroom. According to the Regulation of Studies of the University, at least 5 evaluation moments must occur during the semester.
The classes are not compulsory.
Important notice: The student may choose to undertake evaluation through a final exam (this decision has to be communicated in written form before October 1, 2014).
If the student wishes to waive his first choice he/she will have to communicate the change at least 48 hours before the first evaluation moment.
All the students who do not exercise the option are automatically associated with the continuous type of assessment.
Recommended bibliography
- Bjarne Stroustrup, The Programming: Principles and Practice Using C++, 2nd ed. Addison-Wesley Inc., 2014
- Bruce Eckel, Thinking in C++, 2nd edition, MindView, Inc., 2003
- Donald Knuth, The Art of Computer Programming: Volumes 1-4a, Addison Wesley, 2011
- Frank Carrano, Data Abstraction and Problem Solving with C++: Walls and Mirrors, 6th ed., Addison Wesley Inc., 2012
- Ivor Horton, Beginning Visual C++, Wrox Press, 2012