Pensamento Computacional

Código: CINF050     Sigla: PC

Áreas Científicas
Classificação Área Científica
OFICIAL Ciência de Computadores

Ocorrência: 2023/2024 - 1S

Ativa? Sim
Unidade Responsável: Departamento de Engenharia Informática
Curso/CE Responsável: Licenciatura em Ciência da Informação

Ciclos de Estudo/Cursos

Sigla Nº de Estudantes Plano de Estudos Anos Curriculares Créditos UCN Créditos ECTS Horas de Contacto Horas Totais
CINF 76 Plano Oficial em vigor (2022) 1 - 6 41 162

Língua de trabalho

Português

Objetivos

- Estabelecer as bases do pensamento computacional, desenvolver a abstração e relacionar com os problemas no mundo natural.
- Desenvolver a capacidade de conceber programas, compreendê-los e explicá-los, detetar e corrigir erros.
- Estabelecer a ponte entre os mundos analógico e digital e para desenvolver o pensamento crítico relativamente ao significado dos dados, as implicações sociais da privacidade e a ciência dos dados.

Resultados de aprendizagem e competências

Os estudantes terão as seguintes competências:

- Reconhecer aspetos da computação no mundo à sua volta;

- Aplicar ferramentas e técnicas da computação para compreender e raciocinar sobre sistemas e processos tanto naturais como artificiais;

- Abstração, em diversas modalidades: modelação, decomposição, generalização e classificação;

- Compreender e explicar programas;

- Conceber e escrever programas;

- Encontrar e corrigir erros no código;

- Refletir aprofundadamente sobre o programa, incluindo avaliar a sua correção e adequação ao propósito;

- Compreender a eficiência do programa;

- Descrever o sistema a outras pessoas;

- Discutir aspetos como a inteligência e a consciência naturais e artificiais, a criatividade e a propriedade intelectual e as implicações morais e éticas da utilização de computadores.

Modo de trabalho

Presencial

Programa

Algoritmos. O algoritmo como uma sequência de passos definidos para resolver um dado problema. Um mesmo problema pode ser resolvido por vários algoritmos diferentes. Critérios de escolha. Precisão tanto do algoritmo como dos dados. Algoritmos principais, ordenação e pesquisa. Conceção de algoritmos para re-utilização, validação, teste e correção.

Programas. Programar dispositivos físicos, instruções e ações. Sequenciação. Seleção. Repetição. Variáveis e atribuição. Dados de tipos diferentes: inteiros, carateres, cadeias. Operadores relacionais e lógica para controlar a execução das instruções do programa. Manipulação de expressões lógicas, tabelas de verdade variáveis booleanas. Abstração usando funções e procedimentos com parâmetros. Documentação de programas. Erros na sintaxe do programa e erros no seu significado. Estruturas de dados simples como variáveis, registos, matrizes, listas, árvores, tabelas de dispersão. Procedimentos que chamam procedimentos, em vários níveis. Programas que lêem e escrevem dados persistentes em ficheiros. Padrões de desenho: divisão e conquista, oleoduto, caching, ordenação, pesquisa, retrocesso, recursão, cliente/servidor, modelo/vista/controlador.

Dados. Introdução à manipulação binária. Representação de inteiros sem sinal, texto, som (tanto envolvendo conversão analógico-digital, e. g. WAV, como sem conversão, e. g. MIDI), fotografias e vídeo. Múltiplas representações de uma mesma coisa num computador. Hexadecimal. Inteiros com sinal em complemento para dois. Manipulação de cadeias. Compressão de dados; algoritmos de compressão sem e com perdas e. g. JPEG. Problemas da utilização de representações binárias discretas: quantificação, frequência de amostragem. Representação de números fracionários.

Aspetos sociais da computação.

Bibliografia Obrigatória

John Guttag. ; Introduction to Computation and Programming Using Python: With Application to Understanding Data Second Edition. MIT Press, 2016. ISBN: 9780262529624
Peter J. Denning, Matti Tedre. ; Computational Thinking, MIT Press, 2019.

Métodos de ensino e atividades de aprendizagem

As metodologias de estudo são baseadas em problemas e usam diversas ferramentas desde as simulações em papel e lápis e a programação de robots infantis até à escrita e correção de programas com um IDE para Python.

Tipo de avaliação

Avaliação distribuída com exame final

Componentes de Avaliação

Designação Peso (%)
Participação presencial 0,00
Exame 50,00
Teste 50,00
Total: 100,00

Componentes de Ocupação

Designação Tempo (Horas)
Estudo autónomo 70,00
Frequência das aulas 30,00
Total: 100,00

Obtenção de frequência





  • Cumprimento do limite de faltas legalmente estabelecido.



  • Obtenção de um mínimo de 10 (dez) valores na classificação final

Fórmula de cálculo da classificação final



  • Nota Final = (Teste+Exame)/2;


    se Teste >= 6,0 e Exame >= 6,0



Melhoria de classificação

Exame de Recurso