Contacto WhatsApp 963640100

Universidade Lusófona

Linguagens de Programação II

Curso

Engenharia Informática

Grau|Semestres|ECTS

Licenciatura | Semestral | 6

Ano | Tipo de unidade curricular | Lingua

2 |Obrigatório |Português

Total de horas de Trabalho | Tempo de Contacto (horas)

168 | 60

Código

ULHT260-898

Disciplinas complementares recomendadas

Não aplicável

Pré-requisitos e co-requisitos

Não aplicável

Precedências

Não

Estágio profissional

Não

Conteúdos Programáticos

"¿ Programação por Objectos
Conceitos básicos: Abstração, Encapsulamento, Modularidade, Hierarquia, Tipificação (tipificação estática vs tipificação dinâmica)
Módulos, Classes, Objectos, Métodos e Variáveis
Herança, Delegação
Polimorfismo, Late Binding, Method Overriding
Interfaces, Classes Abstractas
Visibilidade, Scope
¿ Java
Classes, objectos, variáveis
Construtores, métodos
java.lang.Object
Passagem de argumentos por valor/referência
Visibilidade, Excepções
Estruturas de dados orientados a objectos: Arrays, Listas, Maps
Entrada/Saída
Testes unitários - JUnit
¿ UML - Diagramas de classes
¿ Padrões de desenho - Factory, Singleton
¿ Boas práticas de programação por objetos"

Objetivos

"Esta UC tem como objetivo apresentar os conceitos fundamentais da programação orientada a objetos (herança, encapsulamento, polimorfismo, etc.), de forma a que os alunos consigam aplicá-los em projetos de desenvolvimento de software usando linguagens de programação modernas (Java, C#, Python, Ruby).
É pretendido que, no final desta unidade curricular, os alunos tenham adquirido um conjunto de conhecimentos alargados sobre o paradigma da programação orientada a objetos, um dos paradigmas mais utilizados atualmente pelas vantagens que traz na redução de custos de manutenção e melhorias na qualidade do software produzido. Esta competência é diretamente aplicável no desenvolvimento moderno de software, permitindo que futuros engenheiros desenhem e implementem aplicações de elevada qualidade, respeitando princípios fundamentais como a testabilidade, modularização e encapsulamento.

Metodologias de ensino e avaliação

"A disciplina é teórico-prática, havendo uma alternância entre métodos:
Met. 1 ¿ expositivos,
Met. 2 ¿ demonstrativos
Met. 3 ¿ participativos.

Avaliação Contínua:
¿ 10% - TPCs teóricos individuais
¿ 15% - Teste intermédio
¿ 25% - Frequência final
¿ 5% ¿ TPC prático individual
¿ 15% - Entrega intermédia do projeto
¿ 30% ¿ Entrega final do projeto com discussão presencial

Avaliação da Época de Recurso:
¿ 50% ¿ Exame
¿ 50% ¿ Projecto"

Bibliografia principal

"¿ Object-Oriented Analysis and Design with Applications, 3rd edition. Grady Booch et al (2008)
¿ Design Patterns: Elements of Reusable Object-Oriented Software, Erich Gamma, John Vlissides, Ralph Johnson, and Richard Helm (1994)
¿ UML Distilled: A Brief Guide to the Standard Object Modeling Language, 3rd Edition. Martin Fowler (2003)
¿ Effective Java, 2nd edition. Joshua Bloch (2008)
¿ Java 8 in Action: Lambdas, Streams, and functional-style programming, Raoul-Gabriel Urma, Mario Fusco, Alan Mycroft (2014)"