• EN
  • Facebook
  • Instagram
  • Youtube
  • Linkedin
Você está em: Início > Ensino > Unidades Curriculares > LIB10133
Autenticação
ATENÇÃO: Este site utiliza cookies. Ao navegar no site estará a consentir a sua utilização.

Linguagens de Programação

Código: LIB10133    Sigla: LP
Área Científica: Informática

Ocorrência: 2019/20 - 2S

Área de Ensino: Informática

Cursos

Sigla Nº de Estudantes Plano de Estudos Ano Curricular Créditos Horas Contacto Horas Totais
LIB1 87 Despacho n.º 9994/2012, de 24 de julho 6

Horas Efetivamente Lecionadas

LI_1_TA

Teórico-Práticas: 54,50

LI_1_TB

Teórico-Práticas: 54,50

Docência - Horas Semanais

Teórico-Práticas: 5,00

Tipo Docente Turmas Horas
Teórico-Práticas Totais 2 10,00
Antonio Manuel Ferreira Santos Roberto - ESGT   3,00
Jorge Guerra Teixeira Constantino - ESGT   0,00
Ricardo Miguel Andorinha Rodrigues - ESGT   7,00

Docência - Responsabilidades

Docente Responsabilidade
Antonio Manuel Ferreira Santos Roberto - ESGT Responsável

Objetivos de aprendizagem e a sua compatibilidade com o método de ensino (conhecimentos, aptidões e competências a desenvolver pelos estudantes)

O1. Conhece os conceitos básicos de programação orientada a objetos. 
O2. Aplica os conceitos fundamentais da arquitetura de software MVC. 
O3. Desenvolve aplicações com interfaces gráficas usáveis.
O4. Compreende e sabe escolher estruturas de dados e algoritmos recursivos.
O5. Implementa tipos de dados abstratos com base em tipos de dados estáticos e dinâmicos.
O6. Analisa e crítica a complexidade de um algoritmo.
O7. Usa streams para importar e exportar dados numa aplicação. 

Conteúdos programáticos

C1) Conceitos introdutórios de Programação Orientada a Objetos.
C2) Conceitos fundamentais sobre a arquitetura MVC (Model, View, Controller).
C3) Aplicações com interfaces gráficas: programação dirigida por eventos; componentes de interface e linhas de orientação para a conceção de interfaces.
C4) Recursão: conceitos relevantes; algoritmos e estruturas de dados recursivos; quando usar e quando evitar.
C5) Implementação de tipos de dados abstratos usando tipos de dados estáticos e dinâmicos: listas, pilhas, filas, tabelas de hash e árvores.
C6) Análise da complexidade de algoritmos: comparação de algoritmos diferentes para problemas iguais; notação Big-O simplificada.
C7) Armazenamento e recuperação de dados usando streams.

Demonstração da coerência dos conteúdos programáticos com os objetivos de aprendizagem da unidade curricular

Os conteúdos programáticos [C] contribuem para a realização dos objetivos (O) da unidade curricular da seguinte forma: 
O1. Conhece os conceitos básicos de programação orientada a objetos - [C1]
O2. Aplica os conceitos fundamentais da arquitetura de software MVC - [C2,C3]
O3. Desenvolve aplicações com interfaces gráficas usáveis - [C2,C3]
O4. Compreende e sabe escolher estruturas de dados e algoritmos recursivos - [C4,C5,C6]
O5. Implementa tipos de dados abstratos com base em tipos de dados estáticos e dinâmicos - [C4,C5]
O6. Analisa e crítica a complexidade de um algoritmo - [C4,C6]
O7. Usa streams para importar e exportar dados numa aplicação - [C7]

Metodologias de ensino e de aprendizagem específicas da unidade curricular articuladas com o modelo pedagógico

ENSINO PRESENCIAL
M1. Aulas teóricas/práticas: apresentação de conceitos de suporte aos tópicos programáticos e experimentação com casos ilustrativos.
M2. Aulas práticas/experimentais: resolução de casos de maior dimensão, relacionando os diferentes conteúdos programáticos e promovendo a análise crítica de resultados.
M3. Horas de atendimento: apoio ao estudante de acordo com o horário oficialmente estabelecido.
ESTUDO EM AUTONOMIA
M4. Bibliografia recomendada.
M5. Fichas de exercícios publicadas.
M6. Outros materias de estudo (p. ex., materiais pedagógicos de suporte à aulas) compilados na plataforma MOODLE.
AVALIAÇÃO CONTÍNUA
Dois testes: 30% + 30%. Projecto: 40% 
Condições de aprovação: obtenção da nota mínima de 9,5 na aplicação da fórmula de avaliação; e cumprimento da assiduidade mínima nos termos do regulamento; e não ter nenhum dos componentes de avaliação anulado por motivos de fraude.
EXAME
Os exames não incluem prova oral.


Demonstração da coerência das metodologias de ensino e avaliação com os objetivos de aprendizagem da unidade curricular

As metodologias de ensino [M] contribuem para a realização dos objetivos (O) da unidade curricular da seguinte forma: 
O1. Conhece os conceitos básicos de programação orientada a objetos - [M1,M3]
O2. Aplica os conceitos fundamentais da arquitetura de software MVC - [M1,M3,M4]
O3. Desenvolve aplicações com interfaces gráficas usáveis - [M1,M2,M3,M4,M5]
O4. Compreende e sabe escolher estruturas de dados e algoritmos recursivos - [M1,M3,M4]
O5. Implementa tipos de dados abstratos com base em tipos de dados estáticos e dinâmicos - [M2,M3,M5]
O6. Analisa e crítica a complexidade de um algoritmo - [M1,M3,M4]
O7. Usa streams para importar e exportar dados numa aplicação - [M1,M3,M4]

Bibliografia de consulta (existência obrigatória)

Ascencio, A. (2011). Estruturas de Dados. São Paulo: Pearson.
Drozdek, A. (2013). Data Structures and Algorithms in Java (4th Ed.). Cengage Learning Asia.
Horstmann, C. (2015). Java Concepts: Early Objects (8th Ed.). Chichester, England: Wiley.
Oracle, (n.d) The Java Language Specifications, disponível em https://docs.oracle.com/javase/specs/jls/se7/jls7.pdf.
Rocha, A. (2014). Análise da Complexidade de Algoritmos. Lisboa: FCA.
Rocha, A. (2011). Estruturas de Dados e Algoritmos em JAVA. Lisboa: FCA.
Shneiderman, B. (2009).  Designing the User Interface: Strategies for Effective Human-Computer Interaction. (5th Ed.). Boston: Pearson.

Observações

Durante o período de suspensão das aulas presenciais, os alunos serão acompanhados à distância, tendo como base a plataforma Moodle, sendo as aulas presenciais substituídas por aulas por videoconferência no Zoom/Colibri.
Será dado por email suporte a todas as dúvidas dos alunos.
A plataforma Codeboard será utilizada para efeitos de submissão dos trabalhos de casa sujeitos a avaliação, estando concluída com sucesso a experiência da integração por LTI do Moodle com o Codeboard.
Para a realização dos projetos da disciplina, será utilizada a plataforma GitHub como repositório do código e controle de versões.
Os testes e exames serão realizados na plataforma Exam.net. Está por avaliar a utilização do CodeBoard como external resource.
No plataforma Moodle serão colocados os materiais de apoio ao estudo dos alunos.



Avaliação
Trabalhos de Casa 34% + Teste 33% + Projecto 33% 
Condições de aprovação: obtenção da nota mínima de 9,5 na aplicação da fórmula de avaliação; não ter nenhum dos componentes de avaliação anulado por motivos de fraude.
Será realizada prova oral para defesa de nota superior a 16.