Introdução à Programação

Objetivos

Saber

  • O significado das várias construções de programação incluídas no fragmento coberto da linguagem Java.
  • Construir uma pequena aplicação no fragmento coberto a partir de uma especificação informal, mas rigorosa, escrita em Português, e usando a metodologia definida na disciplina.
  • Quais os componentes e ferramentas básicas de um ambiente de desenvolvimento de software (editor, compilador, etc) e qual a sua função.

Fazer

  • Desenvolver programas de pequena dimensão, bem organizados e obedecendo a um certo número de convenções.
  • Conseguir projectar e escrever correctamente algoritmos simples.
  • Ler e explicar / simular mentalmente a funcionalidade de fragmentos de código escritos no fragmento coberto da linguagem Java.
  • Utilizar correctamente, ao nível esperado, as ferramentas de programação, assim como interpretar os seus resultados (mensagens de erro, etc).
  • Realizar, em grupo, um mini-projecto de desenvolvimento de software, integrando as várias competências transmitidas.

Soft-Skills

  • Desenvolver hábitos de trabalho e de cumprimento de prazos.
  • Desenvolver a preocupação com o rigor, e com a execução sistemática de planos de trabalho e métodos previamente determinados.
  • Desenvolver competências de organização de trabalho em grupo.

Caracterização geral

Código

10637

Créditos

9.0

Professor responsável

António Maria Lobo César Alarcão Ravara, Margarida Paula Neves Mamede

Horas

Semanais - 6

Totais - 72

Idioma de ensino

Português

Pré-requisitos

Não tem

Bibliografia

David J. Eck, Programming Using Java, Online book, http://math.hws.edu/javanotes, 2020.

Cay Horstmann, Java Concepts, 7th edition, Wiley, 2020.

Walter Savitch, Java: An Introduction to Computer Science and Programming, 7th edition, Prentice-Hall, 2014.

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

Método de ensino

O ensino consiste em aulas teórico-práticas e aulas práticas (ambas em laboratório). Nas teórico-práticas a exposição de matéria é intercalada com a resolução de exercícios nos quais os alunos aplicam os conceitos apresentados.

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

No mini-projecto final os alunos desenvolvem uma aplicação simples que permite aplicarem toda a matéria aprendida nas aulas. O apoio ao projecto 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órico-prática. 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, alguns exercícios e alguns desafios. Os trabalhos, os exercícios e os desafios 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). Em ambos, poderá haver uma discussão individual, possivelmente presencial, para aferir o conhecimento que cada aluno tem sobre o trabalho que entregou. A nota de um aluno num trabalho depende do trabalho que entregou e do seu desempenho na discussão. Consequentemente, no segundo trabalho, as notas dos dois elementos do grupo podem ser diferentes.

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

notaP = (0.1 P1 + 0.25 P2) / 0.35 .

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

Na maioria das aulas práticas, o aluno deve resolver exercícios e submeter os respetivos programas na plataforma Mooshak. A nota destes exercícios (notaA) pode valer 1 valor da nota final, atribuído se o Mooshak aceitar pelo menos 75% do número de exercícios propostos, truncado às unidades. Por exemplo, se houver 7 exercícios propostos, como 0.75 x 7 = 5.25, a nota dos exercícios será:

  • notaA = 0,   se o número de exercícios aceites pelo Mooshak for < 5;

  • notaA = 1,   se o número de exercícios aceites pelo Mooshak for >= 5.

Em algumas semanas, existirá um desafio, também a submeter ao Mooshak. A nota destes desafios (notaD) pode valer 1 valor da nota final, atribuído se o Mooshak aceitar pelo menos 65% do número de desafios, truncado às unidades. Por exemplo, se houver 5 desafios, como 0.65 x 5 = 3.25, a nota dos desafios será:

  • notaD = 0,   se o número de desafios aceites pelo Mooshak for < 3;

  • notaD = 1,   se o número de desafios aceites pelo Mooshak for >= 3.

Componente Teórico-Prática

A componente teórico-prática é 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órico-prática (CompTP) é a média pesada das notas dos testes (T1 e T2) ou a nota do exame (Ex):

CompTP = (0.2 T1 + 0.35 T2)/0.55   ou   CompTP = Ex.

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

Nota Final

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

  • F = CompTP,   se CompTP < 9.5;

  • F = 0.35 notaP + notaA + notaD + 0.55 CompTP,   se CompTP >= 9.5 .

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

Frequência e Classificações Obtidas em 2019/20

Os alunos que obtiveram frequência em 2019/20 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 as notas obtidas o ano passado (notaP, notaA e notaD) serão usadas no cálculo da nota final. 

Se optarem por entregar o primeiro trabalho, as notas dos trabalhos (notaP), dos exercícios (notaA) e dos desafios (notaD) serão todas calculadas 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 2019/20 têm de realizar os trabalhos para obter frequência este semestre, ignorando-se todas as classificações obtidas anteriormente.

Conteúdo

1. Computadores e programas

2. Objectos e operações

3. Classes e tipos de dados básicos

4. Manipulação de estado

5. Mecanismos de decisão

6. Estrutura de aplicações

7. Interacção (I/O)

8. Mecanismos de iteração

9. Manipulação de ficheiros

10. Aplicações com várias classes

11. Vectores e algoritmos relacionados

12. Ordenação e pesquisa

13. Metodologias de desenvolvimento de software

Cursos

Cursos onde a unidade curricular é leccionada: