Code |
16223
|
Year |
2
|
Semester |
S1
|
ECTS Credits |
6
|
Workload |
PL(30H)/T(30H)
|
Scientific area |
Informatics
|
Entry requirements |
None.
|
Learning outcomes |
This course unit has as objectives, learning the fundamental concepts of Object Oriented Programming and introducing the corresponding methodologies and techniques to develop programs/applications.
At the end of this Unit the student should be able to understand and apply the concepts and techniques of Object Oriented Programming. He should be able to develop programs in an Object Oriented language (e.g. Java). The student should be able to understand the concepts of object, class and object instantiation. The student should know the concepts of class and interface hierarchy, know the different kinds of relationships between objects; know the concepts of polymorphism and generic programming.
They must be able to build small programs applying the above concepts. The students should understand the basics of object oriented analysis and project. At the end they must be able to develop a project where they applies and integrates all the concepts learned throughout the unit.
|
Syllabus |
1. Introduction to Object Oriented Programming
1.1 Historical Perspective
1.2 Characteristics of object-oriented programming (encapsulation, behaviour sharing, evolution)
2. Objects (notion of Object and identity, protocol of use of an Object, messages and methods, notion of state and behaviour.
3. Class-based languages; Object instantiation
4. Object Hierarchies: Inheritance mechanisms; Reuse code; Reflexive systems; Polymorphism.
5. Interfaces: Separation between interface and implementation of interfaces.
6. Relations between Objects: Extension, generalization and specialization; Association, aggregation and composition; Cohesion and coupling.
7. Automated testing and documentation generation.
8. Object-Oriented Analysis, Design, and Implementation: Languages and Development Environments; Analysis, Design and Implementation.
|
Main Bibliography |
Java A Beginner’s Guide Sixth Edition, 2014 , Herbert Schildt , Oracle Press
Handbook of Programming Languages, Volume 1:Object-Oriented Programming Languages, Peter H. Salus (editor), Macmillan Technical Publishing USA (I-3.3-255).
Object-Oriented Languages, Systems and Applications, Gordon Blair, John Gallagher, David Hutchison and Doug Shepard (editores), Pitmam Publishing, 1991. (I-6.1-38)
Java --- How to Program, Paul Deitel, Harvey Deitel, Editora: Prentice Hall, 8th Ed. 2009.
Thinking in Java, 4 th Edition, Bruce Eckel, 2005.
|
Teaching Methodologies and Assessment Criteria |
Theoretical classes: Concept exposition and discussion.
Practical classes: Solving work sheets in the computer.
These sheets contain examples and problems for the student to solve, aided by the theoretical notes and by the Professor.
Practical classes will help verify if students learned the concepts presented in theoretical classes, and that they are capable of implementing them using an object-oriented programming language (e.g., Java).
The final weeks of the semester will be dedicated to implementing a group project, done outside the classes, with practical classes serving for discussion and aiding in the development.
Assessment Criteria:
Theoretical and practical knowledge assessed through two theoretical tests.
Group work, with a final defense.
Assessment of practical exercises solved during practical classes.
|
Language |
Portuguese. Tutorial support is available in English.
|