Disciplina

Área

Área Científica de Metodologia e Tecnologias da Programação > Linguagens de Programação

Activa nos planos curriculares

LEIC-T 2021 > LEIC-T 2021 > 1º Ciclo > Área Principal > Programação com Objectos

GENI > GENI > 1º Ciclo > Área Principal > Percursos > Fundamentos para Engenharia de Telecomunicações e Informática > Programação com Objectos

LETI 2021 > LETI 2021 > 1º Ciclo > Área Principal > Programação com Objectos

LEIC-A 2021 > LEIC-A 2021 > 1º Ciclo > Área Principal > Programação com Objectos

MEIC-T 2006 > MEIC-T 2006 > 2º Ciclo > Áreas de Especialização Complementares > Fundamentos de Engenharia Informática > Programação com Objectos

MEIC-A 2006 > MEIC-A 2006 > 2º Ciclo > Área de Especialização Complementar > Fundamentos de Engenharia Informática > Programação com Objectos

MEE 2006 > MEE 2006 > 2º Ciclo > Opções > C1 > Programação com Objectos

LERC 2006 > LERC 2006 > 1º Ciclo > Ciências da Engenharia Informática > Programação com Objectos

LEIC-A 2006 > LEIC-A 2006 > 1º Ciclo > Ciências da Engenharia Informática > Programação com Objectos

LEIC-T 2006 > LEIC-T 2006 > 1º Ciclo > Ciências da Engenharia Informática > Programação com Objectos

Nível

Projeto: 50%, com nota mínima de 9,5 valores, realizado em 3 entregas (UML, intermédia e final) com teste prático final individual. Exercícios de laboratório: 50%, com nota mínima de 9,5 valores. O processo de avaliação é o mesmo para todos os alunos, incluindo trabalhadores-estudantes. Em época especial os exercícios de laboratório são substituídos por um exame de 180min.

Tipo

Não Estruturante

Regime

Semestral

Carga Horária

1º Semestre

2.5 h/semana

1.5 h/semana

112.0 h/semestre

Objectivos

Conhecer: o paradigma de programação com objectos, as suas vantagens, inconvenientes e limitações; o paradigma dos padrões de desenho, tanto no desenvolvimento, como na refactorização de aplicações. Competências a adquirir: domínio do paradigma da programação com objectos, nomeadamente dos conceitos de encapsulamento, abstracção, herança e polimorfismo; capacidade de utilizar uma linguagem de programação baseada em objectos; capacidade de utilização de padrões de desenho; e domínio da escrita de testes de avaliação.

Programa

Programação com Objectos com Linguagens Java e C++. Introdução aos objectos: definição; longevidade; classes; métodos; programas. Regras de codificação. Operadores, expressões e controlo de fluxo em Java: precedências; atribuição; operadores; conversões de tipos; literais; controlo de execução. Construção de objectos: iniciação e limpeza; construtores; métodos sobrecarregados; "this"; colector de lixo. Organização de código: interface vs. implementação; bibliotecas; acesso aos membros. Herança e composição: desenvolvimento incremental; "final"; carregamento de classes. Polimorfismo; Classes abstractas e interfaces. Classes internas. Tipos paramétricos. Enumerações; Excepções; Colecções; Entradas/saídas; Informação de tipos em tempo de execução. Introdução à modelação em UML. Diagramas de classes e de sequência. Introdução aos padrões de desenho. Discussão e aplicação de padrões de desenho: Singleton, Null Object, Composite, State, Template Method, Strategy, Decorator, Factory Method, Abstract Factory, Command, Observer, Visitor, Adapter, Façade, Proxy.

Metodologia de avaliação

Projeto: 50%, com nota mínima de 9,5 valores, realizado em 3 entregas (UML, intermédia e final) com teste prático final individual. Exercícios de laboratório: 50%, com nota mínima de 9,5 valores. O processo de avaliação é o mesmo para todos os alunos, incluindo trabalhadores-estudantes. Em época especial os exercícios de laboratório são substituídos por um exame de 180min.

Pré-requisitos

Bons conhecimentos numa linguagem de programação imperativa tipificada: C, por exemplo.

Componente Laboratorial

Exercícios de programação individual (N), sem consulta, todas as semanas em aula. Apenas os melhores N-3 são levados em consideração

Princípios Éticos

Todos os membros de um grupo são responsáveis pelo trabalho do grupo. Em qualquer avaliação, todo aluno deve divulgar honestamente qualquer ajuda recebida e fontes usadas. Numa avaliação oral, todo aluno deverá ser capaz de apresentar e responder a perguntas sobre toda a avaliação.

Componente de Programação e Computação

Análise e modelação de sistemas. Programação orientada por objetos. Identificação e aplicação de padrões de desenho.

Componente de Competências Transversais

Identificação, análise a aplicação de comportamentos.

Bibliografia

Principal

Thinking in Java

Bruce Eckel

2005 (Outubro)

Prentice Hall, New Jersey, ISBN 0131872486 (4ª Ed.)


Head First Design Patterns

Eric Freeman, Elisabeth Freeman, Kathy Sierra, Bert Bates

2004 (Outubro)

O'Reilly. ISBN 0596007124


Secundária

The Unified Modeling Language User Guide

Grady Booch, James Rumbaugh, Ivar Jacobson

2005

Addison Wesley Professional (2ª Ed.)


C++ Primer

Stanley B. Lippman, Josée Lajoie, Barbara E. Moo

2005

ISBN-10: 0-201-72148-1, ISBN-13: 978-0-201-72148-5, Addison-Wesley Professional (4ª Ed.)