haskell_logo.png Programação funcional em Haskell no mundo real:
Aplicações em data science e na web

Table of Contents

Apresentação do Curso

Grandes empresas de tecnologia como Microsoft, Facebook, Target e também do ramo financeiro têm utilizado linguagens de programação funcionais em parte de seus projetos. Além disso, linguagens multi-paradigmas como Java e Python vêm incorporando tais conceitos a cada nova versão para aumentar a expressividade e produtividade.

O uso desse paradigma está ainda mais evidente nas áreas de Data Science, devido a necessidade de algoritmos que possam ser processados de forma distribuída e também na área de programação para Web, com a popularização de frameworks baseados em programação funcional reativa, como por exemplo o ReactJS.

Esse fato é evidenciado pelas diversas ofertas de emprego que solicitam, especificamente, por capacidades em linguagens funcionais como Elixir, Erlang e Scala. Contudo, na maior parte dos currículos de graduação em computação e em áreas correlatas é dado um maior enfoque nos paradigmas estruturados e orientados a objetos. Isso cria um obstáculo para esses profissionais quando precisam lidar com essas novas tecnologias ou para o preenchimento dos requisitos durante a busca por uma nova colocação no mercado.

Objetivos

Este curso tem como objetivo apresentar o paradigma funcional e seus benefícios através da linguagem Haskell como uma ferramenta viável de criação, entendimento e corretude de algoritmos com aplicações voltadas à data science e programação para web.

Esperamos que ao final do curso os alunos tenham condições de perceber as vantagens do uso de linguagens funcionais além de permitir novas abstrações para soluções de problemas. O aluno também estará apto a aplicar linguagens funcionais e seus conceitos para a solução de problemas básicos em data science e programação em geral, requisitos para uma grande fatia das ofertas de emprego atuais.

No último dia do curso (19/10 às 10h30) teremos uma palestra com Guilherme de Maio da Telnyx (https://telnyx.com/) que nos falará sobre o uso de linguagens funcionais, em particular Elixir, em um ambiente corporativo real.

O curso é gratuito e será ministrado pelos professores da Universidade Federal do ABC, Fabrício Olivetti e Emílio Francesquini e terá duração de 12 horas.

Programação

  • Dia 01: 28/09/2019 - Introdução à linguagem Haskell, tipos básicos, listas
  • Dia 02: 05/10/2019 - Funções de alta ordem, Tipos de dados algébricos
  • Dia 03: 19/10/2019
    • Functors, Applicatives, Monads

Palestra

logo.png Elixir no Dia a Dia

Data: 19/10/2019 às 10h30

Local: UFABC, Campus Santo André, Bloco A, Sala S-213-0

Resumo

O objetivo dessa palestra vai apresentar como funciona a linguagem Elixir e a plataforma Erlang/OTP, e o que é diferente de outras linguagens funcionais. Em especial, como Elixir pode ser usada para desenvolver aplicações web e qual o impacto disso no dia a dia de um desenvolvedor.

Palestrante: Guilherme de Maio Nogueira

GuilhermeBW.jpg Guilherme de Maio Nogueira é desenvolvedor de software há mais de 10 anos e desde 2015 adotou Elixir como sua linguagem de programação principal. Organiza o meetup ELUG-SP e está sempre interessado em trazer mais pessoas para a linguagem.

Datas e Sala

  • Datas: 28/09, 05/10 e 19/10
  • Horário: 08h00 às 12h00
  • Sala: L407-2, Bloco A, 4º andar

No último dia do curso (19/10 às 10h30) teremos uma palestra com Guilherme de Maio da Telnyx (https://telnyx.com/) que nos falará sobre o uso de linguagens funcionais, em particular Elixir, em um ambiente comporativo real.

O curso será ministrado pelos professores Fabrício Olivetti e Emílio Francesquini e terá duração de 12 horas.

Inscrições

  • Número de vagas: 80
  • Para se inscrever: https://sig.ufabc.edu.br/sigaa/link/public/extensao/visualizacaoAcaoExtensao/884
    • Para se cadastrar o usuário deve clicar em "Clique aqui para fazer a sua Inscrição" → "Ainda não possuo cadastro".
    • Insira os dados solicitados e aguarde e-mail para finalização do cadastro. Após a finalização do cadastro, insira o e-mail e senha, clique em “Cursos e Eventos Abertos" e faça o cadastro no curso.

Pré-requisitos

Gostar de programar!

Como Chegar

Universidade Federal do ABC
Avenida dos Estados, 5001
Santo André - SP CEP 09210-580

Acesso pelos endereços:

  • Av. dos Estados, 5001.
  • R. Abolição, 378
  • R. Santa Adélia, (em frente ao no. 221)

Estações de trem próximas (recomendamos utilizar Uber para o trajeto estação-campus):

  • Prefeito Saladino (CPTM L10)
  • Santo André (CPTM L10)

Mais informações: http://www.ufabc.edu.br/a-ufabc/campi/santo-andre

Material do Curso

Aula Slides Material de apoio
28/09 PDF; PDF com soluções Código Exercícios
05/10 PDF; PDF com soluções Código Exercícios; Exercício de análise e plotagem de Dados (Zip; Repo Github)
19/10 PDF; PDF com soluções (em breve) Código Exercícios

Atividades e Suporte

Atividades

As atividades do curso estão descritas e deverão ser submetidas pelo GitHub Classroom.

Aula Prazo Atividade Link para submissão
Aula 01 19/10 Lista 01 https://classroom.github.com/a/1ayC4yUs
Aula 02 26/10 Lista 02 https://classroom.github.com/a/yEyYld9m
Aula 02 26/10 Lista 02B https://classroom.github.com/a/n3SYYixQ
Aula 03 02/11 Lista 03 https://classroom.github.com/a/4po6laAz
  • Para submeter uma atividade, basta clicar no link da atividade para criar um novo repositório no Github.
  • Não deixe de escolher o seu nome na lista para que possamos relacionar o usuário GitHub à você!
  • O repositório é privado e todos os arquivos e alterações adicionados ao repositório poderão ser acessados apenas pelo aluno e pelo professor da disciplina.

Discussão e dúvidas

Durante o curso, utilizem o Discord (https://discord.gg/qDPxdbE) para tirar dúvidas. Nele também serão compartilhados materiais extras.

Metodologia e avaliação

Aulas práticas de programação em laboratório e palestra expositiva sobre o uso de Programação Funcional no ambiente de trabalho.

A avaliação será feita através de 06 atividades de programação a serem entregues em até duas semanas após o término das aulas.

Considerar-se-á aprovado quem:

  • obtiver no mínimo 75% de presença.
  • entregar 60% das atividades corretamente.

Contato

Ou via Discord em: https://discord.gg/qDPxdbE

Author: Emilio Francesquini e Fabrício Olivetti

Created: 2019-10-16 qua 17:59