Conhecimentos de Base Recomendados
Recomenda-se a conclusão prévia das seguintes unidades curriculares:
- Fundamentos de Programação;
- Estruturas de Dados.
Métodos de Ensino
Nesta unidade curricular são utilizadas as seguintes metodologias de ensino:
1. Método expositivo: método explicativo onde fundamentos teóricos e conceitos são apresentados pelo docente e discutidos com a turma. Os conceitos e informações serão apresentados aos estudantes através, por exemplo, de apresentações em slides ou discussões orais. Será utilizado nas aulas para a estruturação e esquematização da informação.
2. Método demonstrativo: baseia-se na exemplificação pelo docente de uma operação técnica ou prática que se deseja aprendida. Centra-se na forma como se executa uma dada operação, destacando as técnicas, as ferramentas e os equipamentos mais adequados. Será por exemplo utilizado em aulas práticas e laboratoriais.
3. Método interrogativo: processo que se fundamenta em interações verbais, sob a condução do docente, adotando o formato de questões e respostas. Permite obter maior dinâmica na aula e consolidar a aprendizagem. Será utilizado por exemplo para recordar elementos de aulas anteriores, e em revisões do conteúdo lecionado.
4. Métodos ativos: serão utilizadas técnicas pedagógicas em que o estudante é o centro do processo de aprendizagem, sendo um participante ativo e envolvido na sua própria formação. O docente assume o papel de facilitador, estimulando o pensamento crítico, a colaboração, a criatividade e a autonomia dos estudantes. Serão aplicados nas aulas para alcançar um ambiente de aprendizagem dinâmico e mais duradouro.
Resultados de Aprendizagem
No final da unidade curricular o estudante ficará habilitado a:
1. Analisar requisitos e restrições para planear e estruturar eficazmente aplicações informáticas;
2. Aplicar boas práticas de programação no desenvolvimento de software. Utilizar normas para escrever e documentar código;
3. Usar sistemas de controlo de versões para gerir e acompanhar alterações em projetos de software;
4. Desenvolver soluções de software combinando e integrando código próprio com recursos de terceiros;
5. Avaliar os potenciais riscos de segurança dos sistemas de software. Implementar as melhores práticas de segurança;
6. Analisar a qualidade do software utilizando diversas metodologias de teste para garantir a fiabilidade e o desempenho do mesmo;
7. Aplicar conhecimentos e habilidades na implementação de sistemas informáticos, assegurando o seu correto funcionamento em ambientes de produção.
Programa
1. Planeamento e estruturação de aplicações informáticas;
2. Boas práticas de programação e escrita de documentos técnicos;
3. Utilização de sistemas de controlo de versões;
4. Criação e (re)utilização de código próprio e de terceiros (bibliotecas de código, frameworks, APIs);
5. Segurança de software;
6. Qualidade de software;
7. Deployment de sistemas informáticos.
Docente(s) responsável(eis)
Estágio(s)
NAO
Bibliografia
Bass, L., & Klein, J. (2019). Deployment and operations for software engineers. Independently published.
Correia, M. P., & Sousa, P. J. (2017). Segurança no software (2nd ed. ). FCA.
Laboon, B. (2016). A friendly introduction to software testing (1st ed. ). CreateSpace Independent Publishing Platform.
Martin, R. C. (2011). The clean coder: a code of conduct for professional programmers (1st ed. ). Pearson.
McConnell, S. C. (2004). Code complete (2nd ed. ). Microsoft Press.