-
Apresentação
Apresentação
Esta é uma disciplina fundamental na formação de qualquer profissional da área de Informática pois introduz os conceitos básicos da programação, sobre os quais assentarão muitas disciplinas subsequentes como Linguagens de Programação I e II, Algoritmia e Estruturas de Dados, Programação Web, Computação Móvel, etc. Mais do que aprender uma linguagem de programação, o aluno aprende a pensar como um programador, analisando problemas e desenhando algoritmos que os resolvam recorrendo a fluxogramas e a programas escritos em Kotlin, uma linguagem promissora que combina as melhores características das linguagens modernas mais populares (Java, Python, etc.) Dado ser o primeiro contacto de muitos alunos com o tópico da Programação, reveste-se de uma importância especial na aquisição de conhecimentos primordiais mas também na sua motivação. Mais do que aprender a programar, os alunos aprendem a gostar de programar.
-
Disciplina do curso
Disciplina do curso
-
Grau | Semestres | ECTS
Grau | Semestres | ECTS
Licenciado | Semestral | 6
-
Ano | Natureza | Lingua
Ano | Natureza | Lingua
1 | Obrigatório | Português
-
Código
Código
ULHT2531-7337
-
Pré-requisitos e co-requisitos
Pré-requisitos e co-requisitos
Não aplicável
-
Estágio Profissional
Estágio Profissional
Não
-
Conteúdos Programáticos
Conteúdos Programáticos
Introdução à programação Algoritmos, fluxogramas, pseudo-código Sintaxe e semântica das linguagens Elementos da sintaxe, estrutura de um programa Declarações e atribuições Tipos primitivos Expressões aritméticas, expressões lógicas Entradas e saídas de dados Selecção Repetição Funções Arrays uni-dimensionais e bi-dimensionais Tratamento de erros Leitura e escrita de ficheiros Boas práticas de programação imperativa
-
Objetivos
Objetivos
O objectivo desta unidade curricular é fornecer aos futuros profissionais na área da informática as bases para que possam iniciar (de um modo disciplinado) a actividade de programação. O aluno começa por desenvolver a capacidade de raciocínio algorítmico recorrendo a fluxogramas. O aluno deverá ser capaz de traduzir esses fluxogramas numa linguagem de programação imperativa. Concretamente, o aluno deverá conhecer a sintaxe básica de Kotlin que lhe permitam criar programas simples de linha de comando. Finalmente, o aluno deve conseguir analisar e avaliar programas feitos por outras pessoas (colegas, professores, etc.).
-
Metodologias de ensino
Metodologias de ensino
As aulas teóricas são parcialmente leccionadas no modelo "flipped learning": são disponibilizados vídeos antes da aula teórica que os alunos devem visualizar; a aula teórica é maioritariamente ocupada com exercícios sobre essa matéria e respetiva correção, intercalada com alguma matéria adicional. Alguns trabalhos de casa são avaliados no modelo "peer assessment": os alunos avaliam anonimamente os trabalhos uns dos outros. A validação do código produzido nas fichas práticas e no projeto é feita através de uma ferramenta de validação automática do código, que permite aos alunos grande autonomia. Alguns exercícios de programação são realizados obrigatoriamente com o apoio de um LLM (ChatGPT, Gemini, etc..). Estes exercícios terão enunciados adaptados, para evitar que seja simplesmente feito o copy/paste para o LLM - serão apresentados de forma visual, seja por diagramas seja por vídeos demonstrando o que se pretende. O objetivo é que os alunos treinem a construção de "prompts" eficazes.
-
Bibliografia principal
Bibliografia principal
Singh, B. (2015) Algorithm, Pseudocode and Flowchart: Learn Algorithm in Simple Steps. Subramanian, V. (2019) Programming Kotlin. The Pragmatic Programmers.
-
Avaliação
Avaliação
Época de avaliação contínua
- Componente teórica (50% da nota final, nota mínima 9,5) - tem duas opções: avaliação contínua ou apenas uma frequência completa
- Avaliação contínua:
- 4 TPCs teóricos individuais - 20%
- Frequência intermédia (primeira metade da matéria) - 30% - nota mínima: 8
- Frequência completa (toda a matéria) - 50% - nota mínima: 8 (apenas para quem passou na frequência intermédia)
- Frequência completa (toda a matéria) - 100% - nota mínima: 9,5
- Avaliação contínua:
- Componente prática (50% da nota final, nota mínima 9,5)
- 2 testes práticos individuais - 24% (testes feitos durante a aula prática)
- Participação prática - 16%
- Projeto em grupos de 2, com defesa individual - 60%
- A defesa inclui alterações no código da aplicação que cada aluno terá que fazer individualmente.
- A nota da discussão presencial pode ir de 0 a 100% e é aplicada à nota do projecto
- O aluno terá que conseguir fazer pelo menos metade das alterações pedidas para passar na componente prática.
Época de recurso e época especial
- Exame (50% da nota final, nota mínima 9,5)
- Projeto (50% da nota final, nota mínima 9,5)
- Componente teórica (50% da nota final, nota mínima 9,5) - tem duas opções: avaliação contínua ou apenas uma frequência completa
-
Mobilidade
Mobilidade
Não




