Vous êtes sur la page 1sur 4

Universidade Federal de Minas Gerais Instituto de Ciências Exatas Departamento de Ciência da Computação (DCC/UFMG/ICEx)

Algoritmos e Estruturas de Dados I (DCC/003) – 2014/1

Informações Gerais

Professores: Daniel Fernandes Macedo (damacedo@dcc.ufmg.br) Jefersson Alex dos Santos (jefersson@dcc.ufmg.br) Dias / Horários: Terças e Quintas 13:00 – 14h40 Sala (aulas teóricas): Auditório 1, ICEx Sala (aulas práticas): Salas 1008, 1009 e 1010 do ICEx

Carga Horária: 60 horas-aula

Monitor:

a ser definido

Programa da Disciplina

Ementa

Desenvolvimento de Computadores e de linguagens de computação. Fases do desenvolvimento de programas. Desenvolvimento de programas em uma linguagem de alto nível: dados, comandos, ferramentas de modularização, metodologias do desenvolvimento.

Objetivo

O objetivo desta disciplina é facilitar que o aluno domine os conceitos básicos de programação utilizando o paradigma imperativo, além disso, facilitar que o aluno aprenda uma linguagem de programação, neste caso a linguagem C e C++, e aprenda ainda alguns algoritmos e estruturas de dados simples. Exemplos de conceitos básicos de programação: fluxo de controle, variável, constante, operador, expressão, comando de atribuição, comando iterativo, apontador, referência, arranjo e indexação, cadeia de caracteres, funções, arquivo, entrada e saída, estrutura de dados linear.

Os principais objetivos do curso são possibilitar ao aluno:

- O conhecimento dos princípios de estrutura e funcionamento do computador;

- O domínio de técnicas de resolução de problemas por computador (técnicas de desenvolvimento de algoritmo);

- A utilização do computador para a resolução de problemas computacionais.

Programa

Sistemas de Computação Modelo de computador simplificado Hardware: Memória – Unidade Central de Processamento - Unidades de Entrada e Saída - Periféricos Software: Sistemas Operacionais - Linguagens de Programação - Compiladores

Fases da Resolução de um Problema via Computador O Conceito de Algoritmo

O Desenvolvimento de um Algoritmo por Refinamentos Sucessivos

A Elaboração do Programa C

A Execução do Programa

A Depuração dos Erros

Estruturas Básicas Sintaxe de uma Linguagem

Formato de um Programa C

Comentários

Tipos de Dados

Variáveis

Constantes

Operadores e expressões Comando de Entrada e Saída

Comandos de Seleção Operadores Lógicos e Relacionais Expressão Lógica Comando Condicional Simples e Composto Comando Switch

Comandos de Repetição Comando Do-While Comando While Comando For

Variáveis Compostas Homogêneas - Vetores Conceitos de Vetor e Matriz Algoritmos com Vetores e Matrizes

Procedimentos e Funções

Modularização: Procedimentos e Funções Escopo de Variáveis Passagem de Parâmetros

Recursão

Variáveis Compostas Heterogêneas: Registros Conceito de Registro Atribuição de Valores para Registros Registros Compostos

Arquivos Uso de Arquivos Arquivos Binário Arquivos Texto

Avaliação de aprendizado

A avaliação do curso será feita por provas, trabalhos práticos e exercícios a serem

entregues uma semana após cada aula prática. A contabilização dos pontos será feita

da seguinte forma:

Caso o aluno obtenha pelo menos 50% da nota total nas provas, a nota final será a média aritmética da nota das provas e da notas das atividades práticas (trabalhos práticos e exercícios);

Caso o aluno obtenha menos de 50% da nota total na prova, a sua nota final será a nota obtida nas provas.

Para esquentar os motores, segue um pseudo-algoritmo para o cálculo da nota final:

Programa notafinal

Entrada nota_pratica, nota_teorica, listas_revisao Saida nota_final

Se nota_teorica < 50% então nota_final ß nota_teorica senão nota_final ß (nota_pratica + nota_teorica ) / 2 + listas_revisao fim se

Avaliação da parte teórica: Serão feitas quatro provas de 33 pontos, sendo que a última prova avalia toda a matéria do curso. Isto não significa que as três outras provas não virão a exigir conteúdo das provas anteriores, pois todo o conteúdo da disciplina está interligado. A nota das provas será contabilizada como a soma das três melhores notas. Não há prova substitutiva, como descartamos a pior nota.

Além das provas, uma semana antes de cada prova iremos divulgar para os alunos uma lista de exercícios. Ela irá abordar o assunto lecionado até então, e que será avaliado na prova. A correção desta lista valerá pontos extras para aqueles que tirarem pelo menos 50% dos pontos nas provas.

Avaliação da parte prática: A avaliação será feita por meio de listas de programas, a serem entregues até uma semana após a aula prática correspondente, bem como dois trabalhos práticos. As listas de programas serão mais simples, e irão focar no conteúdo de cada aula prática. Enquanto isso, os trabalhos práticos serão programas

a serem desenvolvidos que envolvem toda a matéria lecionada até o momento. Além disso, eles exigem mais raciocínio bem como uma modelagem do problema em um algoritmo.

As notas da parte prática estão divididas da seguinte forma:

Listas de programas: 40% da nota final da parte prática;

Trabalhos práticos: 20% % da nota final da parte prática, sendo 20% para cada trabalho.

Livro-texto: Iremos adotar o livro-texto a seguir como referência na disciplina. A leitura do livro-texto é fortemente recomendada, para auxiliar no aprendizado dos

conceitos e fixação do que foi aprendido. O livro-texto possui muitos exercícios a cada capítulo, que são didáticos e de complexidade progressiva. Eles são muito bons para a fixação do conteúdo.

- André Backes, Linguagem C: Completa e Descomplicada. Editora Campus/Elsevier.

Bibliografia complementar:

- Jaime E. dos Santos, Aprendendo a Programar Programando na Linguagem C.

- W. Celes, R. Cerqueira, J. L. Rangel, Introdução a Estruturas de Dados, 2004.

- Fábio Mokarzel & Nei Soma, Introdução à Ciência da Computação.

- Ziviani, N., Projeto de Algoritmos com Implementações em Pascal e C, 2ª Edição, Editora Thomson, 2004.

- Senne, Edson Luiz Fernandes. Primeiro Curso de Programação em C. 2. ed. Florianópolis: Editora Visual Books, 2006.