© All rights reserved. Powered by José Machado.

Introdução aos Algoritmos, à Programação e às Bases de Dados

Informação geral

Código: 15892
Área científica predominante: Engenharia Informática
Regime: Semestral
ECTS: 10
Tipo de ensino: Presencial
Língua de instrução:Português
 

Carga Horária

Trabalho autónomo:
190  Horas
Aulas:
60  horas  –  Práticas Laboratoriais
30  horas  –  Teóricas

Objetivos de ensino

Na componente de algoritmos e programação,, opta-se por realçar o paradigma da programação orientada a objetos relacionando sempre com os restantes paradigmas estudados. Depois de introduzidos os modelos e as metodologias de desenvolvimento de software, serão abordados os diversos tipos e estruturas de dados acompanhados do desenvolvimento de algoritmos de aplicação. Posteriormente, serão exploradas estruturas de dados abstratas e desenvolvidas soluções algorítmicas para problemas complexos.
Na componente de base de dados, pressupõe-se que os alunos dominam a exploração de sistemas operativos tais como Windows, Linux ou MacOS e possuam os conhecimentos matemáticos básicos sobre a teoria dos conjuntos, relações e funções. No final os alunos deverão ser capazes de atingir os objetivos propostos.
Em ambiente laboratorial são implementados os diversos algoritmos previamente estudados, bem como implementadas bases de dados com casos de estudo.

Resultados de aprendizagem

1. Discutir metodologias de desenvolvimento de software;
2. Demonstrar capacidade de resolução dos problemas inerentes à execução das tarefas de programação imperativa de sistemas informáticos ao nível algorítmico e de estruturas de dados;
3. Discutir o paradigma da programação Orientada a objetos;
4. Aplicar a linguagem de programação Python na programação por objetos de sistemas informáticos;
5. Distinguir dados, informação e conhecimento;
6. Aplicar as formas normais e definir conceptualmente o modelo de dados para um problema específico;
7. Escrever interrogações de bases de dados relacionais usando a álgebra relacional;
8. Utilizar a linguagem SQL para administrar, manter e interrogar bases de dados relacionais;
9. Desenvolver aplicações informáticas que operem sobre bases de dados, incluindo aplicações baseadas na Web.

 

Programa sucinto

1. Modelos e metodologias de desenvolvimento de software
2. Tipos e Estruturas de Dados
3. Algoritmos e programação
4. Programação orientada a objetos
5. Introdução aos Sistemas de Bases de Dados.
6. O Modelo Relacional.
7. Estudo e Análise de Modelos para Desenho e Arquitetura de Sistemas de Bases de Dados
8. Desenho, Concepção e Implementação de Sistemas de Bases de Dados.
9. A Linguagem SQL.
10. Administração de Bases de Dados.
11. Segurança, Recuperação e Proteção de Dados.

 

Bibliografia essencial

Booch, G., Rumbaugh, J. & Jacobson, I. (2005). The unified modeling language user guide. Upper Saddle River, NJ: Addison-Wesley.
Cormen, T. (2009). Introduction to algorithms. Cambridge, Mass: MIT Press.
Pressman, R. & Maxim, B. (2020). Software engineering : a practitioner’s approach. New York, NY: McGraw-Hill Education.
Lott, S. (2019). Mastering object-oriented Python : build powerful applications with reusable code using OOP design patterns and Python 3.7. Birmingham: Packt Publishing.
Budd, T. (2002). An introduction to object-oriented programming. Boston: Addison-Wesley.
Connolly, T. & Begg, C. (2005). Database systems: a practical approach to design, implementation, and management. Harlow, Essex, England New York: Addison-Wesley.
Molina, H., Ullman, J. & Widom, J. (2009). Database systems: the complete book. Upper Saddle River, N.J: Pearson Prentice Hall.
Ramakrishnan, R. & Gehrke, J. (2003). Database management systems. Boston: McGraw-Hill.

 

Métodos de ensino

As aprendizagens desenvolvem-se através de apresentações teóricas pelo docente, co-participadas através da promoção da sua análise e discussão em sala de aula. Em complemento, desenvolvem-se trabalhos práticos temáticos, desenvolvidos em pequenos grupos pelos alunos, que demonstram ou aplicam as matérias abordadas.

 

Métodos de avaliação

Avaliação contínua, que integra 2 componentes de avaliação, uma componente teórica e uma componente prática. A componente teórica constituída por uma prova teórica final e a componente prática constituída por trabalhos práticos individuais e de grupo. A classificação final da unidade curricular é determinada pelo cálculo da média ponderada das classificações obtidas sendo considerado 60% para a componente teórica e 40% para a componente prática. A classificação teórica pode ser recuperada em todas as épocas de exame definidas.
Top