Go to:
Esta página em português Ajuda Autenticar-se
Formação regular da Biblioteca |fevereiro a maio
You are here: Start > EIC0111

Site map
Edifício A (Administração) Edifício B (Aulas) - Bloco I Edifício B (Aulas) - Bloco II Edifício B (Aulas) - Bloco III Edifício B (Aulas) - Bloco IV Edifício C (Biblioteca) Edifício D (CICA) Edifício E (Química) Edifício F (Minas e Metalurgia) Edifício F (Minas e Metalurgia) Edifício G (Civil) Edifício H (Civil) Edifício I (Electrotecnia) Edifício J (Electrotecnia) Edifício K (Pavilhão FCNAUP) Edifício L (Mecânica) Edifício M (Mecânica) Edifício N (Garagem) Edifício O (Cafetaria) Edifício P (Cantina) Edifício Q (Central de Gases) Edifício R (Laboratório de Engenharia do Ambiente) Edifício S (INESC) Edifício T (Torre do INEGI) Edifício U (Nave do INEGI) Edifício X (Associação de Estudantes)

Object Oriented Programming Laboratory

Code: EIC0111     Acronym: LPOO

Classification Keyword
OFICIAL Programming

Instance: 2014/2015 - 2S Ícone do Moodle

Active? Yes
Responsible unit: Department of Informatics Engineering
Course/CS Responsible: Master in Informatics and Computing Engineering

Cycles of Study/Courses

Acronym No. of Students Study Plan Curricular Years Credits UCN Credits ECTS Contact hours Total Time
MIEIC 148 Syllabus since 2009/2010 2 - 6 70 162

Teaching - Hours

Lectures: 2,00
Laboratory Practice: 3,00
Type Teacher Classes Hour
Lectures Totals 1 2,00
João Carlos Pascoal Faria 2,00
Laboratory Practice Totals 6 18,00
Nuno Honório Rodrigues Flores 6,00
João Carlos Pascoal Faria 3,00
Jorge Manuel Gomes Barbosa 3,00
Ademar Manuel Teixeira de Aguiar 3,00
Rui Carlos Camacho de Sousa Ferreira da Silva 3,00

Teaching language

Suitable for English-speaking students



    • Develop and deepen the skills of object-oriented programming, in a modern object-oriented programming language (Java), representative of the languages used for developing application software.


    • Developing object-oriented design skills, employing UML and design patterns. 


    • Learn to develop applications with graphical user interfaces (GUI) and large software libraries. 


    • Acquire the habit of following good practices in software development (iterative development, unit testing, refactoring, pair programming, etc.). 


Learning outcomes and competences


    • To be able to develop (design, code, document, analyze, test and maintain) object oriented programs with UML and Java.


    • To be able to use tools to support the various phases of program development and maintenance.


    • To be able to use patterns and frameworks.


Working method


Pre-requirements (prior knowledge) and co-requirements (common knowledge)

Knowledge of object oriented programming in C++. 



    • The Java language: elements of language and differences from C++.


    • Unit testing and test-driven development with JUnit.


    • Java libraries (Java API): overview, collections, graphical user interfaces and input / output.


    • Object-oriented design with UML: principles of object-oriented design; class diagrams, sequence diagrams and state diagrams; model driven development.


    • Design patterns.


    • Refactoring.


    • Introduction to mobile application development for Android.


    • Introdution to the Scala programming language (object-functional).


    • Introduction to multithreading, remote method invocation and animations in Java.


    • Tools for dynamic program analysis (debugging, profiling).


    • Reflection, run-time type information and meta-programming.


    • Design by contract.


    • Integrated project.


Mandatory literature

Bruce Eckel; Thinking in Java. ISBN: 0-13-027363-5
Russ Miles and Kim Hamilton; Learning UML 2.0. ISBN: 978-0-596-00982-3

Complementary Bibliography

Kent Beck; Test-driven development. ISBN: 978-0-32-114653-3
Erich Gamma... [et al.]; Design patterns. ISBN: 0-201-63361-2
Martin Fowler ; with contributions by kent Beck... [et al.]; Refactoring. ISBN: 0-201-48567-2

Teaching methods and learning activities

Theoretical exposition and discussion of program topics, more concentrated at the beginning of the semester. 
Hands-on lab for the iterative development of two projects in object-oriented technologies, in groups of two students: 
- a first "guided project" identical for all groups, to be held in the first half of the semester; 
- a second "integrated project", with separate subjects for different groups, to be held in the second half of the semester, possibly in coordination with other courses the same semester. 
Individual computer based programming test, in the middle of the semester. 
Individual computer based (multiple choice) test, in the end of the semester. 


Enterprise Architect

Evaluation Type

Distributed evaluation without final exam

Assessment Components

Designation Weight (%)
Participação presencial 0,00
Teste 25,00
Trabalho laboratorial 75,00
Total: 100,00

Amount of time allocated to each course unit

Designation Time (hours)
Estudo autónomo 30,00
Frequência das aulas 70,00
Trabalho laboratorial 62,00
Total: 162,00

Calculation formula of final grade

Assessment components and their weights:

- 15% - individual computer based programming test;

- 30% - guided project;

- 10% - intermediate delivery of the integrated project;

- 35% - final delivery of the integrated project.

- 10% - individual computer base multiple-choice test.

All components have a minimum grade of 40%.

Special assessment (TE, DA, ...)

All components are mandatory for all students. Students excused from attendance at school (student workers, etc..) should present the work on the same dates of the remaining students and should regularly meet their teachers to show the progress of their work.

Classification improvement

Frequency of the course the following year.

Recommend this page Top
Copyright 1996-2019 © Faculdade de Engenharia da Universidade do Porto  I Terms and Conditions  I Accessibility  I Index A-Z  I Guest Book
Page generated on: 2019-03-20 at 22:25:47