BCC - Bacharelado em Ciências da Computação
2º Semestre - 2020
ICMC - USP - São Carlos
João do E.S. Batista Neto - jbatista *** icmc usp br (SALA 4-222)
Monitor : Fabio Fogarin -> fbfdestro *** usp.br
Monitor : Andre Souza -> andre.moreira.souza *** usp.br
horário atendimento: Ainda a definir. Vcs preferem um horário fixo ou marcar por e-mail ?
Turma A = KQPD
Turma B = B28C
Permitir o contato do aluno com problemas clássicos e novos de computação que envolvam a análise de soluções
variadas e os mais diversos paradigmas de programação.
Apresentação dos paradigmas de força-bruta, dividir e conquistar, transformar e conquistar, reduzir e conquistar,
programação dinâmica e backtracking. Solução de problemas com árvores e grafos, e manipulação de strings.
[Índice]
[Índice]
Aula 1
Link vídeo TURMA B aqui
Link chat TURMA B aqui
Link vídeo TURMA A aqui
Link chat TURMA B aqui
Apresentação da Disciplina: conteúdo, projetos, avaliação, datas importantes, etc aqui
Material de apoio de disciplinas correlacionadas
- Lab. Algoritmos Avançados I SCC-210
- Disciplinas prática (muita programação) mas que tem informações úteis sobre E/S e STL, além de material teórico
sobre tópicos relacionados e sites com repositórios e submissão de exercícios
O problema de Stable-Matching (ou casamento estável) aqui
Um exemplo gráfico da execução do algoritmo aqui
Um exemplo gráfico da execução do algoritmo (versao animada) aqui
Momento Cultural Vejam que vídeo
interessante. Podemos discutir isso depois...
Aula 2
Link vídeo TURMA B aqui
Link chat TURMA B aqui
Link vídeo TURMA A aqui
Link chat TURMA B aqui
Paradigma 1: Algoritmos Gulosos
Complementos
- Demo intervalos
- Muita coisa em grafos se resolve gulosamente: dijkstra (caminho mínimo) e Kruskal (Árvore geradora). Veja uma 'estrutura
de dados com STL para manipular grafos aqui
- Quer implementar Kruskal? Conhece Union Find ???
Aula 3 - BackTracking e Força Bruta
Link vídeo TURMA B aqui
Link chat TURMA B aqui
Link vídeo TURMA A aqui
Link chat TURMA B aqui
Paradigma 2: Força Bruta - BackTracking
Complementos
- O problema do CD - um template para resolvê-lo, sem imprimir a lista de passos aqui
Aula 4 - BackTracking (Parte2)
Link vídeo TURMA B aqui
Link chat TURMA B aqui
Link vídeo TURMA A aqui
Link chat TURMA B aqui
Paradigma 2: BackTracking (parte 2)
Complementos - Dicas importantes para resolver o exercício do 8 Puzzle...
Link vídeo TURMA B aqui
Link chat TURMA B aqui
Link vídeo TURMA A aqui
Link chat TURMA B aqui
- O problema das WHEELS, bactracking estilo força bruta aqui
- Como verificar se um puzzle tem solução (antes de chamar a função) aqui
- Sabia que o seu código funcionará mais rapidamente se utilizar Distância Manhattan? aqui
- Uma forma eficiente de computar a distancia manhattan em c++ aqui
Aula 5 - Divisão e Conquista
Link vídeo TURMA B aqui
Link chat TURMA B aqui
Link vídeo TURMA A aqui
Link chat TURMA B aqui
Paradigma 3: Divisão e Conquista
Aula 6 - Divisão e Conquista (complemento)
Link vídeo TURMA B
aqui
Link chat TURMA B aqui
Link vídeo TURMA A
aqui
Link chat TURMA B aqui
Paradigma 3: Divisão e Conquista
Aula 7 - Programação Dinâmica (parte 1)
Link vídeo TURMA B aqui
Link chat TURMA B aqui
Link vídeo TURMA A aqui
Link chat TURMA B aqui
Paradigma 4: Programação Dinâmica
Aula 8 - Programação Dinâmica (parte 2)
Link vídeo TURMA B aqui
Link chat TURMA B aqui
Link vídeo TURMA A aqui
Link chat TURMA A aqui
Link vídeo TURMA B (LIS) aqui
Link chat TURMA B (LIS) aqui
Link vídeo TURMA A (LIS) aqui
Link chat TURMA B (LIS) aqui
LIS: LIS código (ERRATA do código feito na turma B). Foi corrigido no vídeo da turma A
LIS: Longest Increasing Subsequence
WSSP: Weighted SubSet Sum
KnapSack Problem: Knapsack Problem
Aula 9 - Programação Dinâmica (parte 3)
Link vídeo TURMA B aqui
Link chat TURMA B aqui
Link vídeo TURMA A aqui
Link chat TURMA A aqui
Edit Distance: Ou Dist. Levenshtein
Código feito em sala Aqui
Aula 10 - Processamento de Strings
Link vídeo TURMA B aqui
Link chat TURMA B aqui
Link vídeo TURMA A aqui
Link chat TURMA A aqui
Processamento de Strings um pouco de teoria
Processamento de Strings codigo feito em aula....
Aula 11 - Teoria dos Números
Link vídeo TURMA B aqui
Link chat TURMA B aqui
Link vídeo TURMA A aqui
Link chat TURMA A aqui
Aula dia 11/12 explicação sobre o exercício factorFactorial
Link vídeo TURMA B aqui
Link chat TURMA B aqui
Link vídeo TURMA B (extra) aqui
Link vídeo TURMA A aqui
Link chat TURMA A aqui
Um pouco de Teoria dos Números (Primos)
Teoria dos Números código feito na Primeira Aula (código crivo, fatores primos, etc
Teoria dos Números código modificado, fatores primos SEM calcular CRIVO e o programa do crivo para valores muito altos
Exercício 10139 (aula11-exer2) Algumas obs importantes. Por favor leia !
Verifique sempre o run.codes. Note que existem 2 turmas no run.codes para esta disciplina
[Índice]
Veja material PDF na aula 1 Está tudo lá
[Índice]
[Índice]
Kleinberg and Tardos. Algorithm Design
Anany Levitin. The Design and Analysis of Algorithms
Felix Halim. Competitive Programming
Cormen. Introduction to Algorithms
Skiena. The algorithm Design Manual
[Índice]