Informação geral
Carga Horária
Objetivos de ensino
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
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
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.