|
UNIVERSIDADE FEDERAL DE UBERLÂNDIA Av. João Naves de Ávila, 2121, Bloco 3N - Bairro Santa Mônica, Uberlândia-MG, CEP 38400-902 |
|
Plano de Ensino
IDENTIFICAÇÃO
Componente Curricular: |
|||||||||
Unidade Ofertante: |
|||||||||
Código: |
Período/Série: |
Turma: |
|||||||
Carga Horária: |
Natureza: |
||||||||
Teórica: |
Prática: |
Total: |
Obrigatória: |
Optativa: |
|||||
Professor(A): |
Ano/Semestre: |
||||||||
Observações: |
EMENTA
Introdução à linguagens de programação; Entrada e Saída padrão; Tipos de dados elementares; Uso de estrutura de dados; Strings, Ordenação; Aritmética e Álgebra; Combinatória; Teoria dos Números; Backtracking; Algoritmos em Grafos; Programação Dinâmica; Grids; Geometria Computacional.
JUSTIFICATIVA
Compreender os conceitos e técnicas envolvidos na resolução de problemas de característica algorítmica, passíveis de implementação em computadores.
OBJETIVO
Objetivo Geral: |
|
Objetivos Específicos: |
|
PROGRAMA
Introdução à linguagens de programação
Maratonas de Programação – introdução
Sistemas de julgamento
Linguagens de programação utilizadas nas maratonas de programação
Entrada e Saída padrão, tipos de dados elementares, uso de estrutura de dados;
Pilha
Fila
Dicionário
Fila com prioridade
Conjunto
Uso de bibliotecas de estruturas de dados das linguagens utilizadas nas maratonas de programação.
Strings
Representação e manipulação de Strings
Busca de padrões em Strings
Ordenação
Métodos de ordenação em memória (iterativos e recursivos)
Métodos de ordenação em disco
Aritmética e Álgebra
Inteiros e aritmética de alta precisão
Bases numéricas e conversão
Manipulação de números reais
Frações e decimais
Polinômios
Logaritmos
Combinatória
Técnicas de contagem
Relações de recorrência
Coeficientes binomiais
Sequências de contagem
Recursão e indução
Teoria dos Números
Encontrar e contar primos
Divisibilidade
Aritmética modular
Congruências
Backtracking
Busca exaustiva
Construção de subconjuntos e permutações
Busca heurística
Grafos
Tipos de Grafos
Implementação de Grafos
Como percorrer Grafos
Algoritmos em Grafos
Programação Dinâmica
Grids
Geometria Computacional
METODOLOGIA
Distribuição das atividades:
Carga-horária de atividades assíncronas (videoaulas, listas de exercícios): 9 horas-aulas
Moodle:
Todas as informações relativas à disciplina estarão no Moodle.
Página da disciplina: https://www.moodle.ufu.br/course/view.php?id=11706
Os alunos matriculados receberão a senha de acesso à disciplina no Moodle por email na primeira semana de aula.
Cronograma:
Serão realizadas aulas presenciais expositivas com uso de projetor, quadro negro, e demais materiais, conforme o cronograma apresentado na tabela a seguir.
Semana |
Conteúdo |
1 |
Introdução (sobre o curso) |
2 |
C++ e STL |
3 |
Vectors e iterators |
4 |
Strings |
5 |
Torneio 1 |
6 |
Filas |
7 |
Pilhas |
8 |
Deque |
9 |
Lists |
10 |
Torneio 2 |
11 |
Sets |
12 |
Dicionários |
13 |
Filas de prioridade |
14 |
Ordenação |
15 |
Torneio 3 |
Atendimento aos alunos:
O atendimento aos alunos será realizado uma vez por semana na sala do professor na modalidade presencial, ou através do Fórum de Dúvidas no Moodle.
AVALIAÇÃO
Sistema de Avaliação
A cada aula será realiazado 1 torneio de programação competitiva na plataforma https://www.beecrowd.com.br/
A participação em cada torneio valerá 4 pontos na nota final (NF).
Será feito um ranking dos alunos a partir do número de problemas resolvidos (nos torneios) ao longo do curso.
A NF de cada aluno será acrescida da seguinte pontuação a partir de seu ranking:
ranking |
pontos |
---|---|
1º |
40 |
2º |
39 |
3º |
38 |
4º ao 6º |
35 |
7º ao 9º |
30 |
10º ao 12º |
25 |
13º ao 15º |
20 |
16º ao 18º |
15 |
19º ao 21º |
10 |
22º ao 24º |
5 |
25º ao 27º |
4 |
28º ao 30º |
3 |
31º ao 33º |
2 |
34º ao 36º |
1 |
Avaliação de recuperação:
Será oferecida uma avaliação de recuperação para os discentes que não obtiverem o rendimento mínimo para aprovação e com frequência mínima de 75%.
A avaliação de recuperação será composta por uma prova que valerá 10 pontos.
A nota da recuperação será adicionada à NF obtida pelo estudante.
O estudante que realizar a atividade de recuperação e for aprovado terá limitada a sua nota final em 60 pontos.
BIBLIOGRAFIA
Básica
CORMEN, Thomas H.; RIVEST, Ronald l.; LEISERSON, Charles E. e STEIN, Cliford. Algoritmos: teoria e prática. Rio de Janeiro: Campus, 2012. 926 p., il. Inclui bibliografia e índice. ISBN 9788535236996 (broch.).
HALIM, S. Competitive Programming. 3a ed. [S.I.]: Lulu, 2013.
SKIENA, S. S.; REVILLA, M. A.Programming Challenges: the programming contest training manual. New York: Springer, 2003.
Complementar
KNUTH, D. E. The art of computer programming. 3a ed. Reading, Massachusetts: Addison- Wesley, 1997.
MANBER, U. Introduction to Algoritms: a creative approach. [S.I.]: Addison-Wesley, 1989.
REVILLA, M. A., POUCHER, W. B. From Baylor to Baylor. [S.I.]: Lulu, 2009.
SEDGEWICK, R.; WAYNE, K. Algorithms. 4a ed. Upper Saddle River: Addison-Wesley Professional, 2011.
SKIENA, S. S. Algorithm Design Manual. 2a ed. London: Springer, 2008.
ETTER, D. M. Engineering problem solving with C. 4th ed. Boston: Pearson, c2013. xx, 460 p., ill., 23 cm. ISBN 9780136085317 (broch.).
APROVAÇÃO
Aprovado em reunião do Colegiado realizada em: ____/____/______
Coordenação do Curso de Graduação: _________________________
Documento assinado eletronicamente por Felipe Alves da Louza, Professor(a) do Magistério Superior, em 05/08/2023, às 06:26, conforme horário oficial de Brasília, com fundamento no art. 6º, § 1º, do Decreto nº 8.539, de 8 de outubro de 2015. |
A autenticidade deste documento pode ser conferida no site https://www.sei.ufu.br/sei/controlador_externo.php?acao=documento_conferir&id_orgao_acesso_externo=0, informando o código verificador 4710638 e o código CRC 2691F860. |
Referência: Processo nº 23117.054632/2023-86 | SEI nº 4710638 |