Skip to content

luiz-linkezio/Tarefas-Algoritmo_e_Estrutura_de_Dados-SI-CIn-UFPE-2023.1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tarefas-Algoritmo_e_Estrutura_de_Dados-SI-CIN-UFPE-2023.1

Tarefas da cadeira Algoritmo e Estrutura de Dados da graduação em Sistemas de Informação (SI) do Centro de Informática (CIn) da Universidade Federal de Pernambuco (UFPE), cadeira cursada por mim em 2023.

A nota da cadeira é composta por várias listas de tarefas e um projeto, este repositório é para as tarefas, o projeto está nesse outro repositório: https://github.com/luiz-linkezio/The_Cure-Prim_Algorithm

Ementa da Cadeira

Conceitos básicos de algoritmos; algoritmos e estruturas de dados dinâmicas básicas; técnicas de construção de algoritmos; conceitos de complexidade de algoritmo.

Organização dos Arquivos

No diretório Listas existem várias pastas contendo as tarefas de cada lista, cada lista tem um tema específico, cada pasta de cada lista contém uma pasta para cada tarefa, essas pastas de tarefa contém um arquivo .md mostrando o enunciado da tarefa e outro arquivo com a solução do problema em formato de código, feita por mim.

O símbolo ✅ significa que eu consegui concluir a tarefa com sucesso.

Proposta das Tarefas

As tarefas deste repositório são tarefas que devem ser solucionadas através de algoritmos específicos, como por exemplo: Listas Duplamente Encadeadas e Árvores. Estas atividades têm o objetivo de introduzir os alunos aos conceitos de algoritmos e também os próprios algoritmos.

As tarefas foram hospedadas em uma plataforma chamada Dikastis, onde os alunos tinham uma conta com acesso para ver os enunciados e testar os códigos para resolver os problemas, a entrega e verificação das atividades também eram feitas nesta plataforma. A plataforma só suportava três linguagens de programação: Python, Java e Haskell.

As tarefas são no seguinte formato: Existe um problema no enunciado, o aluno tem que criar um código que vai receber uma ou mais entradas(inputs) e vai gerar uma ou mais saídas(outputs). O aluno deve colocar o código no Dikastis na página do enunciado da respectiva tarefa, caso o código seja aprovado, o aluno completa a tarefa de recebe a pontuação dela, caso o código seja reprovado, o aluno pode tentar quantas vezes quiser até terminar o prazo da lista, se o prazo terminar e o aluno não conseguir realizar uma tarefa, o aluno pode até receber uma parte da nota dependendo de como está o código. Além disso, a esmagadora maioria das tarefas exigia a aplicação de algum tipo de algoritmo apresentado na disciplina, caso contrário, a tarefa não era aceita e o aluno não recebia a pontuação(mesmo se solucionasse o que o enunciado pede).

Informações Extras (regras e outros detalhes):

  • Os alunos faziam uma lista por vez e tinham um prazo para enviar as atividades da lista
  • Cada lista tinha pontuação mínima e máxima de 0 a 10 respectivamente
  • Os alunos e as tarefas eram monitorados para evitar que algum aluno copiasse respostas de outros alunos.
  • As tarefas têm algo chamado "limite de tempo do código" que é o tempo máximo que o código pode demorar para rodar completamente, cada questão tem seu tempo limite descrito no enunciado.

Links:

Site do Dikastis: https://dikastis.com.br

Python site oficial: https://www.python.org

Java site oficial: https://www.java.com/pt-BR/

Haskell site oficial: https://www.haskell.org

Site do CIn: https://portal.cin.ufpe.br/

Site da graduação em Sistemas de Informação (SI): https://portal.cin.ufpe.br/graduacao/sistemas-de-informacao/

Site da UFPE: https://www.ufpe.br/