Métodos Computacionais [if264]

Semestre Letivo 2011.1

Local: CTG, quartas (13:00-15:00) 1º andar – sala 111, e sextas (13:00-15:00), Laboratório de Informática

ATENÇÃO

Esta comunidade contém apenas notas de aulas superficiais. Estas notas não devem ser utilizadas como livro-texto. Um bom desempenho na disciplina depende muito do estudo mais profundo dos livros e, principalmente, da prática no computador

Objetivos

Ensinar conceitos mais avançados de estruturas de dados, utilizando a linguagem C como apoio. Além de serem abordadas estruturas como listas, pilhas,filas e árvores, algumas técnicas de manipulação destas estruturas como ordenação e busca são discutidas.

Bibliografia sugerida:

Introdução a Estruturas de Dados – com técnicas de programação em C. W. Celes, R. Cerqueira, J.L. Rangel. Ed. Campus – ISBN 85-352-1228-0

Web:

Comunidade:

Software:

Para o aprendizado do conteúdo da disciplina, é fundamental que os alunos pratiquem programação de computadores. Para tanto, é necessário instalar um ambiente de desenvolvimento com um compilador C. Os alunos podem usar qualquer compilador C que siga o padrão ANSI. Esta página disponibiliza 2 ambientes de desenvolvimento distintos:

Usuários de Mac e Linux

Os alunos que usam Mac e Linux podem usar o compilador gcc na linha de comando. No Mac, o compilador gcc é instalado com o pacote Xcode que cem com a distribuição de instalação do Mac. Pode-se usar o compilador gcc via linha de comando através de um Terminal (console). No Mac, existe ainda a possibilidade do uso do ambiente integrado Xcode (similar ao Microsoft Visual Studio no Windows).

No Linux, o compilador gcc já vem instalado. É possível acessá-lo via linha de comando num terminal.

_* Material gentilmente cedido pelo Professor Adriano Sarmento

Provas, Simulados e Avaliações Anteriores

Projetos

  • Proposta de projetos 2010.2 [link]
  • Proposta de projetos 2011.1 [link]
  • Proposta de projetos 2011.2 [link]

Avaliação

  • Primeiro Exercício Escolar: 6.0 pts
  • 4 Mini-Provas: totalizando: 4.0 pts
  • Segundo Exercício Escolar: 5.0 pts
  • Projeto Final: 5.0 pts
  • Acompanhamento das notas 2011.2 [link]

Mini-Provas – Programação

Atenção: A mini prova deve ser enviada em um arquivo .rar(.zip), onde os arquivos internos devem estar em formato .c e o nome deve seguir a regra LxQn exemplo: L1Q1,L1Q2,L1Q3…L1Q10.

  1. Mini-prova 01 – aulas 01 a 07 – [link] – release: 01/09, data de entrega: 16/09, 12:00
  2. Mini-prova 02 – aulas 09 a 13 – [link] – release: 19/09, data de entrega: 01/10, 23:59
  3. Mini-prova 03 – aulas 15 a 19 – [link] – release: 03/10, data de entrega: 21/10, 23:59
  4. Mini-prova 04 – aulas 20 a 24 – [link] – release: 19/10, data de entrega: 14/11, 23:59
  • Os alunos cujos nomes iniciam com as letras compreendidas entre** A – E devem mandar via email a resolução dos exercícios para o Monitor Victor Casé (victor.case [at] hotmail [dot] com)**
  • Os alunos cujos nomes iniciam com as letras compreendidas entre F – Pedro Henrique Anjos **devem mandar via email a resolução dos exercícios para a Monitora Bárbara Souza (b.barbaratallyta [at] gmail [dot] com)**
  • Os alunos cujos nomes iniciam com as letras compreendidas entre Pedro Silva – Y **devem mandar via email a resolução dos exercícios para o Monitor Álvaro Arthur (aacsmcosta [at] hotmail [dot] com)**

Planilha de notas das atividades práticas – 2011.2 [link]

Plano de aulas

[01] 10/08 [sala de aula]

Discutir conceitos básicos de computação, ciclo de desenvolvimento de programas,características da linguagem C, estruturas da linguagem C, tipos de dados, conceito de declaração,variáveis locais e globais (transparências).

Discutir postura durante o curso: importância da disciplina, cronograma pessoal e carga de estudo necessária

Comprar livro texto do curso.

Pode baixar alguma IDE para programar em C.

[02] 12/08 [sala de aula]

Discutir operadores de atribuição, aritméticos, relacionais, lógicos, especiais da linguagem C. Discutir conceito de expressão e avaliação do mesmo em C. Explorar algumas funções de entrada e saída (transparências)

[03] 17/08 [sala de aula]

Discutir comandos de controle em C. Discutir estruturas de repetição, condicionais e de desvio (transparências)

[04] 19/08 [laboratório]

Aula prática. Apresentando os ambientes Dev C++ e/ou CodeBlocks. Escrever alguns programas utilizando os conceitos básicos vistos em C. (veja exercício)

Sugestão de Exercícios de revisão:

Lista de exercício aplicada em sala e o gabarito [link]

[05] 24/08 [sala de aula]

Discutir funções e ponteiros. Discutir estrutura de funções, pilha de execução, ponteiros, passagem de parâmetro por valor versus passagem de parâmetro por referência, macros. (veja as transparências)

Fazer os exercícios com data de entrega para 31/08/2011 (if264 – Aula 05 – Exercício sobre função e ponteiros).

Os alunos cujos nomes iniciam com as letras compreendidas entre A – H devem mandar via email a resolução dos exercícios para o Monitor ().

Os alunos cujos nomes iniciam com as letras compreendidas entre I – Z devem mandar via email para o Monitor Victor (victor.case@hotmail.com)

[06] 26/08 [laboratório]

Escrever alguns programas utilizando funções e ponteiros. (veja o exercício 2011.2)

Exercício 2011.1 – gabarito

[07] 31/08 [sala de aula]

Discutir uso de vetores e alocação dinâmica de vetores . Discutir matrizes dinâmicas. Discutir representação de matrizes dinâmicas, alocação estática versus alocação dinâmica. (veja as transparências)

Fazer os exercícios com data de entrega para 09/09/2011 (if264 – Aula 06 – Exercícios sobre vetores e matrizes dinâmicas).

Os alunos cujos nomes iniciam com as letras compreendidas entre A – H devem mandar via email a resolução dos exercícios para o Monitor Danilo (daniloaugusto_mb13@hotmail.com).

Os alunos cujos nomes iniciam com as letras compreendidas entre I – Z devem mandar via email para o Monitor Victor (victor.case@hotmail.com)

[08] 02/09 [laboratório]

Aula prática. Exercícios sobre Matrizes. (veja o exercício 2011.2)

Exercício 2011.1 – gabarito

[09] 09/09 [sala de aula]

Discutir representação de cadeia de caracteres, manipulação de cadeia de caracteres e principais funções. (veja as transparências)

10 09/09/2011 [laboratório]

Aula prática. Exercícios sobre manipulação de cadeia de caracteres (veja os exercícios – gabarito)

11 14/09 [sala de aula]

Discutir tipos estruturados. Discutir importância, sintaxe, manipulação de tipos estruturados, passagem de tipos estruturados para funções e tipos enumerados. (veja as transparências)

Fazer os exercícios com data de entrega para 21/09/2011

Os alunos cujos nomes iniciam com as letras compreendidas entre A – H devem mandar via email a resolução dos exercícios para o Monitor ().

Os alunos cujos nomes iniciam com as letras compreendidas entre I – Z devem mandar via email para o Monitor Victor (victor.case@hotmail.com)

12 16/09 [laboratório]

Exercícios prático Jogo BlackJackResolução do jogo de sorteFicha extra [link]
Exercício de 2011.2 – lista de jogosresolução da lista

13 21/09 [sala de aula]

Discutir conceito de tipos abstratos de dados. Discutir vantagens, apresentar exemplos, e implementar um TAD. (veja as transparências)

14 23/09 [laboratório]

Aula prática. Exercício sobre Tipos Abstratos de Dados (veja o exercício – resolução)

15 28/09 [sala de aula]

Discutir conceito de listas encadeadas. Discutir representação de listas simplesmente encadeadas, manipulação, operações de inclusão, remoção e busca. (veja as transparências)

Veja os exemplos

16 30/09 [laboratório]

Aula prática. Exercícios sobre lista simplesmente encadeadas. (veja o exercício)

17 05/10 [sala de aula]

Aula de revisão para o Exercício Escolar

18 07/10 [laboratório]

Aula prática de revisão para o Exercício Escolar

19 14/10 [sala de aula]

Primeiro exercício escolar (Até lista simplesmente encadeada).

[–] 19/10 [sala de aula]

Não teremos aula, SEMANA DE PROVAS DA ÁREA 2

20 21/10 [laboratório]

Aula prática. Auxílio a resolução das Mini-provas

21 26/10 [sala de aula]

Discutir outros tipos de listas encadeadas. Apresentar listas duplamente encadeadas, circulares, duplamente circulares e listas de tipos estruturados. Mostrar a manipulação e operações destes tipos de lista (veja as transparências)

Veja alguns exemplos

Fazer o exercício [link] com data de entrega para 26/10/2011.

Os alunos cujos nomes iniciam com as letras compreendidas entre A – H devem mandar via email a resolução dos exercícios para o Monitor Danilo (daniloaugusto_mb13@hotmail.com).

Os alunos cujos nomes iniciam com as letras compreendidas entre I – Z devem mandar via email para o Monitor Victor (victor.case@hotmail.com)

[–] 28/10 [laboratório]

Não teremos aula – Dia do Servidor Público – transferido para dia 14/11

Para casa: Aula prática. Exercícios sobre lista duplamente encadeadas. (veja o exercíciogabarito)

22 04/11 [sala de aula]

Discutir conceitos de Pilha. Explorar diferentes implementações, operações e exemplos de aplicações (veja as transparências).

23 09/11 [sala de aula]

Discutir conceitos de Fila. Explorar diferentes implementações, operações e exemplos de aplicações (veja as transparências).

Fazer os exercícios com data de entrega para 24/11/2010.

Os alunos cujos nomes iniciam com as letras compreendidas entre A – H devem mandar via email a resolução dos exercícios para o Monitor Danilo (daniloaugusto_mb13@hotmail.com).

Os alunos cujos nomes iniciam com as letras compreendidas entre I – Z devem mandar via email para o Monitor Victor (victor.case@hotmail.com)

24 11/11/2011 [sala de aula]

Aula prática. Exercícios sobre pilha. (veja o exercício – gabarito)

26 10/06/2011 [laboratório]

Aula prática. Exercícios sobre fila (veja o exercício).

25 16/11 [sala de aula]

Discutir arquivos em C. Discutir diferenças entre arquivos texto e binários. Apresentação das APIs de manipulação de arquivos em C (veja as transparências).

Exercício sobre arquivos (veja o exercíciogabarito)

Execução do projeto com apoio dos monitores

26 18/11 [laboratório]

Execução do projeto com apoio dos monitores

27 23/11 [laboratório]

Execução do projeto com apoio dos monitores

28 25/11 [sala de aula]

Execução do projeto com apoio dos monitores

29 30/11 [sala de aula]

Segundo Exercício Escolar

30 02/12 [sala de aula]

Apresentação dos projetos

31 14/12 [sala de aula, 122, 14:00 às 15:45]

Segunda chamada / Exame final

Assunto: Todos os tópicos abordados no semestre.

32 16/12 [sala de aula]

Entrega dos resultados