dsl para geração de objetos de aprendizagem · conceituação: a escola tradicional a escola...

48
DSL para geração de Objetos de Aprendizagem Luis Carlos S. C. Retondaro

Upload: phamdiep

Post on 30-Nov-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

DSL para geração deObjetos de Aprendizagem

Luis Carlos S. C. Retondaro

Page 2: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Agenda:

●Conceituação

●Estado da Arte

●Terminologia/Introdução

●Proposta

●Estudo de Caso

●Conclusão

Page 3: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Conceituação:

Page 4: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Conceituação:

●Na sala de aula do futuro, a produção do conhecimento é colaborativa; o professor tem a função de mediar o processo.

●Alguns professores já adotaram o modelo:

– Aula em casa e “dever de casa” na escola.● Ex. Steven Cramer, do Departamento de

Melhorias no Ensino da Universidade de Wisconsin (EUA)

Page 5: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Conceituação:

●“É um movimento que merece tanta atenção quanto o surgimento da internet e o advento da globalização. As mídias sociais, a sociedade em rede e os conteúdos colaborativos mudam tudo radicalmente”

● Antonio Flavio Testa, sociólogo e antropólogo da UnB e pesquisador da Faculdade de Educação.

Page 6: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Conceituação:

●Objetos de Aprendizagem – e-Learning

potencializar o contato.”● professor John Booske, também da

Universidade de Wisconsin.

Ferramentas de e-learning podem ●

Page 7: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Conceituação:

A escola tradicional A escola inteligente

A disposição da sala - O professor permanece em pé, diante dos alunos, junto ao quadro. Os alunos ficam sentados em carteiras individuais, separados em fila.

A disposição da sala - O professor fica circulando entre os alunos, verificando o andamento dos debates ou da pesquisa, tirando dúvidas e dando orientações. Os alunos sentam-se em mesas de três lugares para estimular atividades em grupo.

As atividades - Além de ouvir a lição do professor, o aluno responde a perguntas ou faz exercícios em livros e cadernos. As atividades práticas ficam condicionadas a horários e locais predeterminados.

As atividades - Os estudantes assumem o papel de pesquisadores, em vez de ouvintes. Passam a maior parte do tempo buscando respostas, debatendo e avaliando o trabalho de outros colegas.

Page 8: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Conceituação:

A escola tradicional A escola inteligente

O professor - Passa a maior parte do tempo explanando sobre a disciplina, falando e fazendo anotações no quadro-negro.

O professor - Na maior parte do tempo, propõe problemas para os alunos, coordena debates e orienta as pesquisas dos estudantes. Resume a aula expositiva ao mínimo necessário.

Recursos pedagógicos - Em classe, são utilizados cadernos, livros, quadro-negro e mapas, slides etc. Para usar outros recursos, os alunos costumam ir (em horários e dias específicos) para laboratórios de informática ou ciências, ou para uma sala de artes.

Recursos pedagógicos - Na mesma sala, há computadores, material de laboratórios de ciências e recursos da sala de artes. O professor pode estimular os alunos a encontrar um tipo de relevo num programa de mapas na internet e sugerir que eles reproduzam aquele tipo de terreno utilizando material como papel, massa e tinta.

Page 9: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Conceituação:

A escola tradicional A escola inteligente

O tempo - O ensino é restrito ao horário escolar, isto é, à duração das aulas. Quando deixa a escola, o aluno estuda por conta própria ou completa uma tarefa elaborada previamente pelo professor.

O tempo - A aprendizagem não se limita à escola. Pela internet, em qualquer horário, o estudante pode participar de chats ou fóruns com os colegas, acessar materiais elaborados pelo professor e publicar o resultado de seus próprios estudos.

Page 10: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

O estado da arte

● MOOC

– Massive Open Online Course

Page 11: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Objetivos

●Objetivos Gerais:

– Auxiliar a geração de materiais didáticos para serem aplicados como ferramentas de e-learning

– Permitir adaptação automatizada do material gerado para diversas mídias

●Objetivos Específicos:

– Criar uma Linguagem de Programação de Domínio Específico (DSL)

– Integrar a DSL com o Blender

Page 12: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Introdução

●Criação de um Núcleo de Geração de Conteúdos Didáticos

– Primeiro plano: Professores e Técnicos

– Segundo plano: Especialistas

● Oficinas de Blender

– Foco em animação

● Criação de Linguagem de Programação

– Para “leigos”

– Específica para geração de conteúdo em vídeo, inicialmente.

Page 13: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Introdução

●Qual a abordagem ideal neste caso?

– Um Framework contextualizado ao domínio

●Caminho da solução: Linguagem “LDA”

– Protótipo:● Configuração de uma viewport:

view=”port1” video fade 640 540 120 140● Sobrepõe um vídeo a partir dos 12 segs, na

viewport indicada:

seg.mp4 >> 12 [ port1 ]● Agora ele assume a viewport principal, a

partir dos 15 segs

view = port1 >> 15

Page 14: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Introdução

● LDA + Blender

Page 15: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Introdução

● LDA + Blender

Page 16: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Introdução

●DSLs

●O assunto não é novo

– Algumas linguagens evoluíram para propósito geral, mas foram criadas com propósito de resolver problemas em determinadas áreas:

● COBOL – Negócios;● FORTRAN – Processamento numérico;● LISP – Processamento simbólico.

– Apesar disso, outras necessidades particulares surgiram e mais DSLs foram criadas.

Page 17: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Introdução

●Soluções empregadas:

– Bibliotecas de sub-rotinas – Frameworks e Componentes Orientados

a objetos

Page 18: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Introdução

●Soluções empregadas:

– DSLs● Normalmente são linguagens pequenas e

declarativas;● Oferecem um poder de expressão focado

em um domínio de problema particular;● Em muitos casos, programas DSL são

traduzidos para as chamadas de uma biblioteca de rotina comum e a DSL pode ser vista como um meio para esconder os detalhes dessa biblioteca.

Page 19: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Introdução

●Apesar de muitas DSLs terem sido projetadas e utilizadas ao longo dos anos, o estudo sistemático é muito recente.

●Embora a pesquisa seja atual e haja progresso substancial os autores explicam que continuará a ser importante por vários anos.

– Porquê?....

Page 20: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Introdução

●Porquê?

– Notações específicas do domínio vão além das limitações da GPL (definidas pelo usuário);

– Melhoria de produtividade (manutenção);

– Certas construções e abstrações específicas não podem ser mapeadas diretamente em funções e objetos de bibliotecas;

– Ao contrário de GPLs, DSLs não precisam ser executáveis. (isso é sempre bom?!)

Page 21: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Terminologia

●“Uma linguagem de domínio específico (DSL) é uma linguagem de programação ou linguagem de especificação executável que oferece, através de notações e abstrações apropriadas, um poder de expressão focado e geralmente restrito, a um domínio de problema particular.”

Page 22: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Terminologia

●DSLs são geralmente pequenas

●na literatura são também chamadas “micro-linguagens” (little-languagens)

– Às vezes porém elas contém uma GPL inteira, como sendo uma sublinguagem dela.

– Isto ocorre quando são projetadas como linguagens embutidas/extensões.

Page 23: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Terminologia

●ODM (Organization Domain Modelling)

– É preciso pensar o “domínio como conjuntos de sistemas”, visando a reutilização do código; ao invés de pensar o “domínio como mundo real”, como faz a comunidade de pesquisa em IA.

Page 24: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Terminologia

●ODM (Organization Domain Modelling)

– ODM enfatiza sistemas de software existentes (legados) como valiosas fontes de conhecimento de domínio.

Page 25: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Terminologia

●Compilador DSL

– Por ser declarativa a DSL é vista como uma linguagem de especificação

– Muitas DSLs são suportadas por um compilador DSL que gera as aplicações

– Neste caso, o compilador é referido como gerador de aplicações e DSL como linguagem de aplicação.

– Outras DSLs, como YACC e ADSL, não se destinam especificamente a programação de aplicações completas, mas sim a geração de bibliotecas e componentes.

Page 26: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Terminologia

●Outros termos

– Além disso, existe DSL para geração de documentos (TEX), ou imagens (PIC)

– Um termo comum para DSL voltada para processamento de dados, é Linguagem de 4ª geração (4GL)

– Programação de domínio específico, ou programa de usuário final, são termos relacionados a tarefas simples de programação de macros ou scripts, como a macro-linuagem do Excel, por exemplo, que é considerada uma DSL.

Page 27: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Exemplos

●Literalmente, existem centenas de DSLs

– Destas, apenas um subconjunto é realmente descrito na literatura

● Os exemplos clássicos mais conhecidos são:

– PIC, SCATTER, CHEM, LEX, YACC

– MAKE, SQL, BNF e HTML

Page 28: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Exemplos●Os domínios podem ser classificados em:

– Engenharia de Software: controle de comportamento, finanças, BD,etc ;

– Sistemas: Análise de estruturas de dados, driver de vídeo, especialização do sistema operacional,etc;

– Multimídia: Web, manipulação de imagem, Animação 3D, computação gráfica, etc;

– Telecomunicações: protocolos, comutação, autenticações, etc;

– Diversos: simulação, agentes móveis, visão comput., controle de robô, etc;

Page 29: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Desenvolvimento de uma DSL●Passos necessários:

● (1) Identificar o domínio do problema;● (2) reunir todo conhecimento relevante

neste domínio;● (3) classificar o conhecimento em várias

noções semânticas e operações;● (4) projetar uma DSL que descreva de

forma concisa aplicações no domínio;● (5) construir uma biblioteca que

implementa as noções de semântica;● (6) projetar e implementar um compilador

que traduz programas DSL para uma seqüência de chamdas à biblioteca;

● (7) Escrever programas DSL para todas as aplicações desejadas e compilá-los.

Page 30: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Estudo de Caso: Whimsy

– Artigo publicado na Game Developer, 2008

– Autor: Mick West co-fundador da Neversoft

●Whimsy é uma DSL que cria arte, baseada nas pinturas abstratas de Rodney Alan GreenBlat

– o artista responsável pelos personagens de “Parappa the Rapper”

Page 31: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Whimsy

●Domínio

– As obras do artista Greenblat

– Greenblat tem um grande conjunto de obras de arte com um estilo muito extravagante e distinto

– Para o domínio específico, foi

escolhida a obra de arte a partir de

sua turnê Elemental● uma coleção de pinturas semi-

abstratas em um estilo geomético

de cores vibrantes.

Page 32: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Whimsy

●Domínio

– A ideia era esta: Se um estilo de arte era p/ ser usado em um video-game, então pode ser muito útil ter uma DSL que encapsule o estilo e que permita a fácil criação de peças semelhantes.

– O primeiro passo na criação de uma DSL é ter uma ideia dos elementos que compõem o domínio.

Page 33: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Whimsy

●Domínio

– Olhando para o trabalho Elemental, podemos ver uma série de aspectos comuns:

● Há formas ovais concêntricas, com “pétalas” em várias seções.

● Muitas das obras têm círculos segmentados com círculos coloridos dentro deles.

● Existem hélices pequenas e diversas outras formas que se repetem tanto nas obras individuais como na coleção geral de Greenblat.

“Módulo Lunar” de Greenblat – parte do domínio

Page 34: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Whimsy

●Domínio

– A melhor forma de abordar a criação da DSL foi escolher uma peça (“Módulo Lunar”) e tentar replicar parte dela.

– A peça tem muitos elementos comuns em seu estilo:

● círculos sólidos, ovais concêntricas com gradientes de cor, pétalas e estrelas.

Page 35: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Whimsy

●Domínio

– Sendo mais seletivo, foi escolhida uma parte da peça:

Page 36: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Whimsy

●Código

– Para a primeira iteração, o autor decidiu "construir" em vez de "extender".

– Ele queria que o processo de criação fosse interativo para que ele pudesse editar o "código" em tempo real e ver imediatamente os resultados.

– Ele também não estava certo sobre o nível de abstração que ia usar

– Ele desejava que a linguagem fosse muito livre, sem restrições por requisitos de sintaxe.

Page 37: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Whimsy

●Código

– Para ter mais controle sobre a velocidade de execução, foi decidido construir um parser usando C++, chamado Whimsy.

– A exploração inicial foi bastante simples. O código seria lido em um arquivo, dividido em linhas, cada linha dividida em partes chamadas tokens, que são analisados com uma série de declarações "if"

Page 38: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Whimsy

●Código

– Exemplo:if (token == string("rectangle")){

debug_log("NEW RECTANGLE");CWhim *p_whim = new CRectangle();Add(p_whim);if (!grouping)

m_parse_context.clear();m_parse_context.push_back(p_whim);

}if (token == string("at")){

float x = (float)atof(tokenizer.NextToken().data());float y = (float)atof(tokenizer.NextToken().data());m_parse_context.back()->SetPosition(Vector2(x,y));

}

Page 39: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Whimsy

●Código

– Por existirem formas que distinguem outras formas, e formas que são composições de outras formas:

● Foi cricada uma lista hierárquica de objetos

– Foi criada uma classe abstrata● A composição da pintura é um vetor dos

objetois derivados dessa classe.

Page 40: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Whimsy

●Código

– Um exemplo de primitiva gerada pelo Whimsy:

superegg 0.15,0.10,3.5 at .3,.7 size 1.2 black distort .01petals 14 0.05 size 1.8 petalblueinner .88,.01 tvpurplesuperegg .1,.2,2 at .20,.7 size .4 distort .01 tvlimeinner .65,.01 tvyellowinner .45,.01 tvlightyellowsuperegg .1,.2,2 at .3,.7 size .5 distort .01 tvblackinner .85 tvbrowninner .80 tvredinner .75 distort .03 tvorangeinner .70 tvyellowsuperegg .1,.2,2 at .4,.7 size .4 distort .05 tvblueinner .6 distort .2 tvdarkblueinner .4 petalblue

Page 41: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Whimsy

●Resultado

Como muitos parâmetros são numéricos, fica fácil substituir o mecanismo de interação textual, por uma interface gráfica.

Page 42: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Whimsy

●Concluindo...● Muito mais tem de ser adicionado para a

linguagem ser capaz de criar o resto da peça ou outras obras da série.

● Mas já existe um conjunto muito poderoso de primitivas.

● Pode-se obter uma variedade de resultados a partir de código bastante simples.

● Este tipo de energia é algo que muitas vezes não existe até você colocar uma ferramenta como esta DSL nas mãos de um artista e dar-lhe a chance de brincar com os parâmetros e o código.

Page 43: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Whimsy

●Concluindo...● O código poderia facilmente ter sido

implementado em C++ como uma série de chamadas de função com funcionalidade muito semelhante.

– O problema é que teria que recompilar e executar o programa cada vez que fizesse uma mudança.

– Agora, os resultados de uma mudança são exibidos no instante em que é modificado, o que proporciona uma experiência muito mais interativa.

Page 44: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Whimsy

●Concluindo...● Poderia ter implementado Whimsy como

uma extensão de uma linguagem de script poderosa, como Ruby ou Python.

– Isso teria permitido um feedback quase instantâneo, mas a desvantagem é a sintaxe mais restritiva.

● Interface Gráfica– Uma razão para definir uma DSL original é

que ele pode ser mais facilmente estendido a partir de uma ferramenta de edição de texto para uma ferramenta de edição gráfica.

– Muitos parâmetros numéricos poderiam ser alterados através de GUI.

Page 45: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Whimsy

●Concluindo...

– Usado desta forma, uma DSL pode ser um passo intermediário útil no desenvolvimento de ferramentas.

Page 46: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Próximos passos...

●Selecionar um domínio ligado à proposta de trabalho

– Learning Objects, e-Learning, online Teaching

– Por exemplo:● Ensino de Física/Matemática/Lógica...

– Há laboratório experimental– Há pouca material que forneça liberdade

de criação em tempo real● Ensino de Saúde

– Há laboratório experimental (odontologia e anatomia)

– diversas características ainda não exploradas

Page 47: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Próximos passos...

●Modelar o domínio de aplicação

– ODM, por exemplo

●Projetar uma DSL que descreva de forma resumida as aplicações do domínio

●Construir uma biblioteca que implementa as noções de semântica do domínio.

●Revalidar a proposta, antes de fazer integração com o Blender

Page 48: DSL para geração de Objetos de Aprendizagem · Conceituação: A escola tradicional A escola inteligente A disposição da sala - O professor permanece em pé, diante dos alunos,

Obrigado!

[email protected]