Introdução à Programação

Objetivos

Saber

Compreender as várias construções de programação incluídas no fragmento coberto da linguagem Java.

Conhecer os componentes e ferramentas básicas de um ambiente de desenvolvimento de software (editor, compilador, etc) e qual a sua função.

Saber Fazer

Ler e explicar / simular mentalmente a funcionalidade de excertos de código escritos no fragmento coberto da linguagem Java.

Conceber e implementar corretamente algoritmos simples.

Construir uma pequena aplicação no fragmento coberto da linguagem Java, a partir de uma especificação informal, mas rigorosa, escrita em Português, e usando a metodologia definida na disciplina.

Desenvolver programas bem organizados e obedecendo a um certo número de convenções.

Utilizar corretamente, ao nível esperado, as ferramentas de programação e saber interpretar os seus resultados (mensagens de erro, etc).

Realizar um pequeno projecto de programação em grupo.

Soft-Skills

Desenvolver hábitos de trabalho e de cumprimento de prazos.

Desenvolver a preocupação com o rigor e com a execução de planos de trabalho e métodos previamente determinados.

Desenvolver competências de trabalho em grupo.

Caracterização geral

Código

10637

Créditos

9.0

Professor responsável

Carla Maria Gonçalves Ferreira

Horas

Semanais - 5

Totais - 77

Idioma de ensino

Português

Pré-requisitos

Nenhum

Bibliografia

Cay Horstmann, Core Java, Volume I: Fundamentals (Oracle Press for Java) 13th Edition, 2024.

David J. Eck, Introduction to Programming Using Java, 9th edition, Online book, http://math.hws.edu/javanotes, 2022.

Walter Savitch, Java: An Introduction to Problem Solving and Programming, 8th edition, Pearson, 2018.

Especificação das classes do Java 21 (API): https://docs.oracle.com/javase/21/docs/api/

Método de ensino

O ensino consiste em aulas teóricas e aulas práticas. As aulas teóricas consistem na exposição de matéria, ilustrada com exemplos, e suportada por slides.

Nas práticas, os alunos resolvem exercícios de consolidação dos conceitos apreendidos e usados durante as aulas teóricas.

No trabalho prático com entrega em duas fases, os alunos desenvolvem uma aplicação simples, o que lhes possibilita aplicarem a matéria aprendida nas aulas. Esta atividade tem como objetivo avaliar a compreensão dos conceitos e estimular os alunos a aprofundarem o seu conhecimento. O apoio ao trabalho prático nas aulas permite, não só, resolver dificuldades pontuais dos alunos, como também ajudar os alunos a melhorar a organização do programa e a qualidade do código escrito.

Método de avaliação

Componentes da Avaliação

A avaliação é constituída por duas componentes: a componente laboratorial e a componente teórica. Todos os elementos de avaliação terão uma nota na escala de 0 a 20 valores.

Componente Laboratorial e Frequência

A componente laboratorial é composta por dois trabalhos. Os trabalhos são programas que serão entregues na plataforma Mooshak (ou noutra, caso ocorram problemas com o Mooshak). Considera-se que o Mooshak aceita um programa se o programa produzir os resultados corretos com os testes executados.

O primeiro trabalho é individual e o segundo trabalho é realizado em grupo (de dois alunos). As discussões (para aferir o conhecimento que cada aluno tem sobre os trabalhos que entregou) são obrigatórias, presenciais e individuais. A discussão de um trabalho consiste em fazer alterações ao código do trabalho entregue para que o novo programa resolva uma variante do problema original, definida no enunciado da discussão, que difere muito pouco do problema resolvido no trabalho. As notas das discussões e os respetivos critérios são os seguintes:

  • 20: a alteração está globalmente certa;
  • 16: a alteração está confusa ou muito incompleta, mas o caminho poderia ser aquele;
  • 12: a alteração não está certa, havendo "algumas coisas bem e outras muito mal";
  • 4: não foi feita qualquer alteração ou as alterações feitas são ínfimas (e.g. alterar apenas a leitura) ou as alterações feitas não fazem sentido.

Regra geral, a nota de um aluno num trabalho é o mínimo entre a nota do trabalho que entregou e a sua nota na discussão desse trabalho (que é zero, se o aluno faltou).

A nota dos trabalhos (notaP) é a média pesada das notas do aluno nos dois trabalhos (P1 e P2):

notaP = (0.1 P1 + 0.2 P2) / 0.3 .

Para obter frequência, é necessário que notaP >= 9.5.

Componente Teórica

A componente teórica é composta por dois testes (no período de aulas) ou por um exame (na Época de Recurso). As três provas são presenciais, individuais, escritas e sem consulta. Não são permitidos dispositivos eletrónicos (e.g. calculadoras, telemóveis, tablets, smartwatches e portáteis).

Há pré-inscrição nos testes.

A nota da componente teórica (CompT) é a média pesada das notas dos testes (T1 e T2) ou a nota do exame (Ex):

CompT = (0.3 T1 + 0.4 T2)/0.7 ou CompT = Ex.

Para obter aprovação, é necessário que CompT >= 9.5 (e que se tenha obtido frequência).

Nota Final

A nota final (F) dos alunos com frequência é:

  • F = CompT, se CompT < 9.5;

  • F = 0.3 notaP + 0.7 CompT, se CompT >= 9.5 .

Todas as notas (P1, P2, notaP, T1, T2, Ex e CompT) são arredondadas às centésimas, exceto a nota final (F) que é arredondada às unidades.

Frequência e Classificações Obtidas em 2023/24

Os alunos que obtiveram frequência em 2023/24 estão dispensados de realizar os elementos de avaliação da componente laboratorial. 

Se não entregarem o primeiro trabalho, têm automaticamente frequência e nota dos trabalhos do ano passado (notaP) será usada no cálculo da nota final. 

Se optarem por entregar o primeiro trabalho, a nota dos trabalhos (notaP) é calculada com base nos elementos de avaliação entregues este semestre, sendo possível que não obtenham frequência.

Os alunos que obtiveram frequência antes de 2023/24 têm de realizar os trabalhos para obter frequência este semestre, ignorando-se todas as classificações obtidas anteriormente.

Melhoria de Nota de Alunos Aprovados em 2023/24

De acordo com o Regulamento de Avaliação de Conhecimentos da FCT NOVA, a nota final dos alunos aprovados em 2023/24 que realizem o exame de melhoria de nota em 2024/25 é calculada com as regras de 2023/24. Portanto, nesses casos, a nota final é:

  • F = Ex, se Ex < 9.5;
  • F = 0.25 notaP + notaE + notaD + 0.65 Ex, se Ex >= 9.5 ,

onde Ex é a nota do exame realizado em 2024/25 e notaP, notaE e notaD são as notas da componente laboratorial obtidas em 2023/24.

Fraude e Plágio

As questões de fraude e plágio serão tratadas de acordo com o Regulamento de Avaliação de Conhecimentos da FCT NOVA.

Os alunos podem conversar com os colegas sobre os trabalhos e discutir soluções, mas não podem partilhar código (mesmo que sejam "poucas linhas") em nenhuma circunstância, oralmente ou por escrito. A escrita de código tem de ser uma tarefa interna a cada grupo. Por exemplo, não é permitido mostrar código no ecrã, ditar código, enviar ficheiros com código nem colocá-los em sítios acessíveis a terceiros. Considera-se que:

  • um grupo que dá ou que recebe código comete fraude;
  • um grupo em que só um dos membros trabalha comete fraude;
  • os alunos que realizam o trabalho em grupos maiores, partilhando código, cometem fraude.

A utilização de ferramentas de IA (como, por exemplo, ChatGPT ou Copilot) tem de ser explicitamente referida no código. Considera-se que um grupo que use estas ferramentas durante a realização de um trabalho e omita que as usou comete plágio.

Conteúdo

1. Computadores e programas

2. Tipos básicos de dados

3. Manipulação de estado

4. Mecanismos de decisão

5. Interação (I/O)

6. Ciclos e introdução à recursividade

7. Vetores e algoritmos relacionados

8. Ordenação e pesquisa

9. Classes e objetos

10. Estrutura de uma aplicação

11. Iteradores

12. Manipulação de ficheiros

13. Matrizes

14. Aplicações com várias classes

15. Metodologias de desenvolvimento de software

Cursos

Cursos onde a unidade curricular é leccionada: