Roteiro de estudo

Estudo da 14ª Semana (05/05 - 11/05)

Nesta semana aprenderemos sobre os Tipos Abstratos de Dados (TADs), aprenderemos sobre Estruturas de Dados (EDs), a diferença entre TADs e EDs, conheceremos os principais TADs da computação e aprenderemos a criar o TAD Pilha.


Estudo da 13ª Semana (28/04 - 04/05)

Nesta semana não haverá aula na segunda-feira e, na terça-feira, faremos nossa AVALIAÇÃO BIMESTRAL: AV-1. O conteúdo da AV1 corresponde a toda a matéria das semanas 1 a 12, ou seja, tudo o que foi visto no bimestre. Obs.:

  • A prova é totalmente objetiva, com 60 questões. A nota sai na hora.
  • Venha bem preparado! A prova é extensa e não é fácil!
  • Siga todas as normas de integridade acadêmica da disciplina pois alunos flagrados com qualquer tipo de cola terão a AV1 zerada imediatamente e serão encaminhados para a coordenação para as medidas disciplinares conforme o regimento da UVV.
  • O professor determinará o assento de cada aluno.

Estudo da 12ª Semana (21/04 - 27/04)

Nesta semana continuaremos nosso estudo sobre algoritmos de ordenação e análise da complexidade de algoritmos.


Estudo da 11ª Semana (14/04 - 20/04)

Nesta semana aprenderemos sobre os principais algoritmos de ordenação, desde os métodos simples e “lentos” (selection sort, insertion sort, bubble sort) até os métodos mais sofisticados (merge sort, quick sort). Aproveitaremos o estudo dos métodos de ordenação para discutirmos sobre complexidade de algoritmos e veremos as principais notações assintóticas.


Estudo da 10ª Semana (07/04 - 13/04)

Nesta semana aprenderemos sobre uma importante classe de algoritmos recursivos conhecidos como “algoritmos de backtracking”, que são algoritmos que nos permitem encontrar a solução para problemas que dependem de uma seqüência de pontos de decisão nos quais, a cada decisão, você pode se aproximar ou se afastar da solução. Se percebermos que tomamos uma decisão errada, temos que retroceder (backtrack) e escolher outros caminhos. Estudaremos esses algoritmos através da programação da saída de um labirinto! Depois veremos como os algoritmos de backtracking podem se aplicar à maioria dos jogos de estratégia entre dois jogadores estudando como implementar o Jogo de Nim. E, por último, faremos a generalização dos algoritmos de backtracking para jogos entre dois jogadores através de um algoritmo especial chamado de “minimax”.


Estudo da 9ª Semana (31/03 - 06/04)

Nesta semana continuaremos nosso estudo sobre recursividade discutindo alguns procedimentos recursivos mais avançados. Analisaremos o exemplo clássico de aplicação de recursividade, o problema da Torre de Hanoi; também aprenderemos o que fazer quando o subproblema recursivo não tem a mesma forma do problema original; e, por último, estudaremos algumas aplicações gráficas da recursão reproduzindo quadros no estilo de Piet Mondrian e criando o fractal de Koch.


Estudo da 8ª Semana (24/03 - 30/03)

Nesta semana começaremos nosso estudo sobre recursividade, um dos conceitos mais importantes da computação: é uma estratégia de resolver grandes problemas quebrando-os em problemas menores da mesma forma.


Estudo da 7ª Semana (17/03 - 23/03)

Nesta semana continuaremos nosso estudo sobre Bibliotecas e Interfaces, com implementação na linguagem C. Também estaremos focados a utilizar (ler e escrever) arquivos de texto.

  • Leituras obrigatórias:
    • As mesmas da semana 6. Continue lendo e estudando!
  • Leituras (altamente!) recomendadas:
    • As mesmas da semana 6. Continue lendo e estudando!
  • Códigos:
    • Os mesmos da semana 6. Continue estudando!
  • Exercícios:
    • Os mesmos da semana 6. Continue fazendo a lista de exercícios teóricos (manuscritos em papel almaço e fazendo a lista de exercícios de programação).

Estudo da 6ª Semana (10/03 - 16/03)

Nesta semana estudaremos alguns conceitos importantíssimos na computação: bibliotecas e interfaces. Aprenderemos a importância de interfaces e a como projetar boas interfaces. Também entenderemos em maiores detalhes como as strings são representadas no computador e aprenderemos sobre os modelos de abstração fornecidos por diferentes interfaces. Também aprenderemos a ler e escrever em arquivos de dados.

  • Leituras obrigatórias:
    • Programming Abstractions in C - “Chapter 3: Libraries and Interfaces”. Ler o capítulo todo, analisando os exemplos e códigos.
    • Notas de aula do Capítulo 3. Este é o material utilizado em sala de aula.
  • Leituras (altamente!) recomendadas:
    • (em breve)
  • Códigos:
  • Exercícios:
    • Lista de Exercícios n.º 3. As questões discursivas devem ser respondidas de forma manuscrita em papel almaço. As questões de programação serão entregues no Autolab (verifique a data de entrega no calendário de sua turma). Para fazer alguns dos exercícios, você pode usar os arquivos abaixo:
      • apologia_sem_acentos.txt: um pequeno trecho do livro “Apologia de Sócrates”, de Platão, sem acentos ou caracteres especiais. Aproveite e leia o texto original escrito por Platão, em tradução de Maria Lacerda de Souza.
      • br-sem-acentos.txt: todas as palavras do português brasileiro, sem acentos ou caracteres especiais, em formato ASCII (lista produzida por Paulo Feofiloff)
      • br-utf8.txt: todas as palavras do português brasileiro, COM acentos e caracteres especiais, em formato UTF-8 (lista produzida por Paulo Feofiloff). Obs.: salve o arquivo em seu computador, o navegador não conseguirá compreender corretamente os acentos e caracteres especiais.
    • Lista de Exercícios n.º 3 (Extra). Este é um exercício de programação OPCIONAL um pouco mais avançado. Você não é obrigado a fazer este exercício mas saiba que este exercício será muito bom para que você aprenda e sedimente os conceitos de estruturas de dados.

Estudo da 5ª Semana (03/03 - 09/03)

Em virtude do Feriado de Carnaval não haverá aula presencial nesta semana. Você deve continuar a fazer a Lista de Exercícios n.º 2. Note que o prazo de entrega foi alterado:

  • Exercícios de Programação: 09/03/2025 23:59h, no Autolab
  • Respostas manuscritas: 10/03/2025 07:15h, durante a aula

Estudo da 4ª Semana (24/02 - 02/03)

Nesta semana continuaremos o estudo sobre tipos de dados em C, em especial os tipos enumeração, ponteiros, arrays e registros.

  • Leituras obrigatórias:
    • As mesmas da semana 3, continue lendo!
  • Leituras recomendadas:
    • As mesmas da semana 3, continue lendo!
  • Exercícios:
    • Os mesmos da semana 3, continue estudante!

Estudo da 3ª Semana (17/02 - 23/02)

Nesta semana iniciaremos nosso estudo aprofundado sobre tipos de dados em C, em especial os tipos enumeração, ponteiros, arrays e registros. Aprenderemos a relação especial entre ponteiros e arrays, e começaremos a trabalhar com alocação dinâmica de memória. Atenção:

  • Para o estudo deste conteúdo você deve fazer um esforço ESTUDAR AS LEITURAS RECOMENTADAS. Não fique apenas com as leituras obrigatórias, que são o mínimo para o entendimento inicial do assunto. Se você quiser entender enumerações, arrays, ponteiros e registros, você PRECISA se esforçar nas leituras recomendadas adicionais.
  • É absolutamente fundamental que você FAÇA TODOS OS EXERCÍCIOS DE PROGRAMAÇÃO desta semana. Você precisa dominar esse conteúdo para poder entender aspectos mais avançados das estruturas de dados e algoritmos da computação.

Estudo da 2ª Semana (10/02 - 16/02)

Esta semana nos dedicaremos a fazer uma rápida revisão sobre os aspectos mais importantes da linguagem C. Em especial, veremos: linguagens de alto e baixo nível, processo de compilação, a estrutura de um programa em C, variáveis, valores e tipos, expressões e regras de precedência e associatividade, sentenças de comando e sentenças de controle, e subprogramas (funções, procedimentos e predicados). Você fará a primeira listagem de exercícios, contendo questões teóricas e questões de programação.

  • Leituras obrigatórias:
    • Programming Abstractions in C - “Chapter 1: An Overview of C”. Ler o capítulo todo, analisando os exemplos e códigos.
    • Notas de aula do Capítulo 1. Este é o material utilizado em sala de aula.
    • Como documentar um programa: aprenda a documentar corretamente um programa em C, explicando o que um subprograma faz, não como ele faz. Também disponível em PDF.
  • Leituras recomendadas:
    • C Programming (PDF): este arquivo é o PDF do “Anexo C” do livro Digital Design and Computer Architecture (também disponível online). Estude este material de você precisa de uma revisão mais detalhada da linguagem C.
  • Códigos:
    • Códigos do Capítulo 1 (ZIP). Estude os códigos de exemplo deste capítulo. Em especial note como o código está formatado e documentado. Aprenda também como a Makefile está configurada para fazer o build do programa.
  • Exercícios:
    • Lista de Exercícios n.º 1. As questões discursivas devem ser respondidas de forma manuscrita em papel almaço. As questões de programação serão entregues no Autolab (o professor explicará posteriormente como fazer essa entrega).

Estudo da 1ª Semana (03/02 - 09/02)

Nesta semana faremos apenas uma avaliação diagnóstica inicial e a aula inaugural da disciplina.

Para se preparar para a próxima semana, quando começaremos o conteúdo, você deve aprender a utilizar Makefiles para automatizar a compilação de programas em C. Assista aos vídeos obrigatórios listados. Você também deve ler o material obrigatório listado. O objetivo desse estudo inicial é você aprenda, por conta própria a utilizar Makefiles (e o comando make) para automatizar a compilação de programas. Você não precisa aprender as funcionalidades mais avançadas e difíceis agora, mas você deve ser capaz de criar e utilizar Makefiles para compilar, recompilar e construir seus programas em C.

Também há algumas leituras não obrigatórias, mas recomendadas, a respeito de compiladores, montadores e outros tópicos importantes. Além disso, se você não tem facilidade com o uso de Linux, também há um tutorial recomendado para iniciantes em UNIX/Linux (e uma folha de consulta rápida de comandos).


Notas:


Última modificação desta página: 2025-05-06 18:46:00 -0300;
Último build deste site: 2025-05-07 21:31:05 -0300.