Você está na página 1de 4

UNIVERSIDADE FEDERAL DE LAVRAS

PLANO DE ENSINO
Dados do Componente Curricular
Código: GAC124 Nome: Introdução aos Algoritmos
Carga Horária Total: 102 Carga Horária Teórica: 0 Carga Horária Prática: 102
Dados da Oferta de Disciplina
Semestre: 2023/2 Turma: 14B Docente Principal: JOAQUIM QUINTEIRO UCHOA
Docente Responsável: JOAQUIM QUINTEIRO UCHOA
Atividades Avaliativas: Atividades das semanas 3 a 7: 11%; Prova 1: 20%; Atividades das semanas 10 a 13: 9%; Participação nas
dinâmicas: 5%; Prova 2: 20%; Projeto Prático: 20%; Atividades ANP - Semanas 1 a 7: 8%; Atividades ANP - Semanas 8 a 13: 7%;

Dados da Ementa
Ementa:

Funcionamento do computador: visão geral de arquitetura de um computador; visão geral de sistema numérico. Variáveis e
constantes. Estruturas sequencial, condicional e de repetição. Vetores e matrizes; Arquivos e registros. Algoritmos de busca.
Ordenação interna. Modularização. Recursividade. Ponteiros e alocação dinâmica.
Conteúdo Programático:

1 Introdução
1.1 Apresentação de alunos e professor
1.2 Apresentação do plano de curso
1.3 Metodologia de ensino-aprendizagem e avaliação
1.4 A disciplina no currículo e integração com outras disciplinas
1.5 A disciplina de formação do profissional e da pessoa

2 Funcionamento do computador
2.1 Visão geral da arquitetura de um computador
2.2 Partes de um sistema computacional
2.3 Sistemas numéricos
2.4 Introdução às práticas de Laboratório

3 Conceito de Algoritmo
3.1 Raciocínio para Resolução de Problemas
3.2 Lógica de Programação
3.3 Exercícios práticos

4 Construção de Algoritmos
4.1 Métodos para construção de algoritmos
4.2 Principais formas de representação de algoritmos (narrativa, pseudo-código e gráfica)
4.3 Exercícios práticos

5 Tipos básicos de dados


5.1 Tipos primitivos de dados
5.2 Constantes e variáveis
5.3 Variáveis: uso, nomenclatura, atribuição e armazenamento na memória
5.4 Exercícios práticos

6 Estruturas Condicionais
6.1 Estrutura condicional simples
6.2 Estrutura condicional composta e encadeada
6.3 Exercícios práticos

7 Estruturas de Repetição.
7.1 Comparação entre estruturas de repetição
7.2 Uso de contadores e acumuladores
7.3 Exercícios práticos

8 Variáveis Compostas Homogêneas


8.1 Variáveis Compostas Homogêneas Unidimensionais - Vetores
8.3 Variáveis Compostas Homogêneas Multidimensionais - Matrizes
8.2 Algoritmos básicos de busca em vetores: busca sequencial e binária
8.3. Exercícios práticos

9 Modularização
9.1 Funções
9.2 Procedimentos
9.3 Chamadas recursivas de funções
9.4 Variáveis Globais e Locais
9.5 Parâmetros
9.6 Mecanismos de Passagem de Parâmetros
9.7 Exercícios práticos

10 Algoritmos de Ordenação.
10.1 Introdução.
10.2 Selection Sort
10.3 Inserction Sort
10.4 Merge Sort.
10.5 Quick Sort.
10.6 Exemplos práticos

11 Variáveis Compostas Heterogêneas


11.1 Registros
11.2 Exercícios práticos
12 Arquivos
12.1 Entrada e Saída de Dados
12.2 Manipulação de Arquivos
12.3 Tipos de Arquivos Texto e Tipado (Binário).
12.4 Exercícios práticos

13. Ponteiros e Alocação Dinâmica


13.1 Endereçamento da memória
13.2 Variáveis estáticas e dinâmicas
13.3 Ponteiros
13.4 Alocação dinâmica de memória
13.5 Alocação dinâmica de vetores e matrizes
13.6 Exercícios práticos

14 Avaliação.
14.1 Avaliação do conteúdo do curso.
14.2 Avaliação da atuação do aluno.
14.3 Avaliação da atuação do professor.
14.4 Avaliação das condições materiais e físicas em que se desenvolve o curso.
Bibliografia Básica:

FARRER, Harry et al. Programação estruturada de computadores: algoritmos estruturados. 3. ed. Rio de Janeiro, RJ: LTC, c1999.
284 p. ISBN 9788521611806.

ORBELLONE, André Luiz Villar; EBERSPÄCHER, Henri Frederico. Lógica de programação: a construção de algoritmos e estrutura
de dados. 3. ed. São Paulo, SP: Pearson, c2005. 218 p. ISBN 9788576050247.

PIVA JÚNIOR, Dilermando et al. Algoritmos e programação de computadores. Rio de Janeiro, RJ: Elsevier, 2012. 504 p. ISBN
9788535250312.
Bibliografia Complementar:

CORMEN, Thomas H. et al. Algoritmos: teoria e prática. Rio de Janeiro, RJ: Campus, 2012. 926 p. ISBN 9788535236996.

DEITEL, Paul J.; DEITEL, Harvey M. C: como programar. 6. ed. São Paulo, SP: Pearson, c2011. 818 p. ISBN 9788576059349.

DEITEL, Harvey M.; DEITEL, Paul J. C++: como programar. 5. ed. São Paulo, SP: Pearson Prentice Hall, 2006. 1163 p. ISBN
9788576050568.

MANZANO, José Augusto N. G.; OLIVEIRA, Jayr Figueiredo de. Algoritmos: lógica para desenvolvimento de programação de
computadores. 29. ed. São Paulo, SP: Érica, Saraiva, 2019. 368 p. ISBN 9788536531458.

MEDINA, Marco; FERTIG, Cristina. Algoritmos e programação: teoria e prática. 2. ed. São Paulo, SP: Novatec, 2006. 384 p. ISBN
978857522073X.

PUGA, Sandra; RISSETTI, Gerson. Lógica de programação e estrutura de dados: com aplicações em Java. 3. ed. São Paulo:
Pearson, 2016. ISBN 9788543019147. E-book. Disponível em: https://plataforma.bvirtual.com.br/Leitor/Publicacao/41600/pdf/.
Acesso em: 15 fev. 2023.

SEDGEWICK, Robert. Algorithms in C++: parts 1-4. 3rd ed. Boston, MA: Addison-Wesley, 2004-2008. ISBN 0201350882.

Dados do Plano de Ensino


Versão: 1ª Data de Cadastro: 28/08/2023 - 15:12:21
Objetivos:

Ao término da disciplina o aluno deverá ser capaz de:


representar problemas diversos através de lógica de programação;
dominar conceitos básicos de lógica de programação e linguagens de programação para construção de algoritmos simples;
reconhecer o potencial de uso de algoritmos para resolução de problemas diversos do mundo cotidiano;
reconhecer e dominar os elementos básicos para o desenvolvimento de algoritmos, a saber: operações lógico-matemáticas e
atribuição; estruturas sequenciais, condicionais e de repetição; modularização e recursão; vetores, strings, matrizes e registros;
reconhecer e utilizar adequadamente arquivos textos e binários; ponteiros e alocação dinâmica de memória;
ser capaz de resolver problemas do mundo real utilizando algoritmos.

Metodologia de Ensino e Formas de Aferição da Frequência:

As aulas serão ministradas utilizando Sala de Aula Invertida e Aprendizagem Baseada em Projetos. As aulas serão utilizadas para
fixação de conceitos, realização de atividades diversas, resolução de dúvidas e desenvolvimento e apresentação de projeto prático.
Parte das atividades serão focadas no desenvolvimento de projetos. A disciplina possui ênfase na aplicação prática de algoritmos.
O aprendizado é concretizado através da resolução de listas de exercícios utilizando as ferramentas de aprendizagem: Dredd
(https://dredd.dac.ufla.br/) ou Campus Virtual (https://campusvirtual.ufla.br/presencial/). As avaliações serão baseadas em
participações, atividades realizadas em sala de aula, projeto prático e avaliações individuais.
O calendário acadêmico prevê 15 semanas letivas com atividades em sala de aula presencial e não presencial, e complementação
da carga horária, equivalente a 2 semanas letivas, totalizando 17 semanas, dar-se-á por meio de estudos autônomos e trabalhos
desvinculados das atividades semanais, e serão considerados como parte da avaliação da disciplina. Será realizada a aferição de
frequência em todas as aulas por meio de chamada oral ou uso de lista de presenças em momentos diferentes em cada aula. Nas
aulas práticas, o professor poderá requerer a realização de exercícios específicos para contabilização de frequência. Para garantir
a presença nas atividades ANP de uma dada semana, o discente deve atingir pelo menos 70% da pontuação disponível nessas
atividades.

Estratégias de Recuperação de Estudantes de Menor Rendimento:

Os estudantes com menor rendimento devem agendar atendimento com o(s) docente(s) para elaboração de estratégia individual
de recuperação, que pode envolver o desenvolvimento de atividades diversificadas, aplicadas em momentos presenciais. Essas
atividades não necessariamente implicam em mudança das notas anteriores.
Dependendo da necessidade, avaliações de Recuperação (AR) poderão ser ofertadas ao longo ou no final do semestre, de acordo
com regras, conteúdos e cronograma a ser informado pelos professores. Participação nas aulas, monitorias e esforço empenhado
para resolução de exercícios das listas propostas serão utilizados como critérios para participação nas avaliações de recuperação.

Cronograma de Atividades
Dia Data Descrição
1 28/08/2023 ANP: Visão geral de algoritmo, componentes de um algoritmo. Primeiro programa.
Variáveis.
2 29/08/2023 Apresentação da disciplina. Ferramentas de uso da disciplina (Dredd, Campus, IDE).
3 31/08/2023 Primeiros programas em C++. Compilação usando IDE e terminal. Exploração de
variáveis, estruturas condicionais e de repetição.
4 02/09/2023 ANP: Operadores de atribuição e aritméticos. Entrada e saída de dados.
5 05/09/2023 Des. de algoritmos com operações aritméticas. Entrada e saída (uso de arquivo texto).
Aula com Dinâmica Avaliativa.
6 09/09/2023 ANP: Estruturas condicionais
7 12/09/2023 Des. de algoritmos com estruturas condicionais e uso de operadores relacionais e lógicos.
Aula com Dinâmica Avaliativa.
8 14/09/2023 Desenvolvimento de algoritmos com estruturas condicionais com leitura de arquivo e/ou
operações matemáticas. [2pts]
9 16/09/2023 ANP: Estruturas de repetição.
10 19/09/2023 Desenvolvimento de algoritmos com estruturas de repetição simples e aninhadas. Aula
com Dinâmica Avaliativa.
11 21/09/2023 Desenvolvimento de algoritmos com estruturas de repetição simples e aninhadas.
Correção de código. [2pts]
12 23/09/2023 ANP: Modularização
13 26/09/2023 Desenvolvimento de algoritmos modularizados. Correção de código. Aula com Dinâmica
Avaliativa.
14 28/09/2023 Desenvolvimento de algoritmos modularizados. Correção de Código. [2pts]
15 30/09/2023 ANP: Vetores de tamanho fixo. Estrutura de repetição for. Busca sequencial em vetor.

16 03/10/2023 Desenvolvimento de algoritmos com vetores de tamanho fixo, utilizando constantes ou


declarações já com valores.
17 05/10/2023 Desenvolvimento de algoritmos utilizando vetores de tamanho fixo. Correção de código.
[3pts]
18 07/10/2023 ANP: Matrizes. Busca binária em Vetores e Recursão
19 17/10/2023 Desenvolvimento de algoritmos utilizando recursão e busca binária. Aula com Dinâmica
Avaliativa..
20 19/10/2023 Desenvolvimento de algoritmos utilizando matrizes, recursão e busca binária. Correção de
código. [2pts]
21 21/10/2023 ANP: Strings e uso do getline(). Revisão de conceitos para a primeira prova.
22 24/10/2023 Prova 1. [20pts]
23 26/10/2023 Montagem de equipes e definição do projeto prático. Uso de strings e getline() no projeto
prático.
24 28/10/2023 ANP: Registros.
25 31/10/2023 Desenvolvimento de algoritmos utilizando registros. Uso no projeto prático.
26 04/11/2023 ANP: Alocação Dinâmica. Alocação dinâmica de vetores e matrizes.
27 07/11/2023 Desenvolvimento de algoritmos utilizando ponteiros e alocação dinâmica de vetores.
Exercícios diversos.
28 09/11/2023 Desenvolvimento de algoritmos utilizando ponteiros e alocação dinâmica de vetores. [3pts]

29 11/11/2023 ANP: Redimensionamento de vetores.


30 12/11/2023 Estudo autônomo: Desenvolvimento da primeira etapa do projeto prático (checkpoint com
entrega parcial).
31 14/11/2023 Desenvolvimento de algoritmos utilizando ponteiros e alocação dinâmica de vetores. Uso
do recurso no projeto prático.
32 16/11/2023 Desenvolvimento de algoritmos com redimensionamento de vetores. [3pts]
33 18/11/2023 ANP: Ordenação de vetores: métodos básicos (insertion e selection).
34 21/11/2023 Desenvolvimento de algoritmos utilizando insertion sort e selection sort. Aula com
Dinâmica Avaliativa.
35 23/11/2023 Desenvolvimento de algoritmos utilizando insertion e selection sort. [3pts]
36 25/11/2023 ANP: Quicksort e mergesort
37 28/11/2023 Desenvolvimento de algoritmos utilizando Shell sort e quick sort. Aula com Dinâmica
Avaliativa.
38 30/11/2023 Desenvolvimento de algoritmos utilizando merge sort. Aula com Dinâmica Avaliativa.
39 02/12/2023 ANP: Revisão de conceitos para a segunda prova.
40 05/12/2023 Prova 2. [20pts]
41 07/12/2023 Finalização do projeto prático.
42 09/12/2023 ANP: Orientações para apresentação e recomendações finais.
43 10/12/2023 Estudos autônomos: Entrega da versão final do projeto prático (manipulação de arquivos
binários e ordenação eficiente).
44 12/12/2023 Apresentação do projeto prático
45 14/12/2023 Apresentação do projeto prático
46 18/12/2023 Semana para aplicação de atividade de recuperação

Você também pode gostar