Saltar para:
Logótipo
This page in english Ajuda Autenticar-se
Formação regular da Biblioteca |fevereiro a maio
Você está em: Início > EIC0111
Autenticação




Mapa das Instalações
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)

Laboratório de Programação Orientada por Objectos

Código: EIC0111     Sigla: LPOO

Áreas Científicas
Classificação Área Científica
OFICIAL Programação

Ocorrência: 2018/2019 - 2S Ícone do Moodle

Ativa? Sim
Página Web: https://web.fe.up.pt/~arestivo/page/courses/2019/lpoo/
Unidade Responsável: Departamento de Engenharia Informática
Curso/CE Responsável: Mestrado Integrado em Engenharia Informática e Computação

Ciclos de Estudo/Cursos

Sigla Nº de Estudantes Plano de Estudos Anos Curriculares Créditos UCN Créditos ECTS Horas de Contacto Horas Totais
MIEIC 172 Plano de estudos a partir de 2009/10 2 - 6 70 162

Docência - Responsabilidades

Docente Responsabilidade
André Monteiro de Oliveira Restivo Regente
Mais informaçõesA ficha foi alterada no dia 2019-02-11.

Campos alterados: Métodos de ensino e atividades de aprendizagem, Componentes de Avaliação e Ocupação, Programa, Fórmula de cálculo da classificação final

Língua de trabalho

Português - Suitable for English-speaking students

Objetivos


  • Desenvolver e aprofundar as competências de programação orientada por objetos, numa linguagem orientada por objetos moderna (Java), representativa das linguagens utilizadas para desenvolvimento de software aplicacional. 

  • Desenvolver competências de desenho orientado por objetos, usando a linguagem UML, e aplicando bons princípios e padrões de desenho.

  • Aprender a desenvolver aplicações com interface gráfica e a utilizar bibliotecas extensas. 

  • Adquirir o hábito de seguir boas práticas de desenvolvimento de software (desenvolvimento iterativo, testes unitários, "debugging", "refactoring", SCV, programação em pares, etc.).


 

Resultados de aprendizagem e competências


  • Saber desenvolver (desenhar, codificar, documentar, analisar, testar e manter) programas orientados por objectos com Java e UML.

  • Saber utilizar ferramentas de suporte às várias fases do desenvolvimento e manutenção de programas.

  • Ser capaz de conceber e desnhar software modular, flexível e fácil de manter e evoluir.

  • Ser capaz de reutilizar padrões e frameworks.


 

Modo de trabalho

Presencial

Pré-requisitos (conhecimentos prévios) e co-requisitos (conhecimentos simultâneos)

Conhecimentos de programação orientada por objetos em C++.

Programa

 

  • A linguagem Java: elementos da linguagem, diferenças em relação a C++, e novas características de Java 8 (expressões lambda, etc.). 
  • Testes unitários e desenvolvimento guiado por testes ("test-driven development") com JUnit, ferramentas de análise de cobertura e ferramentas de teste de mutação. 
  • Bibliotecas do Java (Java API): visão geral, coleções, interfaces gráficas (SWING) e entrada/saída. 
  • Princípios de Desenho "Ágil" de Software: SOLID. Métricas de qualidade de código, sua aferição e aplicação.
  • Desenho orientado por objectos com UML: princípios de desenho orientado por objectos; diagramas de classes,  sequência e estados; desenvolvimento conduzido por modelos. 
  • Padrões de desenho ("design patterns"). 
  • Refabricação de código ("refactoring") e "code smells". 
  • Introdução a "multithreading", "remote method invocation" e animações em Java. 
  • Reflexão, informação dinâmica de tipos e metaprogramação. 
  • Ferramentas de análise dinâmica de programas ("debugging", "profiling"). 
  • Projecto integrado.

 

Bibliografia Obrigatória

Bruce Eckel; Thinking in Java. ISBN: 0-13-027363-5 (4ª edição ou superior)
Russ Miles and Kim Hamilton; Learning UML 2.0. ISBN: 978-0-596-00982-3

Bibliografia Complementar

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
Robert C. Martin; Agile Software Development: Principles, Patterns and Practices, Prentice-Hall, 2003. ISBN: 0-13-597444-5
Joost Visser; Building Maintainable Software, O'Reilly, 2015. ISBN: 978-1-491-94434-9

Métodos de ensino e atividades de aprendizagem

Aulas teóricas de exposição e discussão dos tópicos programáticos, mais concentradas no início do semestre. 
Aulas práticas em laboratório de exercícios e desenvolvimento iterativo de um projecto em tecnologias orientada por objetos, em grupos de 2 estudantes: 

  • um primeiro conjunto de exercícios guiados, a fornecer incrementalmente ao longo das semanas de acordo com os tópicos abordados nas aulas teóricas, a realizar na primeira metade do semestre; 
  • um segundo "projecto integrado", com enunciados distintos para os diferentes grupos, a realizar na segunda metada do semestre. 

Mini-teste individual de programação em computador a meio do semestre e mini-teste de escolha múltipla igualmente em computador no final do semestre.

Software

Eclipse

Tipo de avaliação

Avaliação distribuída sem exame final

Componentes de Avaliação

Designação Peso (%)
Participação presencial 5,00
Teste 40,00
Trabalho laboratorial 55,00
Total: 100,00

Componentes de Ocupação

Designação Tempo (Horas)
Estudo autónomo 30,00
Frequência das aulas 70,00
Trabalho laboratorial 62,00
Total: 162,00

Obtenção de frequência

Condições para obtenção de frequência: Não exceder o número limite de faltas e participar activamente na elaboração do projecto.

Fórmula de cálculo da classificação final

Componentes de avaliação e respectivos pesos:

  • 20% - prova prática individual de programação em computador;
  • 5% - participação nas aulas práticas;
  • 55% - entrega do projecto integrado.
  • 20% - prova individual de escolha múltipla em computador.

Todas as componentes têm uma classificação mínima de 40%.

A classificação do projecto integrado é composta por:

  • 10% - relatório intermédio
  • 30% - relatório final
  • 60% - produto desenvolvido

A classificação final não pode exceder em mais de 3 valores a classificação dos mini-testes (média pesada dos 2 mini-testes) arredondada para inteiro.

Avaliação especial (TE, DA, ...)

Todas as componentes são obrigatórias para todos os estudantes. Os alunos dispensados de frequência às aulas (trabalhadores estudantes, etc.), devem apresentar os trabalhos nas mesmas datas dos restantes estudantes e apresentar regularmente aos docentes a evolução dos trabalhos.

Melhoria de classificação

Frequência da unidade curricular no ano seguinte.

Recomendar Página Voltar ao Topo
Copyright 1996-2019 © Faculdade de Engenharia da Universidade do Porto  I Termos e Condições  I Acessibilidade  I Índice A-Z  I Livro de Visitas
Página gerada em: 2019-05-25 às 19:17:08 | Política de Utilização Aceitável | Política de Proteção de Dados Pessoais