Objetivos de aprendizagem e a sua compatibilidade com o método de ensino (conhecimentos, aptidões e competências a desenvolver pelos estudantes)
Espera-se do aluno aprovado:
A capacidade de escrever código utilizando eficazmente a lógica da programação e as potencialidades de uma linguagem de scripting;
A capacidade de automatizar tarefas de gestão de redes e de sistemas informáticos recorrendo a linguagens de scripting;
A compreensão da arquitetura dos serviços numa dada realidade e a capacidade de conceber soluções de scripting e automação adequadas;
A realização de tarefas de administração de sistemas com recurso a scripting e automação.
Conteúdos programáticos
Introdução à programação com o Bash
Configuração da consola
Sintaxe dos comandos
Utilização do help
Sistema de Ficheiros: caminhos absolutos e caminhos relativos
Variáveis de Ambiente. Variáveis Globais e Locais
Estruturas de Controle
Criação e execução de Scripts
Scripts Parametrizados
Comandos do Linux
Redirecção e Pipeline
Files e Files Descriptors
Standard Input, Standard Output e Standard Error
Redirecção do Output (overwrite e append)
Redirecção do Standard Error
Redirecção do Input e Here Documents
Estrutura de uma cadeia de comandos (pipeline)
Expansões no Bash
Tilde, Brace, Parameter, Arithmetic e Command Expansions
Sistema de Ficheiros
Input do Utilizador e Input de Ficheiros
Formatação básica
Projeto: Git, GitHub, GitHub CodeSpaces
Demonstração da coerência dos conteúdos programáticos com os objetivos de aprendizagem da unidade curricular
São expostos os comandos do Linux e o encadeamento de comandos em Pipeline quer na linha de comandos quer em expressões e instruções nos scripts.
É exposta a sintaxe e a semântica da linguagem de scripting Bash para a produção de scripts que automatizem tarefas repetitivas e manuais.
Metodologias de ensino e de aprendizagem específicas da unidade curricular articuladas com o modelo pedagógico
Metodologia de ensino:
Aulas teórico-práticas de exposição da matéria, de demonstração de conceitos e de software, de resolução de exercícios e de apresentação e discussão da solução dos exercícios.
Aulas práticas dedicadas à realização do projeto da disciplina e aulas de apresentação e discussão dos projetos dos alunos
Avaliação:
Realização de um teste prático com o peso de 50% na nota final
Conceção, desenho e implementação de um projeto em sala de aula (50% da nota final).
Demonstração da coerência das metodologias de ensino e avaliação com os objetivos de aprendizagem da unidade curricular
Com a exposição dos conceitos fundamentais e com a demonstração de código e de soluções de software é dado ao aluno a responsabilidade e a motivação para o seu envolvimento nos exercícios que lhe são atribuídos. É favorecida a autonomia do aluno e privilegiado o desejo e a capacidade da descoberta. O projecto final permite a articulação e a integração dos conceitos e tecnologias abordados, consolidando-os e abrindo as portas à procura de mais conhecimento.
Bibliografia de consulta (existência obrigatória)
How to Automate Command Line Tasks Using Bash Scripting and Shell Programming, Jason Cannon,
Linux Command Line and Shell Scripting Bible, Richard Blum, Wiley