Algoritmos e Estrutura de Dados - 2023-2
PPCA2211 UnB
Table of Contents
1. Material Didático
Nesta seção deixo disponibilizado a construção da futura
"apostila" de
EDA-2:
🆕♨️Apostila com o conteúdo geral, inclusive desta disciplina, em construção permanente: Apostila de Estrutura de Dados
2. Aulas
2.1. Aula 1 27_oct
- Introdução
- Objetivos da disciplina
- Método de avaliação
- Estrutura Abstrata de dados
- Listas encadeadas, filas, pilhas, árvore binárias de busca
- Red Black
- Listas encadeadas, filas, pilhas, árvore binárias de busca
2.2. Aula 2 03_nov
- Aula remota com vídeos gravados.
- Os alunos devem assistir ao conteúdo dos tópicos 5 e 8 da apostila
de EDA
- https://www.brunoribas.com.br/apostila-eda/
- O conteúdo abrange:
- Algoritmos de ordenação
- Algoritmos elementares
- Algoritmos linearítmicos
- Tabela Hash
- Algoritmos de ordenação
- Exercícios
- Será disponibilizada uma lista de exercícios no MOJ até às 14h00 do dia de 3 novembro
2.3. Aula 3 10_nov icpc
Professor em Viagem, atividades remotas- Viagem cancelada, aula normal presencial
- Grafos
- Representação
- BFS, DFS
- Caminhos mínimos
2.4. Aula 4 17_nov icpc
Professor em Viagem, atividades remotas- Viagem cancelada, aula normal presencial
- Planejamento Automatizado
- Página da disciplina de Planejamento por Tomas Balyo and Dominik Schreiber
2.5. Aula 5 24_nov
- Preparação da apresentação do domínio escolhido
2.6. Aula 6 01_dez
PROVA das 14h às 16h- Apresentações dos domínios PDDL
2.7. Aula 7 8_dez
- Aula prática de exercícios e elaboração do trabalho final
2.8. Aula 8 15_dez
- Apresentação do trabalho final
3. Antes de Começar
Nesta disciplina é esperado que o aluno tenha conhecimento básico da
linguagem C
tais como:
- Ponteiros
- Strings
- Leitura da Entrada padrão
As subseções abaixo elencam alguns vídeos que recaptulam o conhecimento necessário.
3.1. Material no Youtube
Vídeos com material relacionado ao conteúdo esperado para uso na disciplina.
Tenho disponibilizado vários materiais em meu canal no YouTube, por favor, considere assinar o canal e deixar o joinha :)
3.1.1. Revisão de Ponteiros
Segue abaixo a playlist da revisão de ponteiros no Youtube. Por ora são 5 vídeos que exploram o que é necessário saber para a disciplina de EDA-2.
3.1.2. Strings em C
Aqui um apanhando geral em como se manipula strings na linguagem C. Em uma série que chamei de "Umas Palavras sobre String"
3.1.3. SCANF
O SCANF
é uma poderosa função capaz de ler dados da entrada padrão
(e de outros arquivos com suas aliases como fscanf(3)
.
Na série Detonando o SCANF temos, além do uso básico da função abordo algumas curiosidades sobre as funções.
4. Plano de Aulas
O plano de ensino e plano de aulas é um PLANO e pode sofrer modificações ao longo do semestre de acordo com o rendimento da turma.
4.1. Presença
- Em atividades presenciais será passada uma lista de presença;
- Para atividades a distância uma atividade específica de presença será passada com um prazo determinado pelo professor.
A entrega DENTRO do prazo é obrigatória para todos os alunos.
4.2. Menção Final
As notas serão calculadas conforme a equação abaixo:
\begin{align} M_F = \frac{ Listas + 2*P1 + 2*T1}{5} \end{align}4.3. Critérios de aprovação
Obterá aprovação no curso o aluno que cumprir todas as exigências listadas abaixo:
- \(M_F >= 50\); e
- Presença em \(75\%\) ou mais das aulas.
Por fim, a menção final do curso é dada de acordo com a tabela abaixo:
\(M_F\) | Menção | Descrição |
\(0\) | SR | Sem rendimento |
\([1,29]\) | II | Inferior |
\([30,49]\) | MI | Médio Inferior |
\([50,69]\) | MM | Médio |
\([70,89]\) | MS | Médio Superior |
\([90,100]\) | SS | Superior |
5. Presença
- Lançado diretamente no SIGAA
6. Notas
6.1. Listas que valem nota
O acesso nas listas abaixo foi enviado para o e-mail institucional do aluno.
Todas as listas podem ser vistar no sistema MOJ
- ~[UnB-Gama/PPCA 2023-2] 1a Lista - Desenferrujando para o semestre~ - Início: Sat Oct 28 16:15:35 -03 2023 - Término: Mon Nov 27 15:45:44 -03 2023 - ~[PPCA/AED-2023_2] Lista 2~ - Início: Fri Nov 3 13:00:00 -03 2023 - Término: Sat Dec 2 23:59:00 -03 2023 - ~[PPCA/AED-2023_2] Grafos~ - Início: Wed Nov 22 10:00:00 -03 2023 - Término: Sun Dec 17 23:59:00 -03 2023
6.1.1. Contagem de exercícios feitos
6.1.2. Apresentação de Domínio PDDL - equivale a uma lista de exercícios Pontua como se fosse a prova
- Data da apresentação: 1 de dezembro de 2023
- Devem ser apresentados domínios das competições de 2023 ou 2018
- https://ipc2023-classical.github.io/
- https://ipc2018-classical.bitbucket.io/
- A Good Snowman is Hard to Plan
- PFPT: a Personal Finance Planning Tool by means of Heuristic Search and Automated Planning
- Challenges in Modelling and Solving Plotting with PDDL
- Finding Matrix Multiplication Algorithms with Classical Planning
- Equipes de até 6 pessoas
- O que deve ser apresentado?
- Tempo de apresentação: 30minutos
- Os alunos devem apresentar:
- Do que se trata o domínio
- Qual a motivação do domínio existir
- existe artigo científico publicado a respeito do domínio?
- Análise crítica sobre o domínio e o conjunto de problemas
- Deve ser apresentada uma tabela de execução dos problemas disponíveis
- Existem ferramentas de apoio? (que criam arquivos de
problema? que animam um plano ?)
- apresentar as ferramentas existentes
- Apresentar as principais ações e predicados do domínio
- Após a apresentação os alunos devem enviar para o professor o PDF da apresentação
- Exemplo de apresentações: https://www.brunoribas.com.br/flia/2023-2/#orgd9455c7
- não escolher domínios listados nesta página
6.2. Trabalho Final
- Data da apresentação: 15 de dezembro de 2023
- Envio do artigo:
15 de dezembro17 de dezembro de 2023 - Equipes de até 6 pessoas
6.2.1. Problemática
As equipes devem escolher um problema, preferencialmente NP-completo, e utilizar alguma abordagem de modelagem matemática, seja em restrições pseudo-Booleanas, Satisfatibilidade Booleana, Planejamento (utilizando a linguagem PDDL) ou Grafos.
6.2.2. Artigo Científico - Relatório
- Cada equipe entregará um artigo científico e a apresentação (slides)
- Utilize o formato do AAAI:
- Referência AAAI no overleaf:
- Exemplos de artigos:
- https://icaps23.icaps-conference.org/program/workshops/keps/KEPS-23_paper_9560.pdf
- https://icaps23.icaps-conference.org/program/workshops/keps/KEPS-23_paper_4664.pdf
- https://icaps22.icaps-conference.org/workshops/KEPS/KEPS-22_paper_7985.pdf
- https://ojs.aaai.org/index.php/ICAPS/article/view/27231/27004
- O que deve ter no artigo?
- Introdução (definição da problemática)
- Pesquisa de formulação semelhante (trabalhos relacionados)
- Formulação proposta
- Como codificar a formulação
- Experimentos
- Criar um conjunto de experimentos relevantes para aplicação do problema
- Conclusão
- Idioma do artigo: português ou inglês
6.2.3. Apresentação
Na última aula do semestre todas as equipes farão uma apresentação do trabalho. Esta apresentação deverá conter: a problemática; a aborgadem utilizada (e como ela se relaciona com outros trabalhos); experimentos, e; conclusão.
6.3. Consolidadas
Px
são as provasE2
é a nota do exercício adicional que soma na nota da prova2LS
é a nota consolidada das listas, ao todo foram 47 exercícios. Logo a nota éResolvidos*100/47
TO
é o trabalhoPP
é a porcentagem de presença (consolidada nesta tabela no fim do semestre)- Na seção anterior você pode ver o acompanhamento das presenças
situação
é a situação final na disciplina, gerada após todas avaliações- As penalidades nas avaliações são relativas às chamadas ao
getlog
do MojinhoBot - 🆕♨️
LR
é a lista da redenção- Esta lista poderá ser feita somente para alunos com as seguintes
médias:
- \([40,49]\)
- \([60,69]\)
- \([80,89]\)
- Esta lista poderá ser feita somente para alunos com as seguintes
médias: