Object-Oriented Programming

Year
2
Academic year
2018-2019
Code
01000131
Subject Area
Computer Science
Language of Instruction
Portuguese
Mode of Delivery
Face-to-face
Duration
SEMESTRIAL
ECTS Credits
6.0
Type
Compulsory
Level
1st Cycle Studies

Recommended Prerequisites

Knowledge of procedural programming and of some dynamic data structures.

Teaching Methods

Theoretical classes with detailed presentation of the main OOP concepts, principles and tools including the resolution of basic practical exercises to illustrate them.

Theoretical-practical classes for students, under the supervision of the teacher, solve practical exercises, directed connected to the theoretical concepts.

Laboratory classes for doing extra exercises and doubts.

Learning Outcomes

The aim of this course is to give students a solid body of knowledge in Object Oriented Programming. This knowledge will not be limited to the syntax of a particular programming language, but will include aspects of object-oriented modeling, as well as its graphical representation.

The programming language used in the discipline is Java, since it is a dominant language in terms of OOP and it is also suitable for the teaching of this paradigm.

The representation of concepts associated with OOP modeling will be done using a strict set of UML diagrams (Unified Modeling Language), where appropriate. The objective is not to teach UML extensively, but enable the visualization of concepts associated with OOP in a simple manner (eg classes, relations between classes, inheritance, etc.).

Work Placement(s)

No

Syllabus

Historical perspective and motivation to OOP
Classes, Objects and Methods
Principles of OO modeling
Defining Classes
Issues of modeling vs. implementation
Inheritance and Polymorphism
Modeling issues: relationships of composition vs. inheritance relationships
Management of errors and exceptions
Interface-based Programming
Event-Based Programming
Generics Programming in Java.

Head Lecturer(s)

Marília Pascoal Curado

Assessment Methods

Assessment
Practical component: 15.0%
Mini-Project: 25.0%
Exam: 60.0%

Bibliography

“Java 6 - Programação para Objetos”. F. Mário Martins, FCA Editora.
“Fundamentos de Programação em Java 2”, A. J. Mendes e M. J. Marcelino, FCA Editora.
“Notas a disponibilizar pela docente”.

"Introduction to Programming Using Java, Sixth Edition", D. J. Eck, http://math.hws.edu/javanotes/
"The Java Tutorials", http://download.oracle.com/javase/tutorial/