Departamento de Informática (UM)

Página de Unidade Curricular

DesignaçãoCódigoCursoRegimeRegente

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

15892 [ME37ME3700007144]

Mestrado em Bioinformática [MBINF]

S1

José Manuel Ferreira Machado

Objetivos

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.

Programa

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

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.

Resultados da 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.

Método 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.

Funcionamento

Turno: T 1; Docente: Jorge Gustavo Pereira Bastos Rocha; Dep.: DI; Horas: 15.
Turno: T 1; Docente: José Manuel Ferreira Machado; Dep.: DI; Horas: 15.
Turno: PL 1; Docente: Paulo Adelino Dias Almeida; Dep.: DI; Horas: 30.
Turno: PL 1; Docente: José Manuel Ferreira Machado; Dep.: DI; Horas: 30.

[ Outras UCs do Departamento ]