Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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
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
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.
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.
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.