Programação Orientada a Objetos

Conhecimentos de Base Recomendados

Ter frequentado a unidade curricular Fundamentos de Programação.

Métodos de Ensino

Nesta unidade curricular são utilizadas as seguintes metodologias de ensino:
– Método expositivo: método explicativo onde fundamentos teóricos e conceito são apresentados pelo professor e discutidos com a turma, seguido de exemplos demonstrativos;
– Método experimental: método activo onde o aluno desenvolve o conhecimento através da resolução problemas e o desenvolvimento de projectos laboratoriais.

Resultados de Aprendizagem

Espera-se que no final da unidade curricular o aluno esteja habilitado a:
– Conhecer os conceitos básicos de Programação Orientada a Objectos (POO): objectos, classes, polimorfismo, herança;
– Modelar e gerir estruturas de dados estáticos e dinâmicos (tabelas, vectores, dicionários e java collections);
– Interagir com estruturas de memória persistente: ficheiros (binários, texto e objectos);
– Seja capaz de estruturar, desenvolver, executar e testar programas usando a linguagem Java.

Programa

Introdução à linguagem Java
– Tipos primitivos
– Arrays de tipos primitivos
– Operadores
– Instruções de controlo de execução

Classes
– Objetos e referências
– Garbage collector
– Construtores
– A palavra chave this
– Construtores que chamam construtores
– Membros static
– Métodos overloaded
– Arrays de objetos
– Classes interiores

Packages
– Organização de componentes
– Especificadores de acesso

Composição e herança
– Composição
– Herança
– Escolher entre composição e derivação
– A palavra-chave super
– A palavra-chave final

Polimorfismo
– Upcasting
– A classe Object
– Classes abstratas
– Interfaces

Colecções
– Principais Interfaces derivados de Collection
– Algumas implementações concretas

Excepções

Ficheiros

Docente(s) responsável(eis)

Álvaro Nuno Ferreira Silva Santos

Métodos de Avaliação

A avaliação, na escala 0..20, será realizada através das seguintes componentes:

Componente escrita (12 valores)
- Teste escrito (4 valores), individual e presencial, a realizar no início de novembro, incidindo sobre os conceitos básicos da linguagem Java
- Exame (8 valores), individual e presencial, incidindo sobre todos os conteúdos da unidade curricular, a realizar em época normal, de recurso ou especial
- Mínimos: 40% do conjunto das duas provas
- A classificação obtida no teste escrito é válida para todas as épocas de exame do ano letivo atual, não havendo lugar a melhoria da classificação nele obtida

Tarefas realizadas nas aulas práticas (4 valores)
- Realização individual de uma tarefa prática por semana, com início na segunda semana de aulas
- A classificação do conjunto das tarefas é atribuída em dois momentos de avaliação individual, realizados ao longo do semestre, em que o estudante explica, justifica e modifica o trabalho por si produzido
- Mínimos: 40%
- Os estudantes com estatuto que os isente da frequência das aulas (ex.: trabalhador-estudante) obtêm esta componente através da realização de tarefas alternativas, podendo cada uma ser objeto de defesa individual

Trabalho prático (4 valores)
- Realizado individualmente
- Enunciado disponibilizado durante o semestre, em data a anunciar pelo docente
- Entrega no último dia de aulas, através do Nónio/InforEstudante, em ficheiro ZIP contendo o projeto e o relatório técnico em PDF
- Defesa individual obrigatória. A classificação desta componente é atribuída no momento da defesa
- A não realização da defesa implica a classificação de 0 valores nesta componente, independentemente do material entregue
- Esta componente não é sujeita a nota mínima

Validade das classificações
- As classificações obtidas nas avaliações realizadas ao longo do semestre são válidas para todas as épocas de exame do ano letivo atual, não sendo repetidas nessas épocas

Prova oral complementar
- Qualquer componente de avaliação pode ser complementada por uma prova oral individual, realizada por iniciativa do docente e sem necessidade de fundamentação prévia
- A prova oral incide sobre o trabalho realizado pelo estudante na componente em causa e destina-se a confirmar a autoria e o domínio dos conhecimentos nela demonstrados
- Verificando-se discrepância manifesta entre o desempenho na prova oral e o trabalho apresentado, a classificação da componente é fixada de acordo com o desempenho demonstrado na prova oral
- A não comparência injustificada a prova oral convocada implica a não classificação da componente

Utilização de ferramentas de inteligência artificial
- Não é permitida a utilização de ferramentas de inteligência artificial nas provas escritas nem nos momentos de avaliação individual
- Nas restantes componentes, as condições de utilização são definidas e divulgadas pelo docente no início do semestre
- O estudante é integralmente responsável por todo o material que submete, devendo ser capaz de o explicar, justificar e modificar quando solicitado


    Estágio(s)

    NAO

    Bibliografia

    Martins, F. M. (2017). Java 8: POO + construções funcionais. FCA. ISBN 9789727228386

    Jesus, C. (2013). Curso prático de Java. FCA. ISBN 9789727227501

    Martins, F. M. (2014). Projectos de POO em Java. FCA. ISBN 9789727227921

    Flanagan, D. (2014). Java in a nutshell: A desktop quick reference (6.ª ed.). O’Reilly. ISBN 1449370829