Programação
Objetivos
Tendo em conta que os potenciais alunos não são especialistas na área de informática, a unidade curricular de Programming tem diversos objetivos de aprendizagem:
- familiarizar os alunos com as técnicas básicas utilizadas na área da informática
- dotar os alunos de capacidades de análise e síntese de programas informáticos na perspetiva do programador
- chamar a atenção dos alunos para a potencial utilidade da programação na área do Direito
- fornecer aos alunos conhecimentos em áreas de aplicação da informática com utilidade para outras disciplinas do curso
Caracterização geral
Código
37047
Créditos
6
Professor responsável
José Fonseca
Horas
Semanais - 3
Totais - 36
Idioma de ensino
Inglês
Pré-requisitos
Não aplicável
Bibliografia
Python Crash Course: A Hands-On, Project-Based Introduction to Programming. Por Eric Matthes
Método de ensino
O método de ensino baseia-se na exposição dos temas nas aulas teóricas que são explorados através de exercícios práticos elaborados nas aulas práticas com acompanhamento direto do docente. Para além disso, são fornecidas aos alunos diversas listas de exercícios que estes devem tentar resolver de forma autónoma, de forma a estimular a sua capacidade de pesquisa e de resolução dos problemas. Este exercícios são discutidos nas aulas práticas sendo dado apoio aos alunos na sua resolução sempre que necessário. O projeto final da disciplina visa a consolidação dos conhecimentos adquiridos num projeto de média dimensão podendo-se considerar uma peça fundamental na aprendizagem dos alunos.
Método de avaliação
A avaliação é efetuada com base em duas componentes: a avaliação do projeto final da disciplina e no exame. O projeto permite avaliar a capacidade de desenvolvimento de software de cada aluno enquanto que o exame avalia fundamentalmente a retenção dos conceitos apresentados durante as aulas teóricas da disciplina e a facilidade de produção de algoritmos específicos de cada aluno. A combinação de ambas as vertentes permite obter uma avaliação completa sobre os conhecimentos e as competências desenvolvidas por cada aluno.
Conteúdo
Apresentação da Unidade Curricular - Programa da UC e método de avaliação.
Blockchain e Cryptocurrency. Ética e proteção de dados em aplicações informáticas.
Introdução à arquitetura de computadores. Arquiteturas de Hardware: Arquitetura de Von Neumann e Arquitetura de Harvard. Codificação binária. Códigos de caracteres ASCII e UTF8.
Blockchain e cryptocurrency. O que é a Blockchain e a Bitcoin. Assinaturas digitais. Encriptação assimétrica. Transações digitais.
Introdução à programação - algoritmos e descrição de algoritmos. O que é programar? O que é um algoritmo? Características básicas da linguagem Python e suas ferramentas.
Variáveis, tipos de dados, expressões e operadores. Input do utilizador.
Estruturas básicas de controlo de fluxo: If, While , For
Módulos e funções: programação estruturada em módulos e funções
Manipulação de strings em Python
Processamento de listas em Python. Programação baseada em listas de valores.
Introdução ao processamento de texto.