- Matheus Rangel de Figueiredo
- Bruno Pena Baeta
- Davi Dias
Introdução
Um dos objetivos da disciplina de Linguagens de Programação é permitir que o aluno, ao conhecer as estruturas semânticas que definem o comportamento das linguagens de programação, tenha facilidade para aprender qualquer linguagem de programação desconhecida em pouco tempo, em diversos paradigmas e modelos de programação.
Nos tempos modernos, com a popularização de computadores com arquiteturas multi-núcleos e a expansão dos sistemas distribuídos e aplicações desenvolvidas para a núvem, a programação paralela e concorrente se tornou uma tarefa constante na vida do desenvolvedor. Outra tendência no desenvolvimento de linguagens de programação é a convergência de domínios de programação, tais como desenvolvimento para desktop, desenvolvimento móvel ou para a web.
Cada empresa, site, pesquisador ou profissional possui sua própria visão do que será uma linguagem de programação para o futuro. É difícil se prever como será o futuro da programação. Não se sabe nem mesmo se o futuro da programação será uma linguagem de programação. Por isso, o profissional de computação deve saber estudar e analisar uma linguagem programação, conhecendo seu funcionamento, suas estruturas e forma de expressão. Especificação
O grupo deverá publicar no fórum do Canvas o tema escolhido. A escolha obedecerá a política FCFS (First Come First Served). Ou seja, quem postar primeiro garante o tema. Não poderá haver dois grupos com o mesmo tema.
A especificação do trabalho é:
Grupos de até 3 alunos no máximo.
Cada grupo deverá escolher uma linguagem de programação.
O grupo deverá analisar as características da linguagem tais como:
domínios de aplicação,
tipos de dados e sistemas de tipos,
alocação de memória,
principais instruções de controle,
sintaxe e expressividade,
recursividade,
concorrência
paradigmas de programação presentes (com exemplos de estruturas semânticas de cada paradigma).
O grupo deverá redigir uma documentação apresentando a linguagem de programação. Ele deve conter os tópicos acima, mas não de se limitar a eles. Os tópicos acima nem mesmo devem ser seções específicas da documentação.
O grupo deverá desenvolver um sistema com no mínimo 100 linhas para apresentar os principais recursos da linguagem de programação. O programa deve ser documentado e comentado, explicando cada estrutura semântica relevante que está sendo utilizada.
O grupo deverá gravar um vídeo tutorial apresentando a linguagem de programação.
Documentação
Deverá ser desenvolvida uma documentação de poucas páginas, estilo hand-out de até no máximo 6 páginas, que descreva o tópico estudado. É incentivada a utilização de recursos visuais, tais como exemplos, tabelas, figuras, diagramas, etc, para ilustrar o tema. O hand-out deverá ser escrito utilizando o modelo LaTeX de artigo da Sociedade Brasileira de Computação, disponibilizado no link: https://pt.overleaf.com/latex/templates/sbc-conferences-template/blbxwjwzdngr (Links para um site externo.). O texto deve ser claro e sucinto. Serão avaliados, além do conteúdo, a forma de apresentação, a correção no uso da língua portuguesa e a clareza na exposição dos argumentos. Vídeo
Neste trabalho deverá ser produzido um vídeo, com aproximadamente 15 minutos sobre o conteúdo estudado. O objetivo principal do vídeo é apresentar a ideia geral do tema e como ele pode ser aplicado, utilizando exemplos. O vídeo deve ter um caráter mais motivacional que técnico. A estrutura do vídeo deve ter foco no engajamento do espectador, e deve possuir a seguinte anatomia: nos primeiros 3 minutos toda a ideia geral já deve ter sido transmitida; em seguida devem entrar as explicações e exemplos. Até os 9 a 12 minutos, todo o conteúdo essencial deve ter sido dado e deve-se iniciar a conclusão. Linguagens Tema
As linguagens de programação que poderão ser escolhidas são:
Crystal
Cuda
D
Dart
Elixir
Elm
Golang
Groovy
Haxe
Julia
Pharo
Python
R
Rust
Web Assembly
Resultados esperados
Deverão ser entregues 3 artefatos:
Uma documentação em PDF.
Um vídeo tutorial.
O código fonte completo do projeto.
Forma de entrega do trabalho
A documentação do trabalho deverá ser entregue no Canvas. Dentro da documentação deve constar, ainda na 1a página, um link para o repositório do código e outro link para o vídeo disponibilizado.