Licenciatura | Engenharia de Redes e Segurança Informática

Introdução à Programação

Área Científica

Ciências Informáticas

Duração

Semestral

ECTS

6

Horas de Contacto Teórico Práticas

48h

Objetivos de aprendizagem e a sua compatibilidade com o método de ensino

O1 – Compreender conceitos básicos de programação, como algoritmo e abstração;
O2 – Conhecer paradigmas de programação;
O3 – Desenvolver capacidades de abstração;
O4 – Mobilizar conceitos abstratos para a sua aplicação em situações concretas;
O5 – Conhecer os principais mecanismos da linguagem de programação Python;
O6 – Desenvolver programas em Python.

Conteúdos programáticos

1.Programação

1.1 Programa
1.2 Algoritmo
1.3 Sintaxe e Semântica
1.4 Linguagens de Programação; Linguagens de alto nível e de baixo nível
1.5 Python

2.Tipos de Dados Elementares e Operadores

2.1. Tipos numéricos
2.2. Booleanos
2.3. Operadores Lógicos e Aritméticos

3.Estruturas e Funções

3.1. Definição e motivação
3.2. Abstração procedimental
3.3. Programas e instruções
3.4. Input e output
3.5. Controlo de Fluxo: Estruturas de Seleção e Repetição
3.6. Âmbito: Variáveis Globais; Variáveis Locais
3.7. Funções
3.8. Passagem de parâmetros
3.9. Módulos

4.Funções avançadas

4.1. Função Recursiva: definição e aplicações
4.2. Função Iterativa: definição e aplicações
4.3. Recursividade e Iteratividade: exemplos
4.4. Funções de Ordem Superior
4.5. Programação Funcional

5.Tipos de Dados Complexos

5.1. Arrays
5.2. Tuplos
5.3. Listas
5.4. Dicionários

6. Introdução à Programação Orientada a Objetos

Demonstração da coerência dos conteúdos programáticos com os objetivos de aprendizagem da unidade curricular.

Os conteúdos programáticos de Introdução à Programação têm em conta os resultados esperados relativamente às competências e capacidades adquiridas pelos estudantes no que diz respeito a um potencial primeiro contacto com conceitos de programação. Estes conteúdos iniciam-se com a introdução à programação de um ponto de vista conceptual e a motivação para a necessidade de recorrer à programação como uma ferramenta para a criação de soluções para problemas do mundo real. Os estudantes terão contacto com os principais conceitos relativos a tipos de dados, suas estruturas, agrupamentos e abstrações que permitem a criação de programas. Para que seja possível concretizar estes conceitos e mecanismos, será utilizada a linguagem de programação Python que, sendo uma linguagem de alto nível, orientada a objetos, de tipificação dinâmica e multi-paradigma, é adequada a fins académicos e, simultaneamente, amplamente utilizada em meio empresarial e, portanto, a escolha lógica para o contexto desta UC

Metodologias de ensino e de aprendizagem específicas da unidade curricular articuladas com o modelo pedagógico.

Esta unidade curricular tem uma natureza teórico-prática. Estão previstas 48 horas de contacto. A componente teórica desenvolve-se através de apresentações feitas pelo docente em sala de aula, complementada quando apropriado com outros elementos pedagógicos, que estimulem o interesse e participação dos alunos e a interação docente/discentes. A componente prática concretiza-se através de exercícios de aplicação a desenvolver na aula com a supervisão do docente e utilização de métodos interativos que fomentem a discussão de uma solução base e de possíveis alternativas.
Em suma, a metodologia de ensino e aprendizagem encontra-se consubstanciada nos princípios enumerados no modelo pegadógico de ensino do ISTEC (Aprendizagem Significativa, Motivação, Orientação, Interação, inclusão e Aprendizagem Centrada no Estudante).

Demonstração da coerência das metodologias de ensino e avaliação com os objetivos de aprendizagem da unidade curricular.

A metodologia centrar-se-á na interatividade entre os vários agentes educativos, começando pelo docente e estendendo-se a todos os estudantes, envolvendo os estudantes no processo de ensino aprendizagem de forma crítica e ativa. Com uma abordagem de debate e utilizando os documentos de apoio inerentes às temáticas abordadas, espera-se que exista uma forte motivação e participação por parte dos estudantes nas atividades a desenvolver. Assim, utilizando metodologias ativas em que o estudante controla a sua aprendizagem e participa diretamente nela, estamos em crer que poderemos atingir os objetivos propostos de uma forma mais eficiente e aprofundada.
Dada a especificidade da unidade curricular serão utilizados exemplos reais e atuais que contextualizem os conteúdos programáticos.
Deste modo procura-se estimular o trabalho autónomo dos estudantes e desenvolver os seus sentidos e pensamentos críticos sobre as questões que o envolvem, direta ou indiretamente.
Com estas metodologias crê-se uma boa execução dos conteúdos programáticos e como consequência a consecução com sucesso dos objetivos da unidade curricular.

Bibliografia

I. Dominte, “Web API Development for the Absolute Beginner: A Step-by-step Approach to Learning the Fundamentals of Web API Development with .NET 7”, Apress, 2023.
M. Price, “Modern Cross-Platform Development Fundamentals: Start building websites and services with ASP.NET Core 7, Blazor, and EF Core 7”, Packt, 2022.
J. Chan, “Python API Development Fundamentals: Develop a full-stack web application with Python and Flask”, Packt, 2019
J. Albahari, “C# 10 in a Nutshell: The Definitive Reference”, O’Reilly, 2022
A. Stellman, “Head First C#, 4e: A Learner’s Guide to Real-World Programming with C# and .NET Core”, O’Reilly, 2021

INTERNET:
Acesso a publicações da especialidade, gratuitamente, através da rede SPRINGER:
https://link.springer.com/