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:
- Tutorial Microsoft Visual Studio 2005
- Erros mais comuns na Programação em C [Prof. Ortega, UNICAMP]
- Apostila Estrutura de Dados - Waldemar Celes e José Lucas Rangel
- Curso de Linguagem C - UFMG Curso de Linguagem C [UFMG]
- Livro Virtual de Estruturas de Dados do prof. Prof. Dr. Roberto Ferrari - UFSCar
- Como funciona a programação em C
Comunidade:
- Homepage: http://groups.google.com/group/if264-2011-2
- Group email: if264-2011-2 at googlegroups dot com
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.
- Mini-prova 01 – aulas 01 a 07 – [link] – release: 01/09, data de entrega: 16/09, 12:00
- Mini-prova 02 – aulas 09 a 13 – [link] – release: 19/09, data de entrega: 01/10, 23:59
- Mini-prova 03 – aulas 15 a 19 – [link] – release: 03/10, data de entrega: 21/10, 23:59
- 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)
[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)
[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 BlackJack | Resolução do jogo de sorte | Ficha extra [link] |
Exercício de 2011.2 – lista de jogos | resoluçã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ício – gabarito)
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ício – gabarito)
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