Licenciatura

Engenharia Multimédia

Área Científica

Ciências informáticas

Duração

Semestral

Unidade Curricular

Programação de Computadores I

ECTS

6

Horas de Contacto

60h

OBJETIVOS DA APRENDIZAGEM

Para concluir com sucesso esta unidade curricular, os alunos deverão demonstrar possuir os seguintes conhecimentos e capacidades:

1. Compreender o funcionamento da linguagem Python;
2. Saber instalar ambientes de desenvolvimento para Python;
3. Conhecer os tipos de dados e saber declarar variáveis e constantes;
4. Compreender e saber utilizar as estruturas de decisão e repetição;
5. Compreender e saber utilizar funções;
6. Saber criar programas orientados por objetos em Python;
7. Conhecer e saber utilizar bibliotecas multimédia para o desenvolvimento de programas em Python.

PROGRAMA

1. Técnicas básicas de programação

1.1. Algoritmos e programas

1.2. Programas e linguagens

1.3. Tipos de dados

1.4. Identificadores, variáveis e constantes

1.5. Operadores e expressões

1.6. Strings

1.7. Estruturas de decisão e repetição

2. Introdução à linguagem Python

2.1. Origens e evolução da linguagem

2.2. Caraterísticas da linguagem

2.3. Modos de execução de código

3. Plataforma de desenvolvimento

3.1. IDEs para Python

3.2. Instalação de plataformas de desenvolvimento

3.3. Execução de código

3.4. Exemplos

4. Organização de execução de código Python

4.1. Módulos e packages

4.2. Names e namespaces

4.3. Scopes

4.4. Objetos e classes

5. Tipos de dados intrínsecos

5.1. Tipos mutáveis e imutáveis

5.2. Números

5.2.1.Inteiros

5.2.2.Booleans

5.2.3.Floating-point

5.2.4.Complexos

5.2.5.Frações

5.3. Strings e bytes

5.3.1.Conceito

5.3.2.Operações básicas

5.3.3.Exemplos

5.4. Tuples

5.5. Listas

5.6. Byte arrays

5.7. Set types

5.8. Dicionários

5.9. O módulo Collections

6. Estruturas de decisão

6.1. If

6.2. If… else

6.3. Ifl…elif

6.4. Operador ternário

7. Estruturas de repetição

7.1. Loop for

7.1.1.Iterações em ranges

7.1.2.Iterações em sequências

7.2. Loop while

7.3. Statements Break e Continue

7.4. Utilização da clausula else

8. Exemplos de utilização conjunta de statement de decisão e repetição

9. Funções

9.1. Conceito de função

9.2. Utilidade das funções

9.3. Criação de funções em Python

9.4. Scopes

9.5. Passagem de argumentos

9.6. Valores retornados

9.7. Funções recursivas

9.8. Funções anónimas

9.9. Funções built-in

10. Programação Orientada a Objetos

10.1. Conceitos introdutórios

10.2. Classes em Python

10.3. Inicializar instâncias

10.4. Herança e composição

10.5. Acesso a classe base

10.6. Herança múltipla

10.7. Classes e métodos static

10.8. Private methods

10.9. Operator overloading

10.10. Polimorfismo

11. Utilização de frameworks multimédia para Python

DEMONSTRAÇÃO DE COERÊNCIA ENTRE CONTEÚDOS PROGRAMÁTICOS E RESULTADOS DA APRENDIZAGEM

Para muitos alunos, esta cadeira pode constituir o primeiro contacto com uma linguagem de programação. Por esse motivo, antes de iniciar o estudo da linguagem Python, são
apresentados conceitos básicos de lógica de programação, usando uma linguagem de pseudocódigo. Posteriormente, e sem prejuízo do rigor e do formalismo, a linguagem Python é apresentada através de exemplos simples de programas de input e output. A apresentação dos vários tipos de statements é acompanhada de exemplos que permitam aos alunos
compreender as várias estruturas de programação da linguagem. A parte final do programa é preenchida com o desenvolvimento de aplicações usando as frameworks multimédia da linguagem Python.

METODOLOGIA DE ENSINO E AVALIAÇÃO

Todas as aulas são de natureza teórico-prática. Estão previstas 60 horas de contato. O tempo total de trabalho do aluno corresponde a 162 horas. A apresentação da estrutura da linguagem Python é feita com base em exemplos apresentados pelo professor e em pequenos exercícios propostos aos alunos, como forma de facilitar a compreensão das estruturas e dos statement da linguagem. Esta evolução gradual permitirá que os alunos possam acompanhar o desenvolvimento da matéria e criar programas de complexidade crescente.
De acordo com o Regulamento de Funcionamento do ISTEC a avaliação é efetuada através de um exame escrito individual e obrigatório. Na classificação final, poderão ser considerados
elementos de avaliação contínua, tais como testes, trabalhos individuais ou em grupo, assim como a participação nas aulas presenciais e em recursos de aprendizagem proporcionados por sistemas de e-learning.

DEMONSTRAÇÃO DE COERÊNCIA ENTRE METODOLOGIAS DE ENSINO E RESULTADOS DE APRENDIZAGEM

Ao longo do processo de aprendizagem da unidade curricular, os alunos participam e resolvem um vasto e diversificado número de exemplos e exercícios que lhes permitem adquirir
familiaridade com a linguagem. A parte final do programa, foi estruturada para que o aluno, uma vez dominada a sintaxe da linguagem, possa desenvolver programas que explorem o grande potencial das frameworks multimédia da linguagem Python.

BIBLIOGRAFIA:

Fundamental:
COSTA, Ernesto. (2015). Programação em Python. Lisboa: FCA
MARTINS, João. (2015). PYTHON – Introdução à programação utilizando múltiplos paradigmas. Lisboa: IST Press.
Sathaye, Ninad. Python Multimedia Beginners Guide (2010), Packet Publishing

Complementar:
BEAZLEY, David (2013); PYTHON Cookbook, O’Reilly, EUA.
KETKAR, Nikhil (2017); Deep Learning with Python, APRESS, NY.
KNAPP, Michael (2017); Python: programming for beginners. EA. London.
LUTZ, Mark (2014); PYTHON Pocket Reference, O’reilly, EUA.
LUTZ, Mark (2013); Learning Python, O’Reilly, EUA.
NEEDHAM, Timothy (2015); PYTHON: for beginners, EA, NY.
RAMALHO, Luciano (2015); Fluent Python, O’Reilly, EUA.
SEVERANCE, Charles (2016); PYTHON for everyboddy, EA, EUA.

INTERNET:
Acesso a publicações da especialidade, gratuitamente, através da rede SPRINGER:
https://link.springer.com/