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 mini-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
Artur Miguel de Andrade Vieira Dias, Margarida Paula Neves Mamede
Horas
Semanais - 9
Totais - 72
Idioma de ensino
Português
Pré-requisitos
Nenhum
Bibliografia
David J. Eck, Introduction to Programming Using Java, 8th edition, Online book, http://math.hws.edu/javanotes, 2021.
Cay S. Horstmann, Java Concepts: Early Objects, 8th edition, Wiley, 2019.
Walter Savitch, Java: An Introduction to Problem Solving and Programming, 8th edition, Pearson, 2018.
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):
Para obter frequência, é necessário que notaP >= 9.5 .
Em muitas aulas práticas, o aluno deve resolver um exercício e submeter o respetivo programa na plataforma Mooshak. A nota destes exercícios (notaE) vale 1 valor da nota final, atribuído se o Mooshak aceitar pelo menos 78% do número de exercícios propostos, arredondado às unidades. Por exemplo, se houver 7 exercícios propostos, como 0.78 x 7 = 5.46, a nota dos exercícios será:
-
notaE = 0, se o número de exercícios aceites pelo Mooshak for < 5;
-
notaE = 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) vale 1 valor da nota final, atribuído se o Mooshak aceitar pelo menos 78% do número de desafios, arredondado às unidades. Por exemplo, se houver 6 desafios, como 0.78 x 6 = 4.68, a nota dos desafios será:
-
notaD = 0, se o número de desafios aceites pelo Mooshak for < 5;
-
notaD = 1, se o número de desafios aceites pelo Mooshak for >= 5.
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):
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 + notaE + 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 2020/21
Os alunos que obtiveram frequência em 2020/21 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, notaE 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 (notaE) 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 2020/21 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. Objetos e operações
3. Classes e tipos de dados básicos
4. Manipulação de estado
5. Mecanismos de decisão
6. Interação (I/O)
7. Ciclos e introdução à recursividade
8. Estrutura de aplicações
9. Vetores e algoritmos relacionados
10. Iteradores
11. Ordenação e pesquisa
12. Manipulação de ficheiros
13. Matrizes
14. Aplicações com várias classes
15. Metodologias de desenvolvimento de software