Programação e Algoritmos I

Conhecimentos de Base Recomendados

N/A

Métodos de Ensino

A unidade curricular será leccionada através de aulas teórico-práticas, fundamentos de programação e identificação de problemas e soluções. Na componente prática procurar-se-á proporcionar uma aprendizagem segundo projectos para resolver problemas.

A avaliação contínua é feita com recurso a uma prova individual de avaliação de conhecimentos com peso de 45%, no formato de teste, componente escrita, sem consulta, 50% e componente oral, para explicação do algoritmo e para a justificação do código desenvolvido, 50%.

 Um trabalho de programação individual, com peso de 55%. As avaliações de programas serão avaliados segundo a componente de estilo (modularidaridade, abstração, legibilidade, comentários, etc) – peso 30%, funcionalidade (correção e eficiência do programa em todas as entradas de teste possíveis) – peso 40% e defesa individual – peso 30%.

Resultados de Aprendizagem

Nesta unidade curricular espera-se que o aluno tome contacto com vários aspectos base em termos de programação, entre os quais se destacam: A utilização do computador como ferramenta de trabalho que executa tarefas definidas pelo programador e pelo utilizador; A identificação e representação de problemas; Mapeamento/modelação de processos; Apresentação de soluções estruturais e algorítmicas; A utilização de linguagens de programação para a construção de soluções, nomeadamente as orientadas a objectos; A identificação de tipos de dados; A utilização de execução condicionada; A proposta de soluções úteis e funcionais

Programa

A unidade curricular compreende os seguintes conteúdos: O que é um algoritmo? Algoritmo sem computadores: codificação binária e jogos; introdução à codificação (CODE) utilizando pseudocódigo; programação (Code) com Scratch; Passagem do Scratch ao Python e JavaScript; utilização e definição de classes; execução condicionada, iterada e recursiva; estruturas de dados; criação de métodos; input e output de dados; os mecanismos de herança e polimorfismo; criação de aplicações compostas por várias classes.    

Docente(s) responsável(eis)

Estágio(s)

NAO

Bibliografia

 

EDMONDS, Jeff. How to think about algorithms. Cambridge: Cambridge University Press, 2008. ISBN 978-0-521-61410-8; Tim Bell, Ian H. Witten e Mike Fellows, © 2011 Computer Science Unplugged (csunplugged.org); Scratch MIT: scratch.mit.edu; Think Python How to Think Like a Computer Scientist, 2nd Edition, Version 2.4.0, Allen Downey, Green Tea Press, Needham, Massachusetts; Introduction to Computation and Programming Using Python with Application to Computational Modeling and Understanding Data third edition, John V. Guttag, The MIT Press, Cambridge, Massachusetts, London, England; Algoritmia e Programação, Jorge Santos, Sebenta – Instituto Superior de Engenharia do Porto, Departamento de Engenharia Informática, Fevereiro de 2006; Introduction to Python for Computational Science and Engineering (A beginner’s guide to Python 3), Prof Hans Fangohr, Faculty of Engineering and the Environment, University of Southampton United Kingdom and European XFEL GmbH Schenefeld Germany, March 26, 2020; 

https://cs50.harvard.edu/x/2023/weeks/8/ complementar com:

https://runestone.academy/ns/course/index

https://runestone.academy/ns/books/published/webfundamentals/index.html

JS4Python: https://runestone.academy/ns/books/published/JS4Python/index.html?mode=browsing

https://cs50.readthedocs.io/code/#vs-code-desktop