Fundação Universidade Federal do ABC Santo André, 20 de Abril de 2024

Visualização da Ação de Extensão


Ação de Extensão
Título: Estruturas de dados puramente funcionais
Ano: 2019 Nº Bolsas Concedidas: 0 Nº Discentes Envolvidos: 0 Público Estimado: 80
Período do Curso: 23/11/2019 a 07/12/2019
Área Principal: Tecnologia e Produção Área do CNPq: Ciências Exatas e da Terra
Unidade Proponente: CENTRO DE MATEMÁTICA, COMPUTAÇÃO E COGNIÇÃO Unidades Envolvidas:
Tipo: CURSO
Municípios de Realização: SANTO ANDRÉ - SP
Espaços de Realização: Universidade Federal do ABC, Campus SA
Fonte de Financiamento: FINANCIAMENTO INTERNO (Fluxo Contínuo - Extensão - Nível I)
Modalidade do Curso: Presencial Tipo do Curso: CURSO
Tipo do Evento: Carga Horária: 12 Quantidade de Vagas: 80
Responsável pela Ação: EMILIO DE CAMARGO FRANCESQUINI
E-mail do Responsável: e.francesquini@ufabc.edu.br
Url da Acão: https://sig.ufabc.edu.br/sigaa/link/public/extensao/visualizacaoAcaoExtensao/927

Resumo

Resumo:

Quando programadores de linguagens de programação mais tradicionais
como C, C++, Java ou Python precisam de uma estrutura de dados (ED)
específica (ou uma variação de EDs clássicas que já conhecem) e ela
não está imediatamente disponível como uma biblioteca, eles sempre têm
a opção de abrir qualquer livro de algoritmos e EDs e copiar o código
quase que diretamente em seus programas. Desenvolvedores já se
acostumaram a, prontamente, se beneficiar de uma vasta gama de
soluções que são corretas e eficientes catalogadas e explicadas em
inúmeros livros textos.

Infelizmente programadores de linguagens funcionais como Haskell
Erlang/Elixir, Clojure ou ML não podem se dar a esse luxo. Apesar de
muitos desses textos se dizerem independentes da linguagem de
programação, eles são independentes apenas no sentido Henry Ford:
"Programadores podem usar a linguagem que quiserem, contanto que ela
seja imperativa!".

Apesar de linguagens funcionais estarem amplamente disponíveis há mais
de 50 anos (Lisp foi apresentada ao mundo em 1958), surpreendentemente
o primeiro livro texto que aborda estruturas de dados e seus
algoritmos em um contexto funcional só foi publicado por Okasaki em
1998, ou seja, 40 anos após o nascimento de Lisp.

EDs funcionais têm diversas características que as diferenciam de suas
colegas imperativas. Essas diferenças são tantas que justificam o seu
estudo de maneira independente. Por exemplo, EDs funcionais são
persistentes, o que significa que diversas versões da mesma ED podem
conviver simultaneamente facilitando, por exemplo, a programação
concorrente e paralela nestas estruturas.

Neste curso vamos explorar algumas estruturas de dados funcionais mais
comuns ao mesmo tempo que ensinamos as técnicas que são utilizadas nas
suas implementações. Assim, ao final deste curso, o aluno saberá
desenvolver a sua própria ED ou adaptar uma ED imperativa a um
contexto funcional sempre que precisar.

Justificativa:

Com uma demanda cada vez maior por profissionais com conhecimento em
linguagens funcionais, esse curso se justifica para suprir a falta de
profissionais capacitados nessa área. Essa demanda pode ser constatada
pela grande quantidade de inscritos nos cursos relacionados anteriores
ocorridas em 2018 e 2019 onde profissionais de mais de 15 empresas
diferentes (entre elas Itaú, Accenture, Thomson Reuters, NuBank,
GymPass, ...) além de alunos de 6 universidades além da UFABC se
inscreveram (num total de mais de 150 inscrições).


O presente curso faz parte da série de cursos relacionados à
programação funcional e os alunos que participaram dos três cursos
anteriores (Programação Funcional em Haskell (2018, 2019) e Teoria das
Categorias para Programadores (2019) serão avisados pela lista de
e-mails formada na ocasião. O curso será amplamente divulgado para a
comunidade externa via listas de e-mails acadêmicos (Sociedade
Brasileira de Computação, USP, Mackenzie, Unicamp, PUC, etc.) e
profissionais (Itaú, Nubank, Amazon, etc.) além das próprias redes
sociais profissionais tipicamente utilizadas na iniciativa privada
como LinkedIn.

Apesar de não haver garantias de que o público alvo sera
predominantemente formado pelo público externo, a participação do
público externo à universidade nos cursos relacionados anteriores, como
descrevemos acima, mostra um alto nível de interesse dos profissionais
de fora da comunidade acadêmica. Além disto a escolha por ministrar as
aulas aos sábados visa, justamente, a maximização do número de
participantes externos por ser, normalmente, uma opção de horário mais
viável aos que trabalham na iniciativa privada.



Metodologia


Aulas teóricas com exemplos e demonstrações reais dos algoritmos e
estruturas de dados implementados durante as aulas.


Avaliação


O aluno será avaliado através de 03 atividades de programação a serem
entregues em até duas semanas após o término das aulas.


O aluno será considerado aprovado se:

- obtiver no mínimo 75% de presença.

- entregar 60% das atividades corretamente.


Programação

23/11: Por que EDs funcionais?; Persistência; Listas; Heaps; Árvores

30/11: Árvores de busca balanceadas (Rubro-Negra e AVL); Avaliação preguiçosa; Princípios de análise amortizada; Heaps preguiçosos

7/12: Listas com acesso aleatório; Monoides; Finger trees


Públicos Alvo

Interno:

Discentes, docentes e TAs


Externo:

Programadores de desenvolvedores da área de TI que utilizam princípios funcionais de programação


Público Alvo Externo

Programadores de desenvolvedores da área de TI que utilizam princípios funcionais de programação



Membros da Equipe

  FABRICIO OLIVETTI DE FRANCA
Categoria: DOCENTE
Função : Coordenador(a) Adjunto(a)
  EMILIO DE CAMARGO FRANCESQUINI
Categoria: DOCENTE
Função : Coordenador(a)


Lista de Fotos

Não há fotos cadastradas para esta ação



Clique aqui para fazer a sua Inscrição

<< voltar

SIGAA | UFABC - Núcleo de Tecnologia da Informação - ||||| | Copyright © 2006-2024 - UFRN - sigaa-1.ufabc.int.br.sigaa-1-prod v4.9.3