Ficha Unidade Curricular (FUC)
Informação Geral / General Information
Carga Horária / Course Load
Área científica / Scientific area
Ciências e Tecnologias da Programação
Departamento / Department
Departamento de Ciências e Tecnologias da Informação
Ano letivo / Execution Year
2019/2020
Pré-requisitos / Pre-Requisites
Conhecimentos elementares de Matemática (ensino secundário).
Objetivos Gerais / Objectives
A unidade curricular pretende dotar os alunos de noções fundamentais de programação e experiência prática, utilizando a linguagem Python. No final da disciplina, os alunos terão tomado contacto com primitivas de programação imperativa existentes em várias linguagens, bem como com conceitos básicos de programação com objetos.
Objetivos de Aprendizagem e a sua compatibilidade com o método de ensino (conhecimentos, aptidões e competências a desenvolver pelos estudantes) / Learning outcomes
Após a conclusão desta unidade curricular o aluno deverá ficar apto a: OA1. Desenvolver funções/procedimentos que implementem algoritmos simples. OA2. Desenvolver código para manipular estruturas vetoriais e objetos. OA3. Desenvolver classes de objetos simples. OA4. Escrever e compreender código Python.
Conteúdos Programáticos / Syllabus
CP1. Funções e parâmetros CP2. Variáveis e estruturas de controlo CP3. Invocação e recursividade CP4. Vetores CP5. Procedimentos e referências CP6. Matrizes CP7. Objetos simples CP8. Classes de objetos CP9. Objetos compostos CP10. Classes de objetos compostos
Demonstração da coerência dos conteúdos programáticos com os objetivos de aprendizagem da UC / Evidence that the curricular unit's content dovetails with the specified learning outcomes
A interligação entre os conteúdos programáticos e os objetivos de aprendizagem (OA) é a seguinte: O objetivo de aprendizagem OA1 está relacionado com os conteúdos programáticos CP1-7 e CP9, dado que os conceitos são aplicados essencialmente por meio do desenvolvimento de funções e procedimentos. O objetivo de aprendizagem OA2 é atingido através dos conteúdos programáticos CP4, CP6, CP7, CP9, cujos exercícios associados envolvem a manipulação de estruturas vetoriais e objetos. O objetivo de aprendizagem OA3 concretiza-se nos conteúdos programáticos CP8 e CP10, os quais consistem numa iniciação à programação orientada para objetos. O objetivo de aprendizagem OA4 é transversal à totalidade dos conteúdos programáticos (CP1-10), dado que apenas consegue ser atingido através da prática da programação em Python tendo em conta as diferentes primitivas disponíveis na linguagem.
Avaliação / Assessment
Esta unidade curricular está estruturada numa combinação de aulas teóricas e aulas práticas. As aulas teóricas têm um cariz demonstrativo, no sentido em que em todas as aulas, uma parte significativa das mesmas é dedicada a resolver exercícios passo-a-passo, demonstrando a aplicação de conceitos. As aulas práticas destinam-se à realização de exercícios ao longo do semestre, os quais acompanham os conceitos abordados nas aulas teóricas. | Avaliação periódica: Nota Final = 20% Nota do Teste Intercalar + 70% Nota da Frequência + 10% Notas dos Mini-testes Online [nota mínima de 8 valores na Frequência] Projeto Individual: obrigatório; classificações possíveis - A, B, C e D; define um limite máximo para a Nota Final [A - max. 20; B - max. 16; C - max. 12; D - reprovação à UC] Não é possível obter aprovação através da realização de Exame (100% da nota). Ver detalhes obrigatórios no campo Observações.
Metodologias de Ensino / Teaching methodologies
Demonstração da coerência das metodologias de ensino e avaliação com os objetivos de aprendizagem da UC / Evidence that the teaching and assessment methodologies are appropriate for the learning outcomes
A metodologia de ensino pretende atingir os objetivos de aprendizagem através da combinação de aulas teóricas e aulas práticas. Nas aulas teóricas são introduzidos os conceitos de programação, os quais estão relacionados com os objetivos de aprendizagem OA1-3. Nas aulas práticas são exercitados os conceitos expostos nas aulas teóricas, de modo a que os alunos atinjam o objetivo de saber escrever a compreender código Python (OA4).
Observações / Observations
A frequência é um teste escrito com a duração aproximada de 2h a realizar na 1ª ou 2ª época. A nota mínima na frequência para obter aprovação na UC é de 8 valores. Em caso de reprovação na 1ª época, o aluno pode voltar a realizar a frequência na 2ª época, mantendo a nota da componente prática. Uma parte significativa da frequência deverá incidir sobre problemas/algoritmos relacionados com o projeto. Por esta razão, recomenda-se que o aluno aplique um esforço considerável na realização do projeto. A dedicação não só é necessária, bem como consistirá num treino adequado para realizar a frequência. Para efeitos de logística, poderá ser pedida uma inscrição obrigatória nas provas em que é esperado um número elevado de alunos. Mini-testes online a. São realizados 10 mini-testes ao longo do semestre, utilizando-se a plataforma de e-learning. Cada mini-teste tem uma duração máxima de 30 minutos, está disponível ao longo de uma semana e incide sobre a matéria dada na semana anterior. b. A nota final desta componente será a média das 8 melhores notas. c. Falhas pontuais no acesso à plataforma de e-learning não influenciam o prazo de realização dos mini-testes - recomenda-se por isso que os alunos não os deixem para o último dia em que estão disponíveis. d. É obrigatório realizar 6 mini-testes. A não realização de, pelo menos, 6 mini-teste resulta na não aprovação à UC. e. Os mini-testes não realizados têm a classificação de 0 valores.
Bibliografia Principal / Main Bibliography
Python for Software Design: Downey A.B 2009 Cambridge University Press Programação em Python: Introdução à programação com múltiplos paradigmas: João P. Martins 2013 IST Press
Bibliografia Secundária / Secondary Bibliography
Data da última atualização / Last Update Date
2024-02-16