Programação
-
Conhecimentos de Base Recomendados
Dado que é o primeiro contato com algoritmos, estruturas de dados e linguagens de programação no atual plano curricular. Esta unidade curricular introduz a programação procedimental e imperativa, e também o paradigma orientado a objetos (Introdução à Programação Orientada por Objetos). Portanto, os estudantes não precisam ter conhecimentos prévios relativamente às ciências da computação. -
Objetivos
Que o aluno adquira e consolide conhecimentos, aptidões, e competências na:
- Aprendizagem dos fundamentos concetuais ao desenvolvimento e codificação de algoritmos em linguagens de programação;
- Desenvolvimento de aplicações informáticas em linguagens de alto nível;
- Aplicação prática dos conteúdos programáticos em problemas reais utilizando os paradigmas de programação procedimental e imperativa, e programação orientada por objetos;
- Desenvolvimento da capacidade de raciocínio lógico e formal na resolução de problemas complexos.
Ao completar esta unidade curricular os estudantes irão adquirir os conhecimentos e competências necessárias para:
- Aplicar as suas capacidades de raciocínio lógico e formal (adquiridas) na resolução de problemas complexos.
- Desenvolvimento de algoritmos e métodos para resolver problemas reais, em particular, no campo das ciências biomédicas.
- Implementar protótipos de software / soluções informáticas utilizando paradigmas e ferramentas de programação recentes, com recurso à linguagem Python.
-
Métodos de Ensino
A metodologia de ensino é essencialmente baseada em aulas iminentemente teórico-práticas e laboratórios. Pretende-se que os alunos apliquem diretamente os conhecimentos que vão adquirindo e ao mesmo tempo estimulem a criatividade e o raciocínio com desafios reais. Adicionalmente, os alunos têm suporte extra-aulas, efetuado através da plataforma de e-Learning.Para dar suporte à implementação prática dos conceitos teóricos é utilizada a linguagem de programação Python. Para tal, são ministrados os conceitos fundamentais da linguagem, com recurso aos paradigmas de programação (i) procedimental e imperativa, e (ii) orientada por objetos. -
Estágio(s)
Não
-
Programa
- Enquadramento da programação (5%)
- Descrição básica de um computador.
- Representação de Informação.
- A programação e a resolução de problemas.
- Algoritmos (5%)
- Algoritmos e programas.
- Conceito de Algoritmo, abordagens bottom-up e top-down.
- Linguagens de programação (5%)
- Conceitos de: linguagem natural, pseudocódigo, linguagem de programação.
- Linguagens de baixo-nível vs linguagens de alto-nível.
- Linguagens tipificadas vs não-tipificadas, compiladas e interpretadas.
- Fases de desenvolvimento de programas.
- Programação numa linguagem de alto nível, orientada ao exemplo: Python (85%)
- Princípios de programação em Python:
- Estrutura de um programa.
- Expressões, Tipos de dados.
- Instruções de entrada e saída.
- Estruturas de controlo.
- Funções / Subprogramas
- Tipos de dados estruturados.
- Arrays, Listas, dicionários, tuples, sets.
- Introdução a programação orientada por objetos.
- Noção de classe, objeto e atributos
- Noções de visibilidade e encapsulamento
- A noção de herança e polimorfismo
- Introdução às exceções.
- Utilização de bibliotecas externas.
- Abordagens às ferramentas de desenvolvimento (IDEs, Jupyter Notebooks, Google colaboratory, github).
- Processamento de sequências de dados (p.e.,ficheiros texto, Excel)
- Introdução ao Aprendizagem de Máquina.
- Princípios de programação em Python:
- Enquadramento da programação (5%)
-
Demonstração de conteúdos
-
-
Demonstração da metodologia
-
-
Docente(s) responsável(eis)
José António Sena Pereira - 1.º Semestre
-
Bibliografia
John V. Guttag; Introduction to Computation and Programming Using Python with Application to Understanding Data, Massachusetts Institute of Technology, 2016. ISBN: 9780262529624
Andrew Bird, Dr Lau Cher Han, Mario Corchero Jiménez, Graham Lee, Corey Wade; The Python Workshop: Learn to code in Python and kickstart your career in software development or data science. 1st Edition., Packt Publishing, 2019. ISBN: 978-1-83921-885-9
Steven F. Lott, Dusty Phillips ; Python Object-Oriented Programming: Build robust and maintainable object-oriented Python applications and libraries, 4th Edition , Packt Publishing, 2021. ISBN: 978-1801077262
Sebastian Raschka, Vahid Mirjalili; Python Machine Learning Third Edition, Packt Publishing, 2019. ISBN: 978-1-78995-575-0
Mark Lutz; Programming Python, O’Reilly Media, 2011. ISBN: 978-0-596-15810-1
Python Software Foundation; The Python Tutorial (website (https://docs.python.org/3/tutorial/index.html))
Behrouz A. Forouzan; Foundations of Computer Science, 4th Edition, Cengage Learning EMEA, 2018. ISBN: 9781473751040
Detalhes do curso
-
Código
LTB11005
-
Modo de Ensino
PRESENCIAL
-
ECTS
6.0
-
Duração
Semestral
-
Horas
30h Práticas e Laboratórios
45h Teórico-Práticas
