Professor: Lehilton Pedrosa
Monitores: Italos, Welverton, Andreis, Rafael, Rodrigo
29/07/2020 A disciplina foi finalizada e foi adicionado um tutorial sobre linguagem C para vocês se prepararem para MC202. Bom descanso e bom trabalho. Até!
16/04/2020 Listas de exercícios de fixação serão publicados nessa página.
19/03/2020 As atividades retornarão a partir de segunda-feira de maneira não presencial. Por favor, leiam o programa da disciplina atualizado.
05/03/2020 A Secretaria de Vivência fará uma apresentação. Depois algumas entidades estudantis serão introduzidas com a organização do centro acadêmico.
04/03/2020 Página da disciplina no ar.
Vamos conversar um pouquinho sobre como os computadores modernos funcionam. Depois vamos discutir sobre o que se trata de fato em Computação, entender que tipo de problemas os computadores resolvem e o que são esses animais chamados algoritmos.
Agora que já sabemos o que é um algoritmo, temos que descobrir como escrever um algoritmo. Queremos descobrir quais são os blocos fundamentais que os compõem.
Enquanto os algoritmos são úteis por si só, queremos executá-lo em um computador. Como um computador não entende português, vamos temos que escrever nossos algoritmos em uma linguagem de programação.
Agora que já conhecemos os principais conceitos de algoritmos e linguagem de programação, vamos materializá-los em Python. Veremos tipos básicos de variáveis e a sintaxe de expressões aritméticas. Depois, veremos como escrever um programa com entrada e saída. Finalmente, vamos criar programas com uma estrutura condicional.
Um dos motivos para se utilizar computadores é que queremos tratar grandes quantidades de dados. Além disso, queremos escrever algoritmos genéricos que atuem da mesma maneira em cada elemento desses conjuntos de dados. Para isso, utilizamos as chamadas listas em Python.
À medida em que os programas ficam mais complicados, mais difícil fica controlar e entender o conjunto das instruções. Por isso, é importante criar abstrações sobre um conjunto de instruções que tenham determinado significado; a essa abstração damos o nome de função.
Vamos mergulhar um pouco mais fundo ao escrever algoritmos baseados em comandos iterativos.
Por enquanto, aprendemos apenas a manipular listas. Para muitas aplicações, essas listas contém apenas elementos escalares, como números ou strings, mas elas podem ter estruturas mais elaboradas. Vamos aprender a manipular matrizes e aproveitar para falar um pouco de arquivos.
Até agora guardamos dados como variáveis ou listas de variáveis simples. Vamos aprender novos tipos de coleção de dados e estudar como representar dados na memória.
Muitas vezes não é suficiente escrever e implementar um algoritmo. Para de fato resolver um problema, precisamos estimar a quantidade de recursos que nossos algoritmos gastam e garantir que eles executam em um tempo razoável.
Até agora vimos algoritmos iterativos, isso é, tudo que os eles fazem é executar um conjunto de instruções até que uma condição seja satisfeita. Aprenderemos uma nova maneira de pensar e escrever algoritmos. Vamos descobrir que podemos escrever algoritmos ora muito mais simples, ora muito mais sofisticados.
Você deve aprender a utilizar um terminal de comandos, realizar operações básicas no controle de versão Git e submeter uma tarefa na disciplina.
Você deve definir um problema computacional e descrever um algoritmo para resolver esse problema.
Você deve descrever um algoritmo para resolver um problema dado utilizando diferentes estruturas de controle.
Você deve ler uma sequência de instruções para um problema dado e analisá-la, à luz do seu conhecimento de algoritmos.
Construa um primeiro programa em Python utilizando estruturas condicionais.
Você deve utilizar instruções em Python para manipular listas.
Você deve utilizar instruções em Python para percorrer listas e acumular seus valores.
Você deve deve definir suas próprias funções agregadoras para listas.
Você deve deve determinar se umx estudante está apovadx na disciplina. Para isso, deverá criar um programa usando funções organizadamente.
Você deve manipular matrizes para tratar imagens binárias e deverá manipular arquivos para armazená-las.
Você deve utilizar tuplas e dicionários para extrair medidas de um texto e implementar uma função de auto complemento.
Você deve criar um aplicativo de agenda em modo texto. Para isso, deverá determinar como representar uma coleção de dados dinâmica na memório usando listas e memória.
Para resolver os problemas dessa tarefa em tempo aceitável, você precisará pensar em algoritmos eficientes.
Não há como aprender recursão sem praticar bastante.
Para entender recursão você deve aprender recursão.
Links recomendados para a disciplina:
Introdução à linguagem de programação C
Sempre que tiver dúvida, não deixe de ler e buscar na documentação
Programas recomendados para a disciplina
Usando o controle de versões Git
Alguns links úteis, mas cujo uso não é recomendado para a disciplina: