UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE CIÊNCIA DA COMPUTAÇÃO

Tamanho: px
Começar a partir da página:

Download "UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE CIÊNCIA DA COMPUTAÇÃO"

Transcrição

1 UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE CIÊNCIA DA COMPUTAÇÃO INTEGRAÇÃO DE UM JUIZ ONLINE DE ALGORITMOS COM O AMBIENTE VIRTUAL DE APRENDIZAGEM MOODLE por Rafael Hernandez Galasso Itajaí(SC), julho de 2013

2 UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE CIÊNCIA DA COMPUTAÇÃO INTEGRAÇÃO DE UM JUIZ ONLINE DE ALGORITMOS COM O AMBIENTE VIRTUAL DE APRENDIZAGEM MOODLE Linguagens de programação por Rafael Hernandez Galasso Relatório apresentado à Banca Examinadora do Trabalho Técnico-científico de Conclusão do Curso de Ciência da Computação para análise e aprovação. Orientador: Benjamin Grando Moreira, M.Eng. Itajaí(SC), julho de 2013

3 To do nothing is sometimes a good remedy Hippocrates

4 RESUMO GALASSO, Rafael Hernandez. Integração de um juiz online de algoritmos com o ambiente virtual de aprendizagem Moodle. Itajaí, f. Trabalho Técnico-científico de Conclusão de Curso (Graduação em Ciência da Computação) Centro de Ciências Tecnológicas da Terra e do Mar, Universidade do Vale do Itajaí, Itajaí, O trabalho trata da integração de um juiz online ao Ambiente Virtual de Aprendizagem Moodle, tendo por objetivo permitir que questões envolvendo a criação de algoritmos sejam avaliadas de forma automatizada, gerando um feedback mais rápido ao aluno e facilitando a correção do professor. Para o aprendizado de algoritmos é de fundamental importância a pratica de exercícios de fixação, estimulando o raciocínio nos alunos. Com isso torna-se uma tarefa difícil para o professor a individualização nas correções dos exercícios propostos pelo mesmo, somado ao fato das turmas dos primeiros períodos de computação apresentarem grande número de alunos. Porém com a popularização e utilização de ambientes virtuais de aprendizagem pelas instituições de ensino para o auxilio e cursos online, surgiu a oportunidade da integração de um juiz online no ambiente Moodle, agregando um processo que executa, compila e compara a saída gerada a partir do algoritmo julgado com um conjunto de saídas previamente cadastrados. O juiz online utilizado neste trabalho foi o disponível no sistema BOCA. Com o sistema desenvolvido estima-se que com um feedback mais rápido para o aluno o interesse pela matéria não decresça e que facilite para o professor a aplicação de exercícios de fixação. Palavras-chave: Algoritmos. Juiz online. Moodle.

5 ABSTRACT The paper deals with the integration of a judge to the online Virtual Learning Environment Moodle, aiming to allow issues involving the creation of algorithms are evaluated in an automated manner, generating a faster feedback to the student and facilitating teacher's corrections. For learning algorithms is of fundamental importance to the practice of focusing exercises, stimulating thinking in students. Thus it becomes a difficult task for the teacher to individualize corrections in the exercises for the same, plus the fact that the classes of the first periods of computing present large number of students. But with the popularity and use of virtual learning environments for education institutions to aid and online courses, the opportunity of integrating a judge in the online environment Moodle, adding a process executes, compiles and compares the output generated from the judged algorithm with a set of outputs previously registered. The judge online used in this work was available in the system BOCA. With the system was estimated that with a faster feedback to the student's interest in the subject and not decreases the teacher to facilitate the application of fixation exercises. Keywords: Algorithms. Online Judge. Moodle.

6 LISTA DE FIGURAS Figura 1. Tela de inserção de código-fonte no ideone Figura 2. Tela com os resultados da compilação do código-fonte Figura 3. Diagrama de caso de uso das funcionalidades do professor Figura 4. Diagrama de Casos de Uso das funcionalidades do aluno Figura 5. Adaptação das tabelas do BOCA Figura 6.Tabela tempaluno e tempprofessor criadas no BOCA Figura 7. Esquema da integração de um juiz online no ambiente moodle Figura 8. Tela de escolha do tipo de questão Juiz Online Figura 9. Tela de criação da questão Figura 10. Tela com o exercício para o aluno Figura 12. Tela de feedback

7 LISTA DE QUADROS Quadro 1. Valores retornados Quadro 2. Descrição do método getlanguages Quadro 3. Criação da trigger tg_atualiza_boca Quadro 4. Criação da função moodle_gatilho_to_boca() Quadro 5. Criação da trigger tg_envia_problemtable Quadro 6. Criação da função tempprofessor_gatilho_problemtable() Quadro 7. Criação da trigger tg_atualiza_boca_aluno Quadro 8. Criação da função moodle_gatilho_to_boca_aluno() Quadro 9. Criação da trigger tg_envia_runtable Quadro 10. Criação da função tempaluno_gatilho_runtable() Quadro 11. Criação da trigger tg_atualiza_resposta_aluno Quadro 12. Criação da função boca_to_moodle_resposta()

8 LISTA DE ABREVIATURAS E SIGLAS API BOCA GCC HTTP IDE MOODLE PC2 SBC SOAP SQL TTC UML UNIVALI WSDL XML Application Programming Interface BOCA Online Contest Administrator GNU Compiler Collection Hypertext Transfer Protocol Integrated Development Environment Modular Object-Oriented Dynamic Learning Environment Programming Contest Control System Sociedade Brasileira de Computação Simple Object Access Protocol Structured Query Language Trabalho Técnico-científico de Conclusão de Curso Unified Modeling Language Universidade do Vale do Itajaí Web Services Description Language Extensible Markup Language

9 SUMÁRIO 1 INTRODUÇÃO PROBLEMATIZAÇÃO Formulação do Problema Solução Proposta OBJETIVOS Objetivo Geral Objetivos Específicos Metodologia Estrutura do trabalho FUNDAMENTAÇÃO TEÓRICA Algoritmos Problemas no ensino de algoritmos MOODLE Características do Moodle Módulo de questionário do Moodle Juízes online PC2(Programming Contest Control System Sistema de Controle de Concurso de Programação) Mooshak BOCA online Ferramentas de IDE e debugging online Ideone Integração de uma IDE e debugging online Trabalhos similares Um mecanismo para correção automática de exercícios práticos de programação introdutória Adaptação de um corretor automático de código para auxílio da atividade de exercício e prática no ensino de programação Corretor automático de exercícios programa para auxílio no ensino à distância Proposta de um laboratório virtual para aprendizagem de Prolog desenvolvimento DESCRIÇÃO DO SISTEMA Análise de Requisitos Requisitos Funcionais Requisitos não Funcionais DIAGRAMAS DE CASO DE USO Caso de Uso do professor Caso de Uso do aluno BANCO DE DADOS... 43

10 3.5 Integração do juiz online do BOCA INTERFACES DO SISTEMA Telas do professor Telas do aluno CONCLUSÕES APÊNDICE A.FUNÇÕES DO DBLINK APÊNDICE B.FUNÇÕES COMENTADAS DAS CLASSES TESTE.PHP E RENDERER.PHP... 71

11 11 1 INTRODUÇÃO Por definição, algoritmo é uma sequência de passos bem definida em uma ordem específica transformando uma entrada fornecida em uma saída, ou também pode-se dizer que algoritmo é uma ferramenta para resolver problemas bem especificados (CORMEN, 2002). Contudo, o termo algoritmo não surgiu a partir da computação, podendo ser encontrado em outras áreas, bem como, Administração e Engenharia. Atualmente o termo algoritmo é bastante associado à computação. Já na computação o seu uso está associado à criação de um programa de software (MEDINA, 2005). Segundo Tobar et. al. (2001 apud MOREIRA; FAVERO, 2008), é indispensável para o estudante de computação, dentre outras disciplinas, o estudo de programação que tem como fundamento o ensino de algoritmos. Algoritmos habilita os indivíduos a usarem lógica de programação na resolução de problemas, sendo estes de grande relevância em disciplinas posteriores e mais avançadas. A reprovação é um reflexo da dificuldade do individuo no aprendizado de programação, sendo que o mau desempenho não se limita apenas nessa disciplina, mas sim em todas as disciplinas que tomam por base a programação. Segundo Prior (2003 apud MOREIRA; FAVERO, 2008,pg.1): A habilidade de programação de computadores não pode ser adquirida sem um significante esforço em atividades práticas de laboratório. Neste contexto, muitas ferramentas foram propostas para auxiliar o educador no ensino de programação na prática. Algoritmos é uma disciplina fundamental para o ensino de programação, e se faz presente em outros cursos, como os de engenharia. O uso de algoritmos pode ser constatado em outras modalidades como a maratona de programação, exigindo dos alunos algumas aptidões tais como princípios de lógica e a resolução de problemas através da interpretação dos algoritmos descritos. Essa interpretação da solução aparece como um dos principais fatores para a desmotivação na disciplina, culminando assim em altos índices de reprovação e evasão por parte dos alunos, principalmente no curso de computação (RAPKIEWICZ, 2006). A maratona é um evento promovido e organizado em parceria com demais entidades, mas de forma preponderante pela Fundação Carlos Chagas, destinada aos alunos de graduação e de pós-graduação na área de Computação e Tecnologia (FERREIRA, 2012).

12 12 Os fins almejados pela maratona são estimular em seus participantes a capacidade de trabalhos em equipe, criatividade e habilidade de resolução de problemas em um ambiente sob pressão. Os problemas apresentados envolvem a resolução de algoritmos de uma forma mais eficaz e no menor tempo possível. Na competição um dos critérios de escolha do vencedor é o tempo em que as respostas são enviadas, fazendo-se uso de um juiz online (FERREIRA, 2012). Partindo disso o Juiz online faz o papel de um avaliador de algoritmos. Uma vez submetido o problema ele analisará um conjunto de dados de entrada e saída, comparando com as respostas esperadas. Logo em seguida, as aprovações são feitas pelo menor tempo possível atestando se a resposta encontrada está certa ou errada. Caso esteja errada o participante poderá repara-la, e enviar novamente (CAMPOS, 2004). A utilização do juiz online não se limita apenas em competições, mas também em ambientes de ensino virtuais como o Moodle (Modular Object-Oriented Dynamic Learning Environment - Ambiente de Aprendizagem Dinâmico Modular Orientado a Objetos). Muitas instituições de ensino que procuram modernizar seu sistema e facilitar o acesso ao conhecimento estão optando pelo uso do ambiente Moodle, que surge usando o conceito construcionista social de educação. São pacotes de software tendo utilidade para profissionais da educação e programadores, abordando o ensino on-line, em produções de cursos e sites na internet (MOODLE, 2012a). Por se tratar de um software Open Source oferece permissões de cópia, modificação e uso, contanto que seja mantida a licença original, os direitos autorais e o fornecimento do código-fonte aos demais usuários (MOODLE, 2012a). Conforme supracitado o ambiente acadêmico está cada vez mais dinâmico, sendo que este trabalho visou à criação de um tipo de questão para o módulo de questionário no Moodle, com a finalidade de professores criarem problemas para seus alunos que envolvam a resolução de algoritmos. No envio da resolução, por parte do aluno, um juiz online compila o código com um conjunto de casos de testes, sendo que cada caso de teste contém as entradas esperadas pelo programa que são cadastrados pelo professor, e compara com um conjunto de saída padrão, também cadastrado pelo mesmo. Estando o conjunto de saída padrão idêntico ao conjunto de saída gerado pelo algoritmo do aluno a resolução é considerada correta. Isso permite que haja um feedback imediato sobre a solução enviada pelos estudantes.

13 13 Assim com uma resposta imediata o aluno irá manter o interesse na matéria lecionada e com isso o rendimento será maior. O trabalho então busca utilizar os princípios e mecanismo utilizados na maratona de programação para motivar os alunos no aprendizado de algoritmos. Para a integração do juiz online, no ambiente Moodle foi criado um tipo de questão no módulo de questionário do mesmo. Esse questionário especifico, com campos para os dados de entrada dos problemas que serão cadastrados pelo professor foi feito em PHP. Já na parte de banco foram criados 5 gatilhos (triggers) que servem para transferência de informações. O cadastro de questões se da através do ambiente Moodle, onde cadastrada uma questão pelo professor, a mesma é armazenada em seu banco de dados. Já com a questão cadastrada no banco de dados do ambiente Moodle, um gatilho ao perceber uma mudança ou atualização em seus registros, é acionado levando as informações dos problemas para o banco de dados do sistema BOCA. Onde foi criada uma tabela temporária, que serve como ponte para a tabela de cadastro do problemas. O segundo gatilho é acionado quando essa tabela temporária recebe os dados, adicionando os mesmos na tabela de cadastro do problemas no sistema BOCA. Portanto a medida que o aluno, estiver respondendo um problema de algoritmos no ambiente Moodle, ao envia-lo, os seus dados serão armazenados no Moodle e o gatilho se encarregará de enviar essas informações para o banco de dados do sistema BOCA, onde outra tabela temporária foi criada. A tabela temporária do aluno ao receber os dados aciona outro gatilho que irá guardar os dados na tabela referente a solução dos problemas para ser julgado. Com isso o ultimo gatilho será acionado quando um processo do BOCA chamado autojuding fizer a sua função, que é verificar de minuto em minuto se há nas tabelas do BOCA algo para ser julgado. Havendo algum algoritmo para ser julgado, o mesmo irá julgar. O funcionamento para julgar um algoritmo inicia a partir da compilação do algoritmo criado pelo aluno, e com o conjunto de casos de testes, sendo que cada caso de teste contém as entradas esperadas pelo programa criados pelo professor junto ao problema, e que gera uma saída. Essa saída é comparada com o conjunto de saídas padrão, cadastrado junto com o

14 14 problema pelo professor, gerando um possível acerto ou erro. Esse possível acerto ou erro é enviado para o banco de dados do Moodle e com isso gerando o feedback imediato ao aluno. 1.1 PROBLEMATIZAÇÃO Formulação do Problema Com um grande número de alunos em disciplinas de algoritmos e programação a falta de individualização para a correção de trabalhos e exercícios propostos pelo professor são fatores para o crescimento de desistência na matéria. Os primeiros períodos do curso de Ciência da Computação são de suma importância para o desenvolvimento restante do curso, pois é onde a noção de logica é construída com linguagens de programação desde C, C++ e posteriormente JAVA. Com isso os alunos das disciplinas iniciais do curso acabam se frustrando à medida que criam algoritmos, pois sem saberem ao menos se o que estão construindo atende o esperado deixam de lado exercícios que são essenciais para o aprendizado de algoritmos e consequentemente desistem da matéria e do curso Solução Proposta A integração de um juiz online no ambiente virtual Moodle, possibilitando assim a pratica de exercícios de algoritmos. O juiz gera um feedback imediato baseado na comparação da saída gerada pelo juiz com a saída padrão que o professor irá cadastrar. O aluno ao praticar os exercícios recebe um feedback imediato, de um possível acerto ou erro.

15 OBJETIVOS Objetivo Geral Adicionar no ambiente virtual Moodle o recurso de juiz online de algoritmos de programação Objetivos Específicos Pesquisar trabalhos similares; Pesquisar as ferramentas a serem utilizadas: o Pesquisar diferentes juízes online; e o Pesquisar ferramentas de IDE e debugging online. Pesquisar os conceitos necessários à implementação do sistema. Compreender a estrutura do ambiente Moodle para a integração do juiz online; Modelar a ferramenta para as funcionalidades de aluno e professor; Desenvolver as funcionalidades modeladas; Documentar. 1.3 Metodologia A metodologia utilizada para se alcançar os objetivos do trabalho proposto envolveu pesquisa sobre trabalhos similares que tivessem integração com o ambiente Moodle ou que fossem Web, mas que tivessem exercícios com correções de forma online. Assim foram encontrados os três principais: Adaptação de um avaliador automático de código para auxílio da atividade de exercício e prática no ensino de programação (SOUZA, 2009), Avaliador automático de exercícios programa para auxílio no ensino à distância (CUNHA et. al., 2006), Proposta de um laboratório virtual para aprendizagem de Prolog (SANTOS NETO, 2007) e Um mecanismo para correção automática de exercícios práticos de programação introdutória (PELZ, 2012). Para encontrar ferramentas que possibilitassem o feedback imediato foram analisados diversos juízes online que fizessem a comparação entre a saída padrão do professor com a saída gerada pelo mesmo. Alguns encontrados são: BOCA online Campos (2004), PC2 (Programming Contest Control System Sistema de Controle de Concurso de Programação) PC2 (2012a) e Mooshak (2012). Porém foi estabelecido um critério para a escolha: o sistema

16 16 deveria ser Open Source, tornando assim inviável a utilização do PC2 (não tem o seu código aberto), restando apenas o Mooshak e o BOCA online como opção. Com pouca documentação existente do Mooshak, tornou-se viável e única a utilização do BOCA online Algumas ferramentas de IDE e debugging online foram pesquisadas. Muitas encontradas não se enquadraram no requisito mínimo estipulado, que seria a execução dos programas de forma online e que linguagens como C, C++ e Java, fizessem parte das linguagens do programa. Dentre alguns IDE s pesquisadas estão: Coderun (CODERUN, 2012), Codepad (CODEPAD, 2012), Online Compiler (ONLINE COMPILER, 2012), Compilr (COMPILR, 2012) e Ideone (IDEONE, 2012d). Porém a única que se enquadrou foi a Ideone por executar de forma online os programas e ter C, C++ e Java como linguagens em sua lista, além de ser de código-aberto e fácil integração a outros sistemas. Durante a pesquisa alguns conceitos foram encontrados bem como: Algoritmos (SOUZA, 2005), e Problemas no ensino de algoritmos (RODRIGUES JUNIOR,2008; RAPKIEWICZ,2006; SIEBRA,2009), que de forma positiva mostrou a importância de exercícios de algoritmos em sala de aula para o aprendizado e também a falta de um feedback nesses exercícios sendo como um dos fatores desmotivacional. 1.4 Estrutura do trabalho Este documento está estruturado em quatro capítulos. O Capítulo 1, Introdução, apresentou uma visão geral do trabalho. No Capítulo 2, Fundamentação Teórica, é apresentada uma revisão bibliográfica sobre trabalhos similares, o que é algoritmos, problemas no ensino de algoritmos, assim como uma análise a respeito do ambiente moodle e sua estrutura, juizes online e ferramentas de IDEs e debugging online. O Capítulo 3 apresenta o projeto detalhado do sistema desenvolvido, incluindo sua especificação e a sua modelagem em UML. O capítulo também discute como foi implementado o sistema proposto, apresentando a metodologia utilizada no desenvolvimento. Concluindo, no Capítulo 4, apresentam-se as conclusões, onde são abordados os resultados, mudanças de algumas estratégias de desenvolvimento do projeto, alterações de cronograma, dentre outros.

17 17 2 FUNDAMENTAÇÃO TEÓRICA Este capítulo trata dos seguintes temas: Algoritmos, Problemas no Ensino de Algoritmos, Ambiente Moodle, Juízes Online, Ferramentas de IDE e Debugging Online, Trabalhos Similares. Para o desenvolvimento do sistema proposto foi estudada a estrutura do ambiente Moodle, a fim de adaptá-lo de forma a atender os requisitos necessários para o desenvolvimento do trabalho proposto, e que também seja de fácil uso para os usuários. O funcionamento do juiz online também foi estudado, pois o sistema depende principalmente da sua integração com o ambiente Moodle, para que haja um feedback imediato dos problemas resolvidos. Os trabalhos similares foram analisados para que possíveis sistemas já criados pudessem contribuir de alguma forma no desenvolvimento e podendo assim reutilizar o que já se foi criado em seu desenvolvimento Algoritmos Uma definição formal de algoritmos é um conjunto de instruções ou passos bem definidos para a solução de um problema (SOUZA, 2005). É necessária a extração, no problema, de informações fundamentais na construção de um algoritmo, sendo nessa etapa a modelagem do algoritmo, resultante de uma abstração mental. Após abstrair uma possível solução do problema, resultando assim em como resolver o problema, deve-se descrever em passos bem definidos o processo para se chegar à solução. Mas somente os passos não resolvem o problema, é necessário que seja montada uma sequencia logica para a execução do problema, tornando assim de fato a solução completa (SOUZA, 2005) Problemas no ensino de algoritmos Para o desenvolvimento de programas de computador os principais fundamentos são obtidos em disciplinas como algoritmos e programação, que tem por finalidade habilitar alunos no desenvolvimento e estruturação de algoritmos. Em sua tradicional apresentação do conteúdo da disciplina para os alunos todas as áreas do conhecimento são abordadas como a

18 18 teoria, apresentação de exemplos e proposição de exercícios práticos que inicialmente são simples e gradativamente, conforme o adiantamento do conteúdo, aumentam sua complexidade (RODRIGUES JUNIOR, 2004). Com um índice elevado de reprovação e desistência em instituições de ensino no Brasil, a disciplina de algoritmos tem sido foco dos professores, preocupados com a melhoria no processo de ensino e a qualidade oferecida para os alunos, mostrando assim necessidade de algumas alterações tanto na parte didática como na metodológica da apresentação (RODRIGUES JUNIOR, 2004). A falta de interesse pela disciplina por parte do aluno deve-se ao fato dos métodos tradicionais de ensino utilizados por professores não promoverem o interesse no aluno. Nos primeiros períodos do curso, principalmente para alunos que não atuam de forma profissional na área da informática, acaba não ficando clara a importância de certos conceitos e conteúdos para sua formação acadêmica, conteúdos esses que acreditam não serem muito uteis na pratica. Assim o desafio não fica a cargo só da necessidade de motivação, mas também de mostrar que a disciplina e seu conteúdo são importantes e merecem cuidados e afeição especial (RODRIGUES JUNIOR, 2004). Outro problema encontrado ainda relacionado à motivação é a do aluno julgar o grau de dificuldade da disciplina, esperando por um obstáculo difícil de ser vencido ou um problema. Às vezes muitos professores reforçam essa ideia, prometendo realizar avaliações complicadas e fazendo com que a avaliação perca o seu papel, que é o de avaliar (RODRIGUES JUNIOR,2004). O segundo problema encontrado no método tradicional de ensino na disciplina é o de avaliar. As avaliações acabam sendo uma ação isolada, especial, com data marcada, sendo o seu objetivo único de aprovação. Isto desenvolve no aluno um receio, prejudicando assim seu aprendizado na disciplina (RODRIGUES JUNIOR, 2004). O problema visto por Rapkiewicz (2006), por parte do aluno, é com relação a verificação se o algoritmo que foi construído realmente funciona como esperado. Testes de mesa costumam ser empregados nessa etapa da disciplina para a verificação se o algoritmo desenvolvido pelo mesmo é eficaz. Um passo a passo deve ser executado pelo aluno para verificar a funcionalidade de sua solução. Isso além de desmotivar o aluno traz um novo problema, que seria o ato de seguir o passo a passo. Algumas habilidades são destacadas no processo de desenvolvimento de algoritmos, tais como, resolver problemas e mostrar o passo a passo na resolução dos mesmos. Para o desenvolvimento de algoritmos são necessários em suas atividades habilidades como

19 19 raciocínio, compreensão e de representação. Muitos alunos na criação de algoritmos para a resolução de problemas não conseguem desenvolvê-lo, sendo problemas que são considerados fáceis do ponto de vista das estruturas lógicas envolvidas. Essas observações dão indícios da dificuldade dos alunos com a resolução de problemas bem como o entendimento do problema e o passo a passo para resolvê-lo (SIEBRA,2009). Algumas dificuldades são da natureza da disciplina de algoritmos, não sendo do aluno ou professor. De acordo com SIEBRA (2009) algumas destas dificuldades são: O grande numero de alunos; Dificuldade do professor compreender a logica do aluno; Turmas heterogêneas; Motivar os alunos. Por se tratar de uma disciplina oferecida nos primeiros períodos do curso de computação é formada por alunos recém saídos do segundo grau, alunos repetentes ou transferidos de outras instituições. Desta forma há um grande numero de alunos matriculados, dificultando a individualização de sua avaliação e o numero de avaliações propostos pelo professor. Por falta de tempo hábil em um semestre para a aplicação de diversos trabalhos valendo nota o professor se reserva ao direito de não aplica-los, por não conseguir corrigir em pouco tempo tudo (SIEBRA,2009). A dificuldade do professor em compreender a lógica do aluno deve-se ao fato de ser difícil mudar um raciocínio logico depois de construído, e tentar construir outra forma de resolução de problemas. Isso acarreta em uma difícil tarefa para o professor de compreender a lógica especifica de cada aluno que muitas vezes acabam não sendo bem sucedidos na construção de soluções de algoritmos. Isto atrapalha o desenvolvimento do professor em provas, tendo que elaborar provas com mais atenção e requerendo mais tempo nas correções das soluções de algoritmos (SIEBRA, 2009). Para gerir a forma de ensinar, agradando ou até mesmo tornando mais atrativa para os diferentes grupos, o professor encontra um grande desafio. Por serem turmas heterogêneas, existem diferentes níveis de conhecimento entre os alunos e ritmo de aprendizagem. Alguns possuem um contato prévio antes de ingressar no curso ou até mesmo trabalham na área, enquanto muitos nunca tiveram contato com algoritmos e programação. Mesmo alunos com níveis equivalentes mostram diferentes maneiras de raciocínio sendo estritamente pessoal e

20 20 único, diferenciando cada individuo dos demais. Essa forma única e pessoal de pensar e raciocinar gera diferentes soluções de um mesmo problema (SIEBRA, 2009). Em muitas dificuldades encontradas a motivação dos alunos fica a cargo do professor, fazendo com que o interesse pela matéria não se vá, não acarretando em desistência da disciplina. Muitos meios podem ser usados para que o professor consiga deixar o aluno interessado na matéria, como instigar o aluno para que busque outras formas de soluções de problemas ou técnicas novas. É importante que o professor deixe explícita a importância da matéria e o seu uso em futuras matérias ou até mesmo na vida profissional (SIEBRA, 2009). Com o sistema desenvolvido acredita-se que se o aluno tiver um feedback imediato em exercícios práticos seu interesse irá crescer, o que pode influenciar de forma positiva na disciplina. 2.2 MOODLE O Moodle é um projeto que foi desenvolvido e ainda liderado por Martin Dougiamas, software Open Source que é fornecido gratuitamente, sendo que seu uso se limita a copia, modificação e uso desde que a sua modificação (código-fonte) seja compartilhada com a comunidade Moodle. É um software visando à produção de cursos para a internet, com sua filosofia construcionista social de educação. Sua utilidade acaba sendo principalmente para profissionais da educação e programadores. (MOODLE, 2012a). A sua instalação pode ser feita em qualquer computador/servidor que faça a execução da linguagem PHP e que comporte base de dados do tipo SQL (MOODLE, 2012a). O sistema é focado em segurança o tempo todo, sendo que os seus formulários são todos checados, os dados validados e os cookies codificados. É um sistema adequado para aulas online, complementando a aprendizagem presencial (MOODLE, 2012b) Características do Moodle De uma forma geral o ambiente Moodle é constituído de uma arquitetura modular, um sistema simples, possibilitando sua instalação em qualquer plataforma que suporte o PHP. Os cursos podem ser categorizados e pesquisados, tendo seu foco em total segurança (MOODLE,2012b). Segundo Moodle (2012b) as principais características do Moodle são:

21 21 Administração do site: o site tem como administrador um usuário que é definido em sua instalação. Algumas extensões ou plugins dão ao administrador a autonomia para a modificação no tema (fonte e aparência) podendo também adicionar módulos com atividades e pacotes de idioma que permite a total compatibilidade com qualquer idioma; Administração dos usuários: a administração dos usuários tem por objetivo minimizar o envolvimento por parte do administrador, mas mantendo a segurança. Algumas extensões existem para auxiliar no mecanismo de autenticação, com módulos de autenticação. Para a autenticação os alunos criam suas contas de acesso, havendo uma verificação dos s para confirmação. A conta é única para todo o servidor, sendo que cada conta pode ter diferentes tipos de acessos.para a criação de curso e de professores é necessário uma conta de administrador que faz esse controle. Já a conta de um criador de cursos somente permite criar cursos e dar aula em cada curso. Os usuários também tem a opção de selecionar um idioma desejado na interface do ambiente Moodle; Administração de curso: a administração do curso tem a possibilidade da existência de um professor pleno, tendo total controle sobre um curso e podendo até restringir outros professores. Alguns formatos do curso existentes são semanal e por tópico. Ainda na administração do curso existe a atividade, sendo sua composição, fóruns, jornais, questionários, recursos, pesquisas de opinião, pesquisas, tarefas e chats. Os professores podem personalizar escalas para serem usadas na hora de dar a nota para tarefas e fóruns; Módulo Tarefa: neste módulo as tarefas podem conter datas para o seu cumprimento e uma nota máxima. Os alunos também podem enviar suas tarefas, sendo que tarefas atrasadas podem ser permitidas, porém o tempo de atraso será mostrado para o professor. As tarefas podem conter uma avaliação da classe; Módulo Chat: neste módulo existe uma interação via texto, também aceitando o envio de imagens. As sessões são todas documentas para possível visualização posterior; Módulo Pesquisa de Opinião: este módulo basicamente serve para uma votação ou até mesmo para a obtenção de um feedback de cada aluno. O professor tem acesso e visualização de quem escolheu o que;

22 22 Módulo Fórum: existem diferentes tipos de fóruns como fórum para professores, news e fórum para uso geral. As discussões podem ser vistas começando pelas mais recentes ou pelas mais antigas; Módulo Questionário: podem ser escolhidos diferentes tipos de questões, além de permitir mostrar um feedback com as respostas corretas. Como esse módulo é de grande importância para o sistema desenvolvido será detalhado mais adiante; Módulo Recursos: neste módulo existe um suporte para qualquer conteúdo eletrônico como Word, Powerpoint, Flash, Vídeo e Sons. Existe a possibilidade de envio de arquivos que são administrados no servidor, para os conteúdos que são externos, por exemplo, da internet eles podem ser interligados ou incluídos na interface do curso; Módulo Pesquisa de Avaliação: o módulo pesquisa de avaliação é utilizado como análise das classes nos cursos online. Os seus dados podem ser baixados no formato de uma planilha Excel ou até mesmo arquivos de texto; e Módulo Laboratório de Avaliação: já o módulo laboratório de avaliação permite que parceiros façam avaliações de documentos, sendo administrado pelo professor que pode dar notas na avaliação feita pelos alunos. Diversos critérios de avaliação são suportados, havendo também a possibilidade de documentos de exemplo fornecidos pelo professor, que irão servir para os alunos praticarem a avaliação Módulo de questionário do Moodle Dentre alguns módulos existentes na estrutura do ambiente virtual Moodle foi abordado nesse trabalho o módulo questionário, mostrando sua estrutura e possibilitando a integração de um juiz online e uma IDE e debugging online. O módulo de questionário permite ao professor criar questões que serão armazenadas em uma base de dados, para poderem ser utilizadas posteriormente, tanto na disciplina para a qual ele criou bem como podendo ser reutilizada em outros questionários ou até mesmo disciplinas. Os questionários são avaliados de forma automática, havendo também a possibilidade do professor definir um prazo limitado de disponibilidade do questionário. Quando exceder o prazo o questionário se torna indisponível, ficando a critério do professor se os questionários podem ser respondidos várias vezes, e ainda podem mostrar o feedback e/

23 23 ou as respostas. Alguns tipos de questão são padrão dos questionários, segundo (MOODLE,2012b): Questionários de múltipla escolha com resposta única ou respostas múltiplas; Questões de Resposta Breve (palavras ou frases); Questões Verdadeiro-Falso; Questões de associação; Questões aleatórias; Questões numéricas (com escalas permissíveis); Questões com resposta embutida (estilo fechado) com respostas dentro de passagens do texto; Texto e gráficos descritivos embutidos. 2.3 Juízes online Foram pesquisados diferentes juízes online a fim de proporcionar a realização do projeto proposto. Dentre os pesquisados houve uma seleção, eliminando de antemão alguns juízes que não fossem Open Source, como o PC2que não atendeu a esse requisito. Para a escolha do juiz online levou-se em consideração, além do sistema ser Open Source, que sua documentação fosse disponível e de fácil acesso. E o que mais se enquadrou foi o BOCA PC2(Programming Contest Control System Sistema de Controle de Concurso de Programação) Sistema projetado com o intuito de dar suporte na operação do concurso de programação, podendo ser utilizado em uma variedade de ambientes de computação. Permite que os competidores (equipes) submetam programas através de uma rede para os juízes da competição, que irão recompilar o programa submetido, executá-lo, ver o código fonte e/ou resultado de execução, e enviar uma resposta de volta à equipe. O sistema também tem um juiz automático, modo em que o software é quem realiza o julgamento, em vez de juízes humanos (PC2, 2012b).

24 24 O sistema registra automaticamente o momento da submissão do algoritmo enviado e o armazena, exibindo a classificação atual do concurso de vários modos, e permite que o juiz recupere e execute novamente algoritmos arquivados. Permite também interação com os juízes referentes a duvidas e esclarecimentos. O PC2 suporta manter competições simultâneas em vários sites por transmissões de informações automáticas do concurso entre locais, gerando assim um grande concurso e mostrando em cada local remoto o placar (PC2, 2012b). Uma grande variedade de opções configuráveis permite ao administrador da competição ajustar o sistema para as operações especificas da competição, como número de equipes, problemas, linguagens de programação no concurso e o método de pontuação a ser aplicado (PC2, 2012b). O PC2 é um sistema construído em Java, projetado e distribuído para gerenciar e controlar concursos de programação em tempo real. Suporta múltiplos sites de concursos, sendo uma plataforma de operações heterogênea, incluindo uma mistura de Windows e Unix em um mesmo concurso, atualizações dinâmicas em tempo real do estado do concurso e a classificação para todos os sites (PC2, 2012c). O sistema opera através de uma arquitetura cliente-servidor, onde cada site em um concurso é executado um único servidor PC2 (PC2, 2012c). Contudo o sistema PC2 não é um projeto Open Source, assim não existe uma forma de obter o seu código-fonte para modifica-lo ou fazer uso em outro sistema (PC2, 2012d) Mooshak Mooshak é um sistema de gestão de competição de programação na Web. Algumas características básicas sobre o Mooshak incluem um juiz automático de algoritmos apresentados, respostas as perguntas de esclarecimento sobre descrições de problemas, reavaliação de programas e acompanhamento de impressões (MOOSHAK, 2012). Mooshak suporta diferentes tipos de competição, em especial aquelas com base em regras ICPC. Também pode ser facilmente estendido para novos tipos de concursos (MOOSHAK, 2012). O sistema foi inicialmente concebido para concursos, mas está cada vez mais sendo usado em cursos de programação por dar feedback instantâneo sobre aulas práticas, por receber e validar tarefas a submissões e por pré-avaliar e marcar tarefas (MOOSHAK, 2012).

25 BOCA online Software feito em PHP que tem interação com as equipes via navegador, foi desenvolvido com o objetivo de controlar competições no modelo da Maratona de Programação da SBC. (CAMPOS, 2011). O sistema BOCA conta com um juiz online que ajuda no processo de julgar uma submissão, fornecendo um script PHP. Uma vez submetido o problema pelas equipes o script é capaz de executar comandos de compilar, executar e comparar a saída gerada pelos times com a saída correta. Não é essencial para o sistema o processo de julgar de forma automatizada, já que os juízes podem baixar do sistema BOCA todos os arquivos para avaliar uma submissão (CAMPOS, 2011). Mesmo com o juiz que corrige de forma automática, a idéia do sistema não consiste em automatizar o sistema de avaliação as submissões, mas sim um apoio para os juízes fazerem o seu trabalho. Sendo assim o juiz automático fornece ao juiz os dados gerados pelos scripts ao tentar compilar, executar e comparar os resultados. Apresentados de uma forma formatada durante o julgamento, os dados podem auxiliar na hora do juiz julgar a avaliação submetida (CAMPOS, 2011). 2.4 Ferramentas de IDE e debugging online O objetivo deste capítulo é apresentar algumas ferramentas de IDEs existentes priorizando as que abordam pelo menos linguagens como C, C++ e Java, e que mostrem a execução dos programas de forma online. Foram pesquisadas 6 ferramentas de IDEs, são elas: Coderun (CODERUN, 2012); Codepad (CODEPAD,2012); Py I/O (PY I/O, 2012); Online Compiler (ONLINE COMPILER, 2012); Compilr (COMPILR, 2012); e

26 26 Ideone (IDEONE, 2012a). As ferramentas Coderun, Codepad e Py I/O foram desclassificadas por não se enquadrarem nos requisitos mínimos estipulados da linguagem de programação suportada pelo sistema. Mesmo qualificadas no requisito mínimo de linguagem de programação suportada pelo sistema a ferramenta Online Compiler acabou sendo descartada por não permitir a execução dos programas de forma online. Já a ferramenta Compilr atendia aos dois requisitos preestabelecidos, mas a sua integração com o ambiente virtual Moodle não seria possível. Dessa forma a ferramenta Ideone acabou sendo a escolhida por atender aos requisitos mínimos solicitados e será analisada a fim de entende-la para melhor aplica-la ao projeto proposto Ideone Projetado para programadores, o Ideone é uma mini IDE e ferramenta de depuração online. Permite compilar e executar o código online em mais de 40 linguagens de programação dentre elas C, C++ e Java. O usuário seleciona a linguagem de programação desejada, digita o seu código fonte e entrada dos dados na caixa de texto especifica, escolhe se quer executar o código e escolhe sintaxe highlight.(ideone, 2012a). Por ser uma ferramenta destinada a usuários domésticos, instituições educacionais e pequenas empresas, facilita o seu uso nesse projeto, estando disponível em seu site a Ideone API com um webservice e seu WSDL (IDEONE, 2012b). O sistema disponibiliza para seus usuários gratuitos 1000(mil) submissões por mês. Ultrapassando essas submissões gratuitas o usuário ainda tem a possibilidade de comprar mais um conjunto de submissões, com preços variados (IDEONE, 2012c): submissões por 10 dólares que prorroga a validade de todas as suas submissões pagas até 60 dias a partir da data da compra submissões para 50 dólares que prorroga a validade de todas as suas submissões pagas até 120 dias a partir da data da compra.

27 submissões para 140 dólares que prolongam a validade de todas as suas submissões pagas até 180 dias a partir da data da compra submissões para 450 dólares prorroga a validade de todas as suas submissões pagas até 365 dias a partir da data da compra. A Figura 1 mostra a esquerda uma lista de possíveis linguagens a ser escolhida, já no centro existe uma caixa de texto para a inserção do código-fonte, abaixo uma caixa para a entrada de dados, um campo para habilitar ou desabilitar sintaxe highlight aparece no canto direito. Figura 1. Tela de inserção de código-fonte no ideone. Fonte: Ideone (2012a). A Figura 2 mostra a ferramenta Ideone recebendo valores de entrada, e após a execução do código-fonte gera uma saída, que é apresentada conforme o algoritmo criado

28 28 Figura 2. Tela com os resultados da compilação do código-fonte. Fonte: Ideone (2012a) Integração de uma IDE e debugging online Como o ambiente Moodle é online e o sistema desenvolvido utiliza o mesmo, é interessante a integração de uma IDE e debugging online pois assim o aluno a medida que cria as suas soluções pode testa-las para poder enviar novamente. Alguns métodos que podem ser usados, bem como a interpretação dos dados retornados por eles serão mostrados para melhor entendimento de sua API (IDEONE, 2012d): O WebService; Métodos; Variáveis, valores, códigos e constantes. Informações gerais do webservice, o Ideone.com é um serviço web padrão sendo acessado via o protocolo SOAP. SOAP (Simple Object Access Protocol Protocolo de Acesso Objeto Simples) é um protocolo que fornece uma comunicação entre aplicações rodando em diferentes sistemas operacionais, com diferentes tecnologias e linguagens de programação. Essa comunicação é feita através de HTTP, sendo o mesmo suportado por todos os navegadores de internet e servidores (SOAP,2012). As funcionalidades do webservice permitem (IDEONE, 2012d):

29 29 fazer upload de código-fonte onde o mesmo pode ser compartilhado na Internet; execução do código-fonte no servidor com dados de entrada, podendo escolher entre mais de 40 linguagens de programação; permite fazer o download dos resultados da execução como saída, erro padrão, informação de compilação, tempo de execução e uso de memória. Para fazer o uso do webservice o algoritmo cria uma pasta e executa no servidor, sendo um processo bem simples como visto a seguir (Ideone, 2012d). Primeiro utilizando o método getlanguages para recuperar uma lista de linguagens de programação disponíveis; Após o primeiro estagio com o método createsubmission cria-se uma pasta; Na verificação se o Ideone terminou a execução do programa usa-se o método getsubmissionstatus. Caso o programa tenha terminado, vá para o próximo passo. Caso o programa não estiver terminado repetir o processo após esperar 35 segundos; O uso do método getsubmissiondetails para recuperar informações detalhadas sobre a execução do programa; Ir para o passo 2 caso não queira fazer nada ou queira executar outro programa. Alguns métodos bem como getsubmissionstatus e getsubmissionsdetails não são obrigados a sua chamada. Se apenas a tarefa for colocar código-fonte no ideone, então apenas o método createsubmission será chamado (IDEONE,2012d). Em cada método existem parâmetros comuns, sendo que cada função apresenta pelo menos dois parâmetros. Desta forma os parâmetros que são encontrados são usuários e senha (IDEONE,2012d).

30 30 Para valores retornados os métodos retornam um conjunto especifico de pares, formando uma matriz associativa onde encontra-se as chaves como strings e os valores sendo de vários tipos, tais como visto no Quadro 1 (IDEONE,2012d). Chave Tipo de Valor Valor de amostra error string OK/AUTH_ERROR/... chave2 algumtipo algumvalor Quadro 1. Valores retornados. Fonte: adaptado de Ideone (2012d). O par [error,errorcode] está sempre incluso na matriz retornada. Se o erro!= OK, significa que algo deu errado e que alguns pares que seriam retornados pelo método pode não aparecer na matriz. As variáveis status e resultado que são retornadas dos métodos getsubmissionstatus e getsubmissiondetails merecem uma melhor explicação. A execução do programa é especificada pelo Status, seus valores são interpretados conforme o Quadro 2 Valor Significado <0 Espera de compilação a pasta aguarda execução na fila. 0 Feito o programa termina. 1 Compilação o programa está sendo compilado 3 Em execução o programa está sendo executado. Quadro 2. Descrição do método getlanguages. Fonte: adaptado de Ideone (2012d). Ao usar o método getsubmissionstatus e o status não ser igual a 0 deve-se esperar de 3 a 5 segundos para chamar o método novamente.

31 Trabalhos similares Muitos trabalhos sobre esse assunto estão surgindo devido ao dinamismo que ambientes virtuais de aprendizagem podem proporcionar, bem como a utilização de recursos para esses ambientes como, por exemplo, exercícios de fixação propostos. Ainda existem formas de integralizar outras funções, sendo assim o objetivo deste capítulo é apresentar algumas ferramentas existentes que abordam juízes online no ambiente virtual Moodle, e/ou que abordam a pratica de exercícios de programação em outro ambiente virtual de aprendizagem, assim comparando-as, mas dando ênfase no sistema desenvolvido neste TTC Um mecanismo para correção automática de exercícios práticos de programação introdutória O projeto propõe a correção automatizada de exercícios práticos dando ênfase no feedback ao aluno, permitindo ao mesmo verificar se os resultados são os desejados em cada atividade. (PELZ, 2012). O mecanismo de correção automática de exercícios práticos de programação introdutória tem quatro etapas, verificação sintática do algoritmo construído pelo aluno, verificação da presença de comandos obrigatórios, verificação de similaridade entre a estrutura do aluno com a proposta pelo professor sendo a ultima o gabarito e por último a execução do programa a fim de verificar se a saída gerada corresponde a saída esperada/padrão (PELZ, 2012). Portanto o sistema faz a verificação sintática do algoritmo para avaliar se a sua execução ocorre sem erros. Faz a verificação da presença de comandos obrigatórios, assim quando dado um exercício que necessite de desvios condicionais ele deve conter obrigatoriamente esses desvios. Também faz a verificação de similaridade entre a estrutura do programa do aluno com o proposto pelo professor, sendo que a estrutura criada pelo professor será previamente definida pelo mesmo, portanto para tal feito a serialização da estrutura do programa do aluno tem que ser feita, para que a comparação seja feita de uma forma mais simplificada. E por fim faz a verificação das saídas sendo que os valores são estipulados pelo professor nas variáveis do programa, sendo assim o código do aluno é

32 32 executado gerando uma saída a partir de entradas de teste. Essa saída é comparada com a saída padrão definida pelo professor (PELZ, 2012). O sistema foi utilizado por três turmas sendo que alguns exercícios foram propostos, notando-se que em alguns casos os alunos construíam seus programas no processo de tentativa e erro aproveitando o feedback do corretor automático para complementarem a estrutura do seu programa. Mas de forma geral os experimentos realizados foram positivos (PELZ, 2012). O projeto descreve a forma de correção. Não apresentando facilidade para criação de questões, sendo assim o professor necessita criar um XML manualmente. Além disso dá ênfase ao feedback em atividades realizadas pelos alunos. Com isso o projeto ajudou a dar uma visão na escolha de um ambiente virtual como o Moodle que abstrai do professor a parte de código para a criação dos problemas, sendo que os problemas podem ser criados com alguns passos e de forma visual. Além disso norteou sobre o feedback das atividades para os alunos Adaptação de um corretor automático de código para auxílio da atividade de exercício e prática no ensino de programação Esse projeto propõe a adaptação do corretor BOCA para um corretor automático chamado BOCA-LAB, fazendo uso de partes da programação já existentes no BOCA. Diferente de outros corretores automáticos de código, o BOCA-LAB não utiliza um juiz na confirmação das correções, deixando a cargo do sistema essa tarefa, sendo realizada de forma automática (SOUZA, 2009). Nesse sistema o professor pode inserir problemas, cadastrar dicas e ter um controle do usuário. Já o aluno tem a opção de submeter seu código para a análise aguardando o resultado de sua correção (SOUZA, 2009). O sistema recebe a submissão de um problema por um aluno, analisa o código, compila e testa. A entrada padrão gerada pelo professor deve estar contida na entrada do programa compilado, a saída do programa do aluno é comparada com a saída esperada do professor. Caso as saídas sejam iguais o problema estará correto, caso contrário estará errado. BOCA-LAB é um sistema Web multiplataforma (SOUZA, 2009). O resultado da aplicação prática com as turmas foi positivo. Os participantes foram ativos no processo das numerosas correções, assim possibilitando uma estatística mais

33 33 detalhada, ficando comprovado que a ferramenta contribuiu de forma positiva no processo de aprendizagem, gerando uma métrica de desempenho da turma (SOUZA, 2009). O projeto faz uso de uma adaptação do corretor do BOCA, assim dando uma visão maior para a utilização juiz online do sistema BOCA Corretor automático de exercícios programa para auxílio no ensino à distância O objetivo desse projeto é o de auxiliar no aprendizado de alunos em programação, facilitando assim o mesmo e procurando uma menor dependência de professores (CUNHA et.al., 2006). O sistema funciona a partir de um compilador GCC e um testador que verifica se dado uma entrada padrão sua saída está de acordo com a saída esperada em um arquivo XML. Esse corretor gera relatórios de problemas encontrados através dos resultados obtidos nos testes e na análise do código (CUNHA et.al., 2006). Para integração com o ambiente virtual Moodle sua interface é divida em três etapas: envio de tarefas, envio de gabarito e resultado dos testes (CUNHA et.al., 2006). O projeto deu ênfase no aprendizado de programação, utilizando o ambiente virtual de aprendizagem Moodle, com isso dando diretrizes para que fosse possível a integração de um juiz online no ambiente Moodle Proposta de um laboratório virtual para aprendizagem de Prolog Esse projeto tem como objetivo o desenvolvimento de um Ambiente Virtual de Aprendizagem para a prática da linguagem de programação Prolog. Por se tratar de um ambiente com interação em tempo real com um interpretador da linguagem via web, correções e execuções automáticas de exercícios são feitas. Algoritmos são usados para a avaliação de questões discursivas de forma automática (SANTOS NETO, 2007). O ambiente faz uso do interpretador Pépe, sendo esse na plataforma Java, o que permite que o mesmo possa ser acessado em qualquer parte do mundo (SANTOS NETO, 2007).

34 34 O sistema possibilita aos professores cadastrar questões em formatos diferentes: verdadeiro/falso, discursiva e múltipla escolha. Ainda há a disponibilização de material de apoio, avaliações e também a geração de relatórios (SANTOS NETO, 2007). Em todas as listas de questões de exercícios ou da avaliação em questão, compara-se com a resposta padrão do professor. Com base na comparação do algoritmo de correção obtém-se uma nota (SANTOS NETO, 2007). Os fins almejados pelo projeto foram atingidos, sendo uma ferramenta para auxiliar o ensino de programação em lógica e auxiliando alunos e professores (SANTOS NETO, 2007). O projeto se assemelha ao criado, por se tratar de um ambiente virtual utilizando exercícios de fixação e que verifica se a resposta está conforme o esperado, para o ensino de linguagem de programação. Assim contribuindo de certa forma por ser possível a utilização em ambientes virtuais mecanismos para comparar e validar os exercícios dos alunos e assim gerando um feedback para o mesmo.

35 35 3 DESENVOLVIMENTO 3.1 DESCRIÇÃO DO SISTEMA O sistema tem como principal finalidade a criação de problemas de algoritmos, auxiliando professores que ministram disciplinas de programação bem como os alunos, por permitir a pratica de exercícios de fixação. Para a construção dos problemas o professor preenche os campos necessários no ambiente Moodle, sendo eles, o titulo do problema, corpo do problema (enunciado do problema), um conjunto de casos de teste, cada caso de teste contém as entradas esperadas pelo programa(entrada) e saída padrão e por fim a linguagem de programação para a resolução do problema. Já para que os alunos pratiquem os exercícios, os seus algoritmos devem ser submetidos em forma de código-fonte na linguagem especificada pelo professor, assim o código deve ser adicionado em um campo textarea, recebendo assim um feedback imediato do sistema. Esse feedback pode ser tanto positivo, quando um algoritmo estiver correto ou negativo, quando o algoritmo não estiver funcionando como o esperado. Para que esse feedback ocorra o código-fonte submetido pelo aluno é compilado por um juiz online de algoritmos, que está integrado ao ambiente Moodle. Esse código-fonte compilado, com o conjunto de casos de testes cadastrados pelo professor( entrada padrão) ao criar o problema, gera uma saída que é comparada com a saída padrão definida pelo professor, ao criar o problema. Para o aluno poder praticar este sistema possibilita o envio de algoritmos em três tipos de linguagens sendo elas C, C++ e Java, porém quem delimita qual linguagem será usada em cada problema é o professor, uma vez que na construção do sistema encontraram-se dificuldades para que fosse o aluno quem escolhesse o tipo de linguagem. A linguagem de programação utilizada para o desenvolvimento do sistema foi PHP em conjunto com HTML. A ferramenta utilizada para o desenvolvimento da interface foi o NetBeans IDE Os servidores utilizados para a instalação/alocação do ambiente Moodle e do sistema BOCA são distintos, ambos rodando o PostgreSQL como banco de dados. A utilização de dois servidores distintos se deve por se tratar de questões de segurança, uma vez que o sistema BOCA encontre algum problema em seu funcionamento devido a códigos maliciosos o ambiente virtual Moodle não dê problema ou não pare o seu funcionamento.

36 36 Devido a incompatibilidade de linguagem entre SGBDs diferentes optou-se pelo PostgreSQL como banco de dados no ambiente Moodle, uma vez que o sistema BOCA é tratado com esse SGBD. Na primeira etapa de projeto foi realizada a modelagem do sistema por meio da UML (Unified Modeling Language), abrangendo análise de requisitos (funcionais do professor e do aluno e não funcionais), diagramas de caso de uso e banco de dados, descritos nos itens seguintes. Para a realização da modelagem do sistema, com os conceitos da UML, a ferramenta utilizada foi o Enterprise Architect Análise de Requisitos Foram levantados, a partir de estudos e junto ao professor que orienta o projeto, requisitos básicos necessários para garantir o seu funcionamento Requisitos Funcionais São funções detalhadas do comportamento esperado de um sistema, mostrando como ele reage a entradas específicas e seu comportamento em determinadas situações (SOMMERVILLE, 2003). Em um sistema servem para descrever essas funções ou até mesmo serviços que se espera de um sistema, podendo definir funções detalhadas como entradas e saídas (SOMMERVILLE, 2003). A utilização de requisitos funcionais no sistema desenvolvido foi dividida em requisitos funcionais do professor e requisitos funcionais do aluno. Tais requisitos servem para a criação e envio de questões no ambiente virtual Moodle. Requisitos funcionais do professor: o O sistema permite ao professor cadastrar novas questões; o O sistema permite ao professor alterar as questões cadastradas; o O sistema permite que o professor possa visualizar a estatística de desempenho tanto individual quanto coletiva dos alunos. Requisitos funcionais do aluno: o O sistema permite ao aluno enviar respostas aos problemas propostos pelo professor;

37 37 o O sistema dá um feedback imediato mostrando o status do problema (certo, errado, erro de compilação ou tempo excedido), enviado pelo aluno; o O sistema permite ao aluno compilar o seu código-fonte e o resultado da sua execução online; o O sistema permite ao aluno editar um solução enviada e reenviar. o O tempo limite de execução dos algoritmos é de 30 segundos Requisitos não Funcionais Ao contrario dos requisitos funcionais, os requisitos não funcionais não descrevem as funções especificas do sistema: são restrições sobre funções ou serviços que o sistema proporciona, podendo estar relacionado a propriedades de sistema. Assim ele pode expressar tempo de resposta, confiabilidade e espaço em disco. Ainda existe a alternativa até podendo definir restrições para o sistema (SOMMERVILLE, 2003). Requisitos não funcionais do sistema desenvolvido: o A solução envolveu somente tecnologia open source; o Os perfis de acesso ao sistema são: Administrador: tem permissão para efetuar todas operações; Professor: tem permissão para cadastrar turmas, problemas, disciplinas, avaliar os exercícios e cadastrar exercícios; Aluno: tem permissão para acessar o curso, ver participantes e enviar respostas para o professor; o Na correção automática dos exercícios enviados pelos alunos o sistema utiliza um juiz online que foi integrado ao mesmo; o O sistema utiliza banco de dados PostgreSQL; o Foi utilizada a versão 2.0 do ambiente virtual Moodle.

38 DIAGRAMAS DE CASO DE USO Caso de Uso do professor A Figura 3 apresenta os Casos de Uso realizados pelo professor no ambiente Moodle. O professor pode cadastrar questões em um banco de questões, alterar questões já cadastradas e ainda há a possibilidade do professor gerar uma estatística de desempenho dos alunos. uc PCT01- Módulo de cadastro e relatórios do professor UC01.01 Cadastrar questões «include» Professor UC01.02 Alterar questões cadastradas UC01.03 Gerar estatística de desempenho dos alunos Figura 3. Diagrama de caso de uso das funcionalidades do professor UC01.01 Cadastrar questões Permite que após um questionário criado o professor possa cadastrar questões novas, alimentando o banco de questões que posteriormente poderão ser usadas em outros questionários ou até mesmo em outras disciplinas. Cadastrar questões (Principal) 1. O professor estando devidamente logado no ambiente Moodle, e selecionando o curso desejado, deve criar um questionário. 2. O sistema irá mostrar um botão edição de questionário. 3. O professor seleciona o botão edição.

39 39 4. O sistema irá mostrar a opção de adicionar uma nova pergunta ou adicionar perguntas já existentes em outros cursos ou até mesmo questionários. 5. O professor seleciona adicionar perguntas novas. 6. O sistema apresenta várias opções de questões. 7. O professor escolhe o tipo de questão, que no caso será o tipo criado pelo sistema desenvolvido chamado: juiz online de algoritmos. 8. O sistema apresenta alguns campos para o preenchimento que são: titulo da questão, texto da questão, entrada e saída padrão. 9. O professor preenche os campos com os dados do problema - titulo da questão, texto da questão, entrada e saída padrão. 10. O professor clica no botão salvar. 11. O sistema retorna para a edição do questionário. Adicionar mais questões ao questionário (Alternativo). 1. Após o passo 11 o professor, querendo adicionar mais questões ao questionário, retorna ao passo quatro onde irá começar o processo novamente. Cancelamento (Exceção). 1. A qualquer passo o professor pode cancelar o cadastro de uma nova questão, retornando assim à agenda do curso UC01.02 Alterar questões cadastradas Permite ao professor a alteração de questões cadastradas. Alteração de questões cadastradas (Principal). 1. O sistema mostra a lista de questões já cadastradas.

40 40 2. O professor seleciona a questão que deseja alterar. 3. O sistema mostra os campos da questão. 4. O professor altera os campos desejados. 5. O professor seleciona o botão salvar alterações. 6. O sistema altera a questão e retorna a lista de questões. Cancelamento (Exceção). 1. A qualquer passo o professor pode cancelar a alteração de uma questão, retornando assim a lista de questões UC01.03 Gerar estatística de desempenho dos alunos Permite ao professor gerar estatística do desempenho dos alunos, a fim de comparar e ver o rendimento da turma. Gerar estatística de desempenho dos alunos (Principal). 1. O professor após estar logado, e no curso desejado, seleciona na agenda do curso o questionário desejado. Nele existe um botão resultados que será clicado pelo mesmo. 2. O sistema exibe um submenu, onde se encontra estatísticas. 3. O professor clica em estatísticas. 4. O sistema apresenta algumas informações referentes ao questionário, bem como tentativas avaliadas, nota média das tentativas e nota mediana. 5. O professor retorna aos problemas. Cancelamento (Exceção). 1. A qualquer passo o professor pode cancelar a geração de estatística, retornando assim a agenda do curso.

41 Caso de Uso do aluno A Figura 4 apresenta os Casos de Uso realizados pelo aluno no ambiente Moodle. uc PCT02 - Módulo de relatórios UC02.01 Env iar respostas dos problemas Aluno «include» «include» UC02.02 Visualizar o feedback do problema UC02.03 Editar solução env iada Figura 4. Diagrama de Casos de Uso das funcionalidades do aluno UC02.01 Enviar respostas dos problemas professor. Permite que o aluno possa enviar sua solução para os problemas propostos pelo Enviar respostas dos problemas (Principal). 1. O aluno devidamente logado no ambiente moodle e no curso desejado seleciona o questionário criado pelo professor. 2. O sistema irá exibir a tela para o aluno iniciar o questionário, tendo um botão para iniciar esse processo. 3. O aluno clica no botão iniciar questionário. 4. O sistema apresenta o questionário, podendo o aluno escolher qual questão irá responder primeiro. 5. O aluno visualiza o problema e a linguagem escolhida pelo professor para que possa criar o seu algoritmo. 6. O aluno digita o código-fonte no campo especificado e clica em enviar.

42 42 7. O sistema retorna se foi enviado com sucesso. 8. O aluno clica em voltar para a agenda do curso UC02.02 Visualizar o feedback do problema O aluno tem a possibilidade de visualizar após o envio de seus problemas o feedback com sua nota, podendo estar certa ou errada Visualizar o feedback do problema (Principal). 1. O sistema exibe após o aluno enviar seus problemas a opção de visualizar sua nota. 2. O aluno seleciona em visualizar o feedback do problema enviado. 3. O sistema exibe o feedback com a nota podendo ser certo e errado, sendo que quando estiver certo aparecerá 100% e quando estiver errado aparecerá 0%. 4. O aluno retorna à agenda do curso UC02.03 Editar solução enviada desempenho. O aluno tem a possibilidade de editar uma solução já enviada a fim de melhorar o seu Editar solução enviada (Principal). 1. O aluno clica em questões enviadas. 2. O sistema exibe o código-fonte já enviado. 3. O aluno pode fazer qualquer tipo de alteração em seu código, após feito isso clica no botão enviar. 4. O sistema pergunta se o aluno deseja enviar e terminar tudo. 5. O aluno confirma. 6. O aluno clica em voltar para a agenda do curso.

43 43 Alteração diversas vezes (Alternativo) 1. Após o passo 4, depois de enviar a correção, caso o aluno queira alterar novamente e reenviar, ele retorna ao passo BANCO DE DADOS O banco de dados do sistema BOCA possui doze tabelas. Dentre elas quatro são utilizadas pelo juiz do BOCA, conforme na Figura 5. Porém, foram criadas duas tabelas a mais, como mostra a Figura 6, para que houvesse a manipulação dos dados entre as tabelas já existentes. Figura 5. Adaptação das tabelas do BOCA. A tabela problemtable serve para o cadastramento das questões por parte do professor. O BOCA espera por um arquivo.zip com as entradas e saídas cadastradas pelo professor, bem

44 44 como informações do problema. Além disso, a tabela é alimentada com outros atributos da questão. Esse arquivo.zip, tem em sua estrutura alguns diretórios, bem como: compare, compile, description, input, limits, output, run, tests. Como nesse projeto serão alterados só dois diretórios, os mesmos serão descritos. Para o diretório input, um arquivo contendo o conjunto de casos de teste, sendo que cada caso de teste contém as entradas esperadas pelo programa, que foram criados pelo professor, assim é adicionado a esse diretório. Já para o diretório output, um arquivo contendo o conjunto de saídas criado pelo professor é adicionado. Na tabela runtable a medida que o aluno submete os seus algoritmos o atributo rundata é alimentado, com um arquivo com a extensão necessária de cada linguagem de programação. Após a execução do algoritmo o mesmo irá alimentar com valores da tabela answertable o campo runanswer, onde diz se o algoritmo está correto ou se deu algum problema na compilação ou na execução. Langtable será uma tabela fixa onde as linguagens de programação serão apenas C, C++ e Java, sendo assim com valores definidos. Figura 6.Tabela tempaluno e tempprofessor criadas no BOCA.

45 Integração do juiz online do BOCA A integração do juiz online do BOCA no ambiente Moodle foi feita através da criação de gatilhos (Triggers). Segundo Silberschatz, Korth e Sudarshan (2006) gatilhos são uma instrução que faz a execução automática pelo sistema caso haja alguma modificação no banco de dados. O armazenamento do triggers no banco de dados é representado como sendo um dado normal, sendo acessível a todas as operações do banco de dados. Sua introdução faz com que o sistema de banco assuma a responsabilidade em executa-lo quando o evento especificado ocorrer. Portanto quando um professor cadastra uma questão no ambiente Moodle será gravada no banco de dados do mesmo. Após a inserção dos problemas no banco de questões do Moodle, o primeiro trigger (gatilho) é acionado, gravando os dados da questão na tabela tempprofessor, criada no banco de dados do sistema BOCA. Com isso os dados são gravados na tabela tempprofessor, e um segundo gatilho é acionado carregando os dados relacionados ao problema criado pelo professor e o arquivo problem.zip com o input e output do problema são adicionados a tabela problemtable. Tabela essa já nativa do BOCA. Feito isso, à medida que o aluno responder a questão no ambiente Moodle o envio será registrado nas tabelas do banco do ambiente. Já gravados no ambiente, outra trigger é acionada, na tabela onde a resposta do aluno foi gravada, para a tabela tempaluno. Criada no banco de dados do sistema BOCA. A seguir outra trigger é acionada mas já na tabela tempaluno, que pega o arquivo com a resposta do aluno e as informações da questão e cadastra na tabela runtable, tabela já nativa do sistema BOCA. Para a verificação se um problema submetido está correto faz-se uso de um processo do BOCA chamado autojuding (juiz online), que compila o algoritmo enviado pelo aluno, gerando assim uma saída, que é comparada com a saída padrão definida pelo professor na criação do problema.

46 46 O mesmo fica sendo executado em paralelo indeterminadamente com uma atualização de minuto em minuto, sempre verificando se há algum problema para ser julgado existente nas tabelas do BOCA. Havendo um novo problema para ser julgado, ele julga e o resultado será gravado na tabela do BOCA. Com isso a trigger na tabela runtable é acionada, pegando o resultado na tabela do BOCA e alterando as tabelas do ambiente Moodle, possibilitando que o aluno possa visualizar o feedback do seu problema (Figura 7). Figura 7. Esquema da integração de um juiz online no ambiente Moodle. Portanto o feedback imediato é a resposta no caso de uma resposta correta ou quando a resposta estiver errada. Já o feedback do professor no corpo da resposta poderá ser: Erro de compilação. Output erro de formatação (representando que a saída do programa não segue a especificação exigida). Tempo limite excedido(representando que excedeu o tempo estipulado que é de 30 segundos na execução). Para viabilizar a utilização dos gatilhos criados, é necessária a utilização, para a transferência dos dados em servidores distintos o uso do Dblink. O Dblink, é um conjunto de funções, que possibilita a conexão entre banco de dados PostgreSQL com o intuito de ter acesso a dados externos. Os dados externos podem ser

47 47 considerados, tanto banco de dados distantes fisicamente exemplo, em servidores distintos, como um banco de dados local. Sendo assim o Dblink permite o acesso remoto a uma tabela de uma determinada base de dados, e a realizar a execução de queries. O seu desempenho depende da infraestrutura da rede, por realizar o seu acesso através do protocolo TCP/IP. (SMANIOTO, 2006) Para a utilização do Dblink no banco de dados PostgreSQL é preciso que o conjunto de funções que o compõem, sejam instalados. Sendo que o mesmo não vem instalado por padrão. (SMANIOTO, 2006) O conjunto de funções que compõem o Dblink estão descritos no Apêndice A 3.6 INTERFACES DO SISTEMA Serão apresentadas nessa seção as principais interfaces do sistema desenvolvido, sendo elas, a tela do professor, retratando a administração do curso, criação de questões e relatórios de desempenho dos alunos. Ainda serão apresentadas as telas referentes ao aluno compondo a tela para responder as questões e a tela de feedback Telas do professor A tela de administração do curso permite ao professor a criação de questionários, posteriormente a adição de questões aos questionários e a geração do curso criando turmas e visualizando o desempenho dos alunos. Para possibilitar a edição e a criação de questionários o botão de ativar edição deve ser clicado. A Figura 7 apresenta uma lista de tipos de questões para a escolha do professor. Nessa tela será escolhida pelo professor os exercícios do Juiz Online. Após a escolha do tipo de questão o sistema irá apresentar outra tela para criação da questão, mostrando os campos necessários para cada tipo de questão.

48 48 Figura 8. Tela de escolha do tipo de questão Juiz Online. A Figura 8 mostra a tela para a criação da questão, após a seleção do tipo de questão. O professor deve inserir o titulo para a questão, o texto do enunciado da questão, um conjunto de entradas e um conjunto de saídas padrão. O professor deve especificar qual o tipo de linguagem utilizada pelo aluno na criação do algoritmo. Para poder julgar as questões o juiz do BOCA, necessita de um conjunto de entradas e saídas padrão, que estarão em um arquivo.zip contendo também algumas informações referentes a questão. Para possibilitar a criação dos arquivos contendo um conjunto de entrada e um conjunto de saída padrão e posteriormente os mesmos serem adicionados a um arquivo.zip. foi criado um código em PHP inserido na classe edit_juiz_form.php que encontrasse na pasta /question/type/juiz, do ambiente Moodle. Assim após a criação dos arquivos contendo as entradas e saídas, esses arquivos são inseridos no arquivo problem.zip existente no servidor do Moodle. Como via dblink não é possível o envio de arquivos, a forma encontrada para o envio desse arquivo problem.zip foi via FTP, para o servidor onde o BOCA está instalado. Sendo assim quando o gatilho da criação de questão é acionado ele insere os atributos da questão na tabela tempprofessor criada no BOCA que faz uma ponte para posteriormente

49 49 outro gatilho ser acionado e adicionar os atributos da questão juntamente com o arquivo problem.zip na tabela problemtable onde é a tabela em que se é cadastrada o problema no sistema BOCA. Figura 9. Tela de criação da questão. No Quadro 3 é apresentado o gatilho (trigger) tg_atualia_boca2, criado na tabela mdl_question_juiz, que tem como papel acionar a função moodle_gatilho_to_boca() toda vez que um dado for atualizado (AFTER UPDATE) na tabela.

50 50 Uma questão quando criada no ambiente Moodle tem os seus atributos comuns entre questões inseridos na tabela mdl_question. Após esses dados serem inseridos, um id é criado e inserido na tabela do tipo de questão desejado. Partindo desse principio a escolha na utilização do AFTER UPDATE se deve ao fato de que o id é inserido primeiro na tabela mdl_question_juiz, deixando o restante dos atributos em branco, para em seguida os seus atributos serem atualizados, portanto um AFTER INSERT não serviria nesse caso. CREATE TRIGGER tg_atualiza_boca2 AFTER UPDATE ON mdl_question_juiz FOR EACH ROW EXECUTE PROCEDURE moodle_gatilho_to_boca(); Quadro 3. Criação da trigger tg_atualiza_boca2. No Quadro 4, a função moodle_gatilho_to_boca cria uma ligação com o servidor onde o banco de dados do BOCA está. Essa ligação entre bancos é feita através do dblink. Dessa forma possibilita o envio de comandos SQL para o banco de dados do BOCA, onde é feita uma inserção na tabela tempprofessor. Essa inserção contem os atributos de uma questão do juiz online, salvas na tabela mdl_question_juiz no ambiente Moodle. Os atributos enviados da questão são: o numero da questão, o nome da questão e a linguagem de programação escolhida pelo professor.

51 51 CREATE OR REPLACE FUNCTION moodle_gatilho_to_boca() RETURNS trigger AS $BODY$ DECLARE nomequestao text; BEGIN nomequestao := (SELECT name FROM mdl_question WHERE id= NEW.question); PERFORM dblink_exec('hostaddr= XXX.XXX.XX.XX port=5432 user=xxxx password=xxxx dbname=bocadb', 'INSERT INTO tempprofessor(id,questionid,namequestion,langprog) VALUES ((SELECT max(id) FROM tempprofessor) +1,' NEW.question ',''' nomequestao ''',' NEW.linguagempro g ')'); RETURN NEW; END; $BODY$ LANGUAGE plpgsql; Quadro 4. Criação da função moodle_gatilho_to_boca(). O gatilho tg_envia_problemtable, visto no Quadro 5, foi criado na tabela tempprofessor do banco de dados do BOCA. O mesmo é acionado à medida que algum dado é inserido ou atualizado na tabela. A função chama-se tempaluno_gatilho_problemtable(). CREATE TRIGGER tg_envia_problemtable AFTER INSERT OR UPDATE ON tempprofessor FOR EACH ROW EXECUTE PROCEDURE tempprofessor_gatilho_problemtable(); Quadro 5. Criação da trigger tg_envia_problemtable. A função tempaluno_gatilho_problemtable, vista no Quadro 6, ao ser acionada pelo gatilho tg_envia_problemtable pega os dados que foram inseridos recentemente na tabela tempprofessor e os insere em outra tabela, chamada problemtable. A mesma é a responsável pela criação das perguntas pelo professor. Essa inserção é feita com os atributos na criação da questão pelo professor, que foram inseridos na tabela do Moodle, e enviados para a tabela

52 52 tempprofessor do BOCA. Dentre os atributos passados estão o numero do problema, nome do problema, nome do arquivo e o arquivo contendo o problema. CREATE OR REPLACE FUNCTION tempprofessor_gatilho_problemtable() RETURNS trigger AS $BODY$ BEGIN INSERT INTO problemtable(contestnumber, problemnumber, problemname, probleminputfilename, fake) VALUES (5,NEW.questionid, NEW.namequestion, 'problem.zip', lo_import('/home/icpcadmin/public/problem.zip'),'false'); RETURN NEW; END; $BODY$ LANGUAGE plpgsql; Quadro 6. Criação da função tempprofessor_gatilho_problemtable() Telas do aluno A Figura 9 apresenta a tela do aluno com o problema, mostrando o titulo do problema, o corpo do enunciado contendo exemplos de entrada e saída que o programa deverá gerar, além disso, existe uma caixa de texto para que o aluno possa colar o seu código-fonte e por fim um texto mostra em qual linguagem deve ser criado o algoritmo. Para que o juiz do BOCA possa julgar a solução submetida pelo aluno ele espera um arquivo contendo o código-fonte do algoritmo. Portanto foi necessário criar um arquivo do aluno a partir de seu código-fonte. Para viabilizar esse processo foi inserido um código em PHP na classe renderer.php. Essa classe é a responsável por gerar a tela do aluno pelo Moodle. Sendo assim o aluno ao clicar em submeter a sua solução via Moodle o arquivo é criado no servidor onde o Moodle se encontra. Mas para enviar esse arquivo ao servidor onde o juiz do BOCA se encontra foi necessário a utilização do envio via FTP, uma vez que via dblink não seria possível, já que o dblink não suporta envio de arquivos. Após a criação do arquivo, sequencialmente o gatilho de envio da solução do aluno é acionado, enviando à tabela tempaluno, criada no banco de dados do BOCA os atributos da questão e atributos da

53 53 solução do aluno. Assim outro gatilho é acionado na tablea tempaluno que envia o arquivo com a solução do aluno e os atributos referentes a mesma para a tabela runtable, onde a mesma é responsável para que o juiz possa julgar as questões. Figura 10. Tela do aluno com o problema a ser resolvido.

54 54 É apresentado no Quadro 7 o gatilho (trigger) tg_atualiza_boca_aluno, criado na tabela mdl_question_attempts, que tem como papel acionar a função moodle_gatilho_to_boca_aluno(), toda vez que um dado for atualizado (AFTER UPDATE) na tabela. A tabela mdl_question_attempts, é uma tabela criada pelo Moodle quando o mesmo é instalado. Essa tabela é a responsável por guardar a resposta do aluno e alguns atributos referentes à questão. Os atributos referentes a questão são inseridos a partir do momento em que o aluno inicia uma tentativa. Mas a sua resposta só é salva nessa tabela quando o aluno finaliza e envia tudo. Devido a isso foi escolhido para a sua utilização o AFTER UPDATE, onde um AFTER INSERT não iria capturar a resposta do aluno ao terminar de responder a questão. CREATE TRIGGER tg_atualiza_boca_aluno AFTER UPDATE ON mdl_question_attempts FOR EACH ROW EXECUTE PROCEDURE moodle_gatilho_to_boca_aluno(); Quadro 7. Criação da trigger tg_atualiza_boca_aluno. O Quadro 8, mostra a função moodle_gatilho_to_boca_aluno, que cria uma ligação com o servidor onde o banco de dados do BOCA está. Essa ligação entre bancos é feita através do dblink. Via dblink, uma instrução de inserção é enviada, para a tabela tempaluno, onde os atributos enviados são: o timemodified, id da questão, nome da questão, a resposta do aluno e a linguagem escolhida pelo professor para a resolução do problema.

55 55 CREATE OR REPLACE FUNCTION moodle_gatilho_to_boca_aluno() RETURNS trigger AS $BODY$ DECLARE slinguagem int; codigo text; BEGIN IF NEW.responsesumary <> ' ' THEN slinguagem := (SELECT linguagemprog FROM mdl_question_juiz WHERE question = NEW.questionid); PERFORM dblink_exec('hostaddr= XXX.XXX.XX.XX port=5432 user=xxxx password=xxxx dbname=bocadb', 'INSERT INTO tempaluno(id, timemodified, questionid, namequestion, bodyquestion, langprog) VALUES ((SELECT max(id) FROM tempaluno)+1, ' NEW.timemodified ',' NEW.questionid ', $$' NEW.questionid '.c$$, $$' NEW.responsesumary '$$,' slinguagem ' )'); END IF; RETURN NEW; END; $BODY$ LANGUAGE plpgsql; Quadro 8. Criação da função moodle_gatilho_to_boca_aluno(). O gatilho tg_envia_runtable, visto no Quadro 9, foi criado na tabela tempaluno do banco de dados do BOCA. O mesmo é acionado à medida que algum dado é inserido ou atualizado na tabela. Assim chamando a função tempaluno_gatilho_runtable(). CREATE TRIGGER tg_envia_runtable AFTER INSERT OR UPDATE ON tempaluno FOR EACH ROW EXECUTE PROCEDURE tempaluno_gatilho_runtable(); Quadro 9. Criação da trigger tg_envia_runtable. A função tempaluno_gatilho_runtable, vista no Quadro 10, ao ser acionada pelo gatilho tg_envia_runtable pega os dados que foram inseridos recentemente na tabela tempaluno e os insere em outra tabela, chamada runtable. A mesma é a responsável pelas respostas do aluno. Essa inserção é feita com os atributos da resposta do aluno, que foram inseridos na tabela do Moodle, e enviados para a tabela tempaluno do BOCA. Dentre os

56 56 atributos passados estão: o numero da questão, nome do arquivo, arquivo contendo o códigofonte da resposta do aluno e a linguagem selecionada pelo professor. CREATE OR REPLACE FUNCTION tempaluno_gatilho_runtable() RETURNS trigger AS $BODY$ DECLARE nomearquivo text; BEGIN nomearquivo := NEW.questionid (SELECT CASE WHEN NEW.langprog = 1 THEN '.c' WHEN NEW.langprog = 2 THEN '.cpp' WHEN NEW.langprog = 3 THEN '.java' ELSE 'other' END); INSERT INTO runtable (contestnumber, runsitenumber, runnumber, usernumber, rundate, rundatediff, rundatediffans, runproblem, runfilename, rundata, runstatus, runlangnumber) VALUES (5,1,(SELECT max(runnumber) FROM runtable)+1, 2,NEW.timemodified, 5620, ,NEW.questionid, nomearquivo, lo_import('/home/icpcadmin/teste/' nomearquivo), 'openrun', NEW.langprog); RETURN NEW; END; $BODY$ LANGUAGE plpgsql; Quadro 10. Criação da função tempaluno_gatilho_runtable(). A Figura 11 apresenta o feedback para o aluno. Com isso o aluno tem uma resposta se o seu algoritmo fez o que era esperado ou não. Assim quando o algoritmo estiver como o esperado o textarea fica na cor verde e caso contrário fica na cor vermelha, simbolizando que o algoritmo não está como esperado.

57 57 Figura 11. Tela de feedback. Essa resposta é gerada na tabela runtable no banco de dados do BOCA. Sendo assim a medida em que o juiz julga a questão é inserida a resposta em um campo em sua tabela. Portanto, quando é inserida a resposta do juiz na tabela um gatilho é acionado. Esse gatilho tem como função verificar se a resposta obtida é um yes (quando estiver correto) ou outros tipos de erros (quando não estiver correto), assim transformando a resposta que é uma string, em formato numérico, para poder ser inserida em duas tabelas no ambiente Moodle. São elas

Desenvolvendo Websites com PHP

Desenvolvendo Websites com PHP Desenvolvendo Websites com PHP Aprenda a criar Websites dinâmicos e interativos com PHP e bancos de dados Juliano Niederauer 19 Capítulo 1 O que é o PHP? O PHP é uma das linguagens mais utilizadas na Web.

Leia mais

Guia de Acesso Rápido AVA Ambiente Virtual de Aprendizagem Aluno

Guia de Acesso Rápido AVA Ambiente Virtual de Aprendizagem Aluno Guia de Acesso Rápido AVA Ambiente Virtual de Aprendizagem Aluno Introdução O Ambiente de Aprendizagem, ou AVA, é um aplicativo web onde os educadores e alunos podem disponibilizar materiais didáticos,

Leia mais

Aplicação Prática de Lua para Web

Aplicação Prática de Lua para Web Aplicação Prática de Lua para Web Aluno: Diego Malone Orientador: Sérgio Lifschitz Introdução A linguagem Lua vem sendo desenvolvida desde 1993 por pesquisadores do Departamento de Informática da PUC-Rio

Leia mais

UNIVERSIDADE FEDERAL DA FRONTEIRA SUL AMBIENTE VIRTUAL INSTITUCIONAL MOODLE/UFFS

UNIVERSIDADE FEDERAL DA FRONTEIRA SUL AMBIENTE VIRTUAL INSTITUCIONAL MOODLE/UFFS UNIVERSIDADE FEDERAL DA FRONTEIRA SUL AMBIENTE VIRTUAL INSTITUCIONAL MOODLE/UFFS Guia Inicial de Acesso e Utilização Para Docentes Versão 1.0b Outubro/2010 Acesso e utilização do Ambiente Virtual de Ensino

Leia mais

GUIA BÁSICO DA SALA VIRTUAL

GUIA BÁSICO DA SALA VIRTUAL Ambiente Virtual de Aprendizagem - MOODLE GUIA BÁSICO DA SALA VIRTUAL http://salavirtual.faculdadesaoluiz.edu.br SUMÁRIO 1. Acessando Turmas 4 2. Inserindo Material 4 3. Enviando Mensagem aos Alunos 6

Leia mais

COORDENAÇÃO DE ENSINO A DISTÂNCIA - EaD

COORDENAÇÃO DE ENSINO A DISTÂNCIA - EaD COORDENAÇÃO DE ENSINO A DISTÂNCIA - EaD TUTORIAL MOODLE VERSÃO ALUNO Machado/MG 2013 SUMÁRIO 1. INTRODUÇÃO... 4 2. EDITANDO O PERFIL... 5 2.1 Como editar o perfil?... 5 2.2 Como mudar a senha?... 5 2.3

Leia mais

Apresentação. Nossa sugestão é que você experimente e não tenha medo de clicar!!!

Apresentação. Nossa sugestão é que você experimente e não tenha medo de clicar!!! Apresentação Este manual é uma orientação para os participantes de cursos no ambiente Moodle do INSTITUTO PRISMA. Tem como objetivo orientar sobre as ações básicas de acesso e utilização do ambiente virtual

Leia mais

Manual do Ambiente Moodle para Professores

Manual do Ambiente Moodle para Professores UNIVERSIDADE FEDERAL DA FRONTEIRA SUL Manual do Ambiente Moodle para Professores Tarefas Versão 1.0b Setembro/2011 Direitos Autorais: Essa apostila está licenciada sob uma Licença Creative Commons 3.0

Leia mais

Manual SAGe Versão 1.2 (a partir da versão 12.08.01)

Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Submissão de Relatórios Científicos Sumário Introdução... 2 Elaboração do Relatório Científico... 3 Submissão do Relatório Científico... 14 Operação

Leia mais

INTRODUÇÃO AO AMBIENTE MOODLE DA UFPA. Guia rápido

INTRODUÇÃO AO AMBIENTE MOODLE DA UFPA. Guia rápido INTRODUÇÃO AO AMBIENTE MOODLE DA UFPA Guia rápido A PLATAFORMA MOODLE Moodle (Modular Object Oriented Distance LEarning) é um Sistema para Gerenciamento de Cursos (SGC). Trata-se de um programa para computador

Leia mais

TOTVS Série 1 Varejo (Simples) - Módulo e-commerce

TOTVS Série 1 Varejo (Simples) - Módulo e-commerce Novo Módulo disponível no TOTVS S1 Varejo: permissão de utilização através de licença específica. Mesmo não adquirindo a licença de uso do módulo ele continuará presente na tela do usuário. 1 Na opção

Leia mais

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões Prof. MSc. Hugo Souza Se você precisar manter informações sobre seus usuários enquanto eles navegam pelo seu site, ou até quando eles saem

Leia mais

Noções de. Microsoft SQL Server. Microsoft SQL Server

Noções de. Microsoft SQL Server. Microsoft SQL Server Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados

Leia mais

Moodle - Tutorial para Alunos

Moodle - Tutorial para Alunos Moodle - Tutorial para Alunos por Prof. Maurício Lima 1 agosto de 2010 Objetivo Este documento apresenta aos alunos da Faculdade Novos Horizontes os primeiros passos na utilização do pacote Moodle. Trata-se

Leia mais

Sistema de Acompanhamento ao Desempenho do Aluno

Sistema de Acompanhamento ao Desempenho do Aluno Sistema de Acompanhamento ao Desempenho do Aluno Manoel Cardoso da Silveira Neto 1, Luciana Vescia Lourega 1 1 Instituto Federal Farroupilha Campus Júlio de Castilhos RS - Brasil Caixa Postal 38 98.130-000

Leia mais

EQUIPE: ANA IZABEL DAYSE FRANÇA JENNIFER MARTINS MARIA VÂNIA RENATA FREIRE SAMARA ARAÚJO

EQUIPE: ANA IZABEL DAYSE FRANÇA JENNIFER MARTINS MARIA VÂNIA RENATA FREIRE SAMARA ARAÚJO UNIVERSIDADE FEDERAL DA PARAIBA DEPARTAMENTO DE CIÊNCIA DA INFORMAÇÃO CENTRO DE CIÊNCIAS SOCIAIS APLICADAS CURSO DE GRADUAÇÃO EM BIBLIOTECONOMIA DISCIPLINA: TECNOLOGIA DA INFORMAÇÃO II PROFESSORA: PATRÍCIA

Leia mais

Manual do. Modular Object-Oriented Dynamic Learning Environment. Manual do

Manual do. Modular Object-Oriented Dynamic Learning Environment. Manual do Modular Object-Oriented Dynamic Learning Environment 1 Ambiente Virtual de Aprendizagem Moodle O Moodle é um Ambiente Virtual de Aprendizagem gratuito para gestão e desenvolvimento de cursos na modalidade

Leia mais

Ambiente Virtual de Aprendizagem Moodle

Ambiente Virtual de Aprendizagem Moodle Ambiente Virtual de Aprendizagem Moodle No INSEP, o ambiente virtual de aprendizagem oferecido ao acadêmico é o MOODLE. A utilização dessa ferramenta é fundamental para o sucesso das atividades em EAD,

Leia mais

Ajuda ao SciEn-Produção 1. 1. O Artigo Científico da Pesquisa Experimental

Ajuda ao SciEn-Produção 1. 1. O Artigo Científico da Pesquisa Experimental Ajuda ao SciEn-Produção 1 Este texto de ajuda contém três partes: a parte 1 indica em linhas gerais o que deve ser esclarecido em cada uma das seções da estrutura de um artigo cientifico relatando uma

Leia mais

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 SUMÁRIO 1 Conceitos Básicos... 3 1.1 O que é Software?... 3 1.2 Situações Críticas no desenvolvimento

Leia mais

Integração com o Ambiente Virtual de Aprendizagem Moodle

Integração com o Ambiente Virtual de Aprendizagem Moodle Integração com o Ambiente Virtual de Aprendizagem Moodle Integração com o Ambiente Virtual de Aprendizagem Moodle Página 2 Sumário 1. Apresentação... 4 1.1. O Moodle... 4 1.2. Objetivo da integração...

Leia mais

MANUAL DE NAVEGAÇÃO UNICURITIBA VIRTUAL

MANUAL DE NAVEGAÇÃO UNICURITIBA VIRTUAL MANUAL DE NAVEGAÇÃO UNICURITIBA VIRTUAL ACESSANDO O UNICURITIBA VIRTUAL Acesse o site do UNICURITIBA: http://unicuritiba.edu.br Clique no link Portal do Aluno, que fica no canto superior direito. Dentro

Leia mais

2 Diagrama de Caso de Uso

2 Diagrama de Caso de Uso Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa

Leia mais

Indicie. 1.Introdução...1. 2.Como Surgiu...2. 3.Para que serve...3. 4.Instalação...3. 5. Oque ele permite fazer...5. 6. Primeiro Cenário...

Indicie. 1.Introdução...1. 2.Como Surgiu...2. 3.Para que serve...3. 4.Instalação...3. 5. Oque ele permite fazer...5. 6. Primeiro Cenário... Artigo sobre Indicie 1.Introdução....1 2.Como Surgiu....2 3.Para que serve....3 4.Instalação....3 5. Oque ele permite fazer....5 6. Primeiro Cenário....6 7. Segundo Cenário....7 8. Conclusão....8 5. Referencias....9

Leia mais

Gestão inteligente de documentos eletrônicos

Gestão inteligente de documentos eletrônicos Gestão inteligente de documentos eletrônicos MANUAL DE UTILIZAÇÃO VISÃO DE EMPRESAS VISÃO EMPRESAS - USUÁRIOS (OVERVIEW) No ELDOC, o perfil de EMPRESA refere-se aos usuários com papel operacional. São

Leia mais

Manual de acesso ao UNICURITIBA Virtual (Moodle) para alunos EAD

Manual de acesso ao UNICURITIBA Virtual (Moodle) para alunos EAD 1 Manual de acesso ao UNICURITIBA Virtual (Moodle) para alunos EAD 2015 2 Sumário Acessando o UNICURITIBA Virtual... 4 Conhecendo o UNICURITIBA Virtual... 5 1. Foto do Perfil... 5 2. Campo de Busca...

Leia mais

Manual UNICURITIBA VIRTUAL para Professores

Manual UNICURITIBA VIRTUAL para Professores Manual UNICURITIBA VIRTUAL para Professores 1 2 2015 Sumário 1 Texto introdutório... 3 2 Como Acessar o UNICURITIBA VIRTUAL... 3 3 Tela inicial após login... 3 3.1) Foto do perfil... 4 3.2) Campo de busca...

Leia mais

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

Leia mais

Fundação Presidente Antônio Carlos- FUPAC 1

Fundação Presidente Antônio Carlos- FUPAC 1 Fundação Presidente Antônio Carlos- FUPAC 1 Sumário Apresentação As Vantagens Dessa Moderna Sistemática do Ensino O Papel do Aluno Professor Tutor Avaliação da Aprendizagem Acesso ao Dúvidas e Suporte

Leia mais

MANUAL DO ALUNO AMBIENTE VIRTUAL DE APRENDIZAGEM

MANUAL DO ALUNO AMBIENTE VIRTUAL DE APRENDIZAGEM MANUAL DO ALUNO AMBIENTE VIRTUAL DE APRENDIZAGEM Março, 2011 Prezado aluno Sempre preocupada em oferecer o melhor na formação de novos profissionais, a FADEP disponibiliza, a partir deste primeiro semestre

Leia mais

CONCEITO: Moodle Moodle Moodle Moodle

CONCEITO: Moodle Moodle Moodle Moodle NE@D - Moodle CONCEITO: O Moodle é uma plataforma de aprendizagem a distância baseada em software livre. É um acrônimo de Modular Object-Oriented Dynamic Learning Environment (ambiente modular de aprendizagem

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

Moodle - Tutorial para Professores

Moodle - Tutorial para Professores Moodle - Tutorial para Professores por Prof. Maurício Lima 1 agosto de 2010 Objetivo Este documento apresenta aos professores da Faculdade Novos Horizontes os primeiros passos na utilização do pacote Moodle.

Leia mais

Manual do Usuário 2013

Manual do Usuário 2013 Manual do Usuário 2013 MANUAL DO USUÁRIO 2013 Introdução Um ambiente virtual de aprendizagem é um programa para computador que permite que a sala de aula migre para a Internet. Simula muitos dos recursos

Leia mais

02 - Usando o SiteMaster - Informações importantes

02 - Usando o SiteMaster - Informações importantes 01 - Apresentação do SiteMaster - News Edition O SiteMaster foi desenvolvido para ser um sistema simples de gerenciamento de notícias, instalado em seu próprio computador e com configuração simplificada,

Leia mais

Curso de planilhas eletrônicas na modalidade EAD: Um relato de experiência

Curso de planilhas eletrônicas na modalidade EAD: Um relato de experiência ÁREA TEMÁTICA: EDUCAÇÃO Curso de planilhas eletrônicas na modalidade EAD: Um relato de experiência Luis Henrique Chiczta (luischiczta@gmail.com) Diolete Marcante Latti Cerutti (diolete@uepg.br) Adilson

Leia mais

Artur Petean Bove Júnior Tecnologia SJC

Artur Petean Bove Júnior Tecnologia SJC Artur Petean Bove Júnior Tecnologia SJC Objetivo O objetivo do projeto é especificar o desenvolvimento de um software livre com a finalidade de automatizar a criação de WEBSITES através do armazenamento

Leia mais

Tutorial 5 Questionários

Tutorial 5 Questionários Tutorial 5 Questionários A atividade Questionário no Moodle pode ter várias aplicações, tais como: atividades de autoavaliação, lista de exercícios para verificação de aprendizagem, teste rápido ou ainda

Leia mais

Manual do Participante do Curso de Gestão da Assistência Farmacêutica - EaD

Manual do Participante do Curso de Gestão da Assistência Farmacêutica - EaD Capacitação - HÓRUS Manual do Participante do Curso de Gestão da Assistência Farmacêutica - EaD SUMÁRIO 1 INTRODUÇÃO... 3 2 INFORMAÇÕES SOBRE O CURSO... 3 2.1 Objetivos do curso... 3 2.2 Recursos de Aprendizagem...

Leia mais

Introdução a listas - Windows SharePoint Services - Microsoft Office Online

Introdução a listas - Windows SharePoint Services - Microsoft Office Online Page 1 of 5 Windows SharePoint Services Introdução a listas Ocultar tudo Uma lista é um conjunto de informações que você compartilha com membros da equipe. Por exemplo, você pode criar uma folha de inscrição

Leia mais

Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3

Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3 Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3 A LEGO Education tem o prazer de trazer até você a edição para tablet do Software LEGO MINDSTORMS Education EV3 - um jeito divertido

Leia mais

Ambiente Moodle 2º Semestre de 2010 Modelo A4

Ambiente Moodle 2º Semestre de 2010 Modelo A4 Ambiente Moodle 2º Semestre de 2010 Modelo A4 Apresentação dos Professores Carla Kozan- Administração (4º Sem), Direito Matutino (4º Sem), Direito Noturno (4º Sem) Ciências Contábeis (4º Sem), Computação

Leia mais

Módulo de Usuário 04 Orientações para o Uso 05 Acessando as Salas 06 Dentro do Ambiente das Salas 08 (1) Outros Usuários 09 (2) Seus Dados 09 (3)

Módulo de Usuário 04 Orientações para o Uso 05 Acessando as Salas 06 Dentro do Ambiente das Salas 08 (1) Outros Usuários 09 (2) Seus Dados 09 (3) O recurso das Salas Virtuais é parte da estratégia adotada pelo Órgão Gestor da Política Nacional de Educação Ambiental para estimular e fortalecer a participação de grupos, coletivos e colegiados no processo

Leia mais

EDITAL DE SELEÇÃO PÓS-GRADUAÇÃO LATO SENSU Modalidade Online

EDITAL DE SELEÇÃO PÓS-GRADUAÇÃO LATO SENSU Modalidade Online EDITAL DE SELEÇÃO PÓS-GRADUAÇÃO LATO SENSU Modalidade Online EDUCAÇÃO A DISTÂNCIA: ELABORAÇÃO DE MATERIAL, TUTORIA E AMBIENTES VIRTUAIS Regulamentação de Pós-Graduação Lato Sensu e Ato de Credenciamento

Leia mais

TUTORIAL DO ALUNO. Olá, bem vindo à plataforma de cursos a distância da Uniapae!!!

TUTORIAL DO ALUNO. Olá, bem vindo à plataforma de cursos a distância da Uniapae!!! TUTORIAL DO ALUNO Olá, bem vindo à plataforma de cursos a distância da Uniapae!!! O Moodle é a plataforma de ensino a distância utilizada pela Uniapae sendo a unidade de ensino para rápida capacitação

Leia mais

ROTEIRO PARA ELABORAÇÃO DE PROJETOS

ROTEIRO PARA ELABORAÇÃO DE PROJETOS APRESENTAÇÃO ROTEIRO PARA ELABORAÇÃO DE PROJETOS Breve histórico da instituição seguido de diagnóstico e indicadores sobre a temática abrangida pelo projeto, especialmente dados que permitam análise da

Leia mais

tarefa 1. Para criar uma Tarefa clique em Ativar edição.

tarefa 1. Para criar uma Tarefa clique em Ativar edição. tarefa Possibilita que o aluno faça um envio de arquivo ou texto através do editor do Moodle. Aos professores, o recebimento de tarefas permite fazer comentários, avaliar e dar nota. 1. Para criar uma

Leia mais

Satélite. Manual de instalação e configuração. CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br

Satélite. Manual de instalação e configuração. CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br Satélite Manual de instalação e configuração CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br Índice Índice 1.Informações gerais 1.1.Sobre este manual 1.2.Visão geral do sistema 1.3.História

Leia mais

Manual do Ambiente Moodle para Alunos

Manual do Ambiente Moodle para Alunos UNIVERSIDADE FEDERAL DA FRONTEIRA SUL Manual do Ambiente Moodle para Alunos Versão 1.0b Setembro/2011 Direitos Autorais: Essa apostila está licenciada sob uma Licença Creative Commons 3.0 Atribuição de

Leia mais

1 Sumário... 2. 2 O Easy Chat... 3. 3 Conceitos... 3. 3.1 Perfil... 3. 3.2 Categoria... 3. 4 Instalação... 5. 5 O Aplicativo... 7 5.1 HTML...

1 Sumário... 2. 2 O Easy Chat... 3. 3 Conceitos... 3. 3.1 Perfil... 3. 3.2 Categoria... 3. 4 Instalação... 5. 5 O Aplicativo... 7 5.1 HTML... 1 Sumário 1 Sumário... 2 2 O Easy Chat... 3 3 Conceitos... 3 3.1 Perfil... 3 3.2 Categoria... 3 3.3 Ícone Específico... 4 3.4 Janela Específica... 4 3.5 Ícone Geral... 4 3.6 Janela Geral... 4 4 Instalação...

Leia mais

Manual Operacional AVA (Ambiente Virtual de Aprendizagem)

Manual Operacional AVA (Ambiente Virtual de Aprendizagem) Manual Operacional AVA (Ambiente Virtual de Aprendizagem) ead.clinicajulioperes.com.br Sumário navegável Como acesso o ambiente?... Como assisto aos vídeos?... Como preencher meu perfil?...

Leia mais

1. Introdução ao Campus Virtual 1.1. Introdução

1. Introdução ao Campus Virtual 1.1. Introdução 1. Introdução ao Campus Virtual 1.1. Introdução Este tutorial tem a finalidade de guiar o aluno, dando orientações necessárias para o acesso, navegação e utilização das ferramentas principais. Um ambiente

Leia mais

MANUAL PARA UTILIZAÇÃO DO MOODLE FACULDADE INTERAÇÃO AMERICANA VIRTUAL - Versão: Aluno

MANUAL PARA UTILIZAÇÃO DO MOODLE FACULDADE INTERAÇÃO AMERICANA VIRTUAL - Versão: Aluno 1 MANUAL PARA UTILIZAÇÃO DO MOODLE FACULDADE INTERAÇÃO AMERICANA VIRTUAL - Versão: Aluno Acessando o sistema 1- Para acessar a Faculdade Interação Americana Virtual digite o seguinte endereço: http://ead.fia.edu.br/

Leia mais

Manual Ambiente Virtual de Aprendizagem Moodle-ESPMG 2.0

Manual Ambiente Virtual de Aprendizagem Moodle-ESPMG 2.0 Manual Ambiente Virtual de Aprendizagem Moodle-ESPMG 2.0 Adriano Lima Belo Horizonte 2011 SUMÁRIO Apresentação... 3 Acesso ao Ambiente Virtual de Aprendizagem AVA ESP-MG... 3 Programação do curso no AVA-ESPMG

Leia mais

SUMÁRIO Acesso ao sistema... 2 Atendente... 3

SUMÁRIO Acesso ao sistema... 2 Atendente... 3 SUMÁRIO Acesso ao sistema... 2 1. Login no sistema... 2 Atendente... 3 1. Abrindo uma nova Solicitação... 3 1. Consultando Solicitações... 5 2. Fazendo uma Consulta Avançada... 6 3. Alterando dados da

Leia mais

ISO/IEC 12207: Gerência de Configuração

ISO/IEC 12207: Gerência de Configuração ISO/IEC 12207: Gerência de Configuração Durante o processo de desenvolvimento de um software, é produzida uma grande quantidade de itens de informação que podem ser alterados durante o processo Para que

Leia mais

Módulo 1 Configuração de Cursos. Robson Santos da Silva Ms.

Módulo 1 Configuração de Cursos. Robson Santos da Silva Ms. Módulo 1 Configuração de Cursos Robson Santos da Silva Ms. Olá! Estamos iniciando o Módulo 1. Nele, aprenderemos a configurar um novo curso no MOODLE. Além disso, identificaremos os dispositivos e ferramentas

Leia mais

Tutorial Moodle Visão do Aluno

Tutorial Moodle Visão do Aluno Tutorial Moodle Visão do Aluno A P R E S E N T A Ç Ã O A sigla MOODLE significa (Modular Object Oriented Dynamic Learning Environment), em inglês MOODLE é um verbo que descreve a ação ao realizar com gosto

Leia mais

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02 ArpPrintServer Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02 1 Sumário INTRODUÇÃO... 3 CARACTERÍSTICAS PRINCIPAIS DO SISTEMA... 3 REQUISITOS DE SISTEMA... 4 INSTALAÇÃO

Leia mais

Sistema de Controle de Solicitação de Desenvolvimento

Sistema de Controle de Solicitação de Desenvolvimento Sistema de Controle de Solicitação de Desenvolvimento Introdução O presente documento descreverá de forma objetiva as principais operações para abertura e consulta de uma solicitação ao Setor de Desenvolvimento

Leia mais

INSTRUMENTO NORMATIVO 004 IN004

INSTRUMENTO NORMATIVO 004 IN004 1. Objetivo Definir um conjunto de critérios e procedimentos para o uso do Portal Eletrônico de Turismo da Região disponibilizado pela Mauatur na Internet. Aplica-se a todos os associados, empregados,

Leia mais

Sumário INTRODUÇÃO... 3. 1. Acesso ao Ambiente do Aluno... 4. 2. Ferramentas e Configurações... 5. 2.1 Ver Perfil... 5. 2.2 Modificar Perfil...

Sumário INTRODUÇÃO... 3. 1. Acesso ao Ambiente do Aluno... 4. 2. Ferramentas e Configurações... 5. 2.1 Ver Perfil... 5. 2.2 Modificar Perfil... Sumário INTRODUÇÃO... 3 1. Acesso ao Ambiente do Aluno... 4 2. Ferramentas e Configurações... 5 2.1 Ver Perfil... 5 2.2 Modificar Perfil... 6 2.3 Alterar Senha... 11 2.4 Mensagens... 11 2.4.1 Mandando

Leia mais

mbiente Virtua de Aprendizagem

mbiente Virtua de Aprendizagem mbiente Virtua de Aprendizagem Apresentação Este é o Ambiente Virtual de Aprendizagem - o AVA da Unisuam Online. É nosso desejo que a UNISUAM lhe proporcione uma qualificação acadêmica condizente com suas

Leia mais

COORDENAÇÃO DE EAD MANUAL DE UTILIZAÇÃO DO MOODLE 2.6 PERFIL ALUNO. Versão 1.0

COORDENAÇÃO DE EAD MANUAL DE UTILIZAÇÃO DO MOODLE 2.6 PERFIL ALUNO. Versão 1.0 COORDENAÇÃO DE EAD MANUAL DE UTILIZAÇÃO DO MOODLE 2.6 PERFIL ALUNO Versão 1.0 2015 SUMÁRIO 1. O MOODLE 3 2. Acesso à Plataforma 3 2.1. Cadastrar-se em uma disciplina 4 2.2. Página Inicial do Curso 5 3.

Leia mais

ATIVIDADES PRÁTICAS SUPERVISIONADAS

ATIVIDADES PRÁTICAS SUPERVISIONADAS ATIVIDADES PRÁTICAS SUPERVISIONADAS CST em Análise e Desenvolvimento de Sistemas 5ª. Série Programação e Design para Web A atividade prática supervisionada (ATPS) é um procedimento metodológico de ensino-aprendizagem

Leia mais

Ambiente de Aprendizagem Moodle FPD Manual do Aluno

Ambiente de Aprendizagem Moodle FPD Manual do Aluno Ambiente de Aprendizagem Moodle FPD Manual do Aluno Maio 2008 Conteúdo 1 Primeiros passos...4 1.1 Tornando-se um usuário...4 1.2 Acessando o ambiente Moodle...4 1.3 O ambiente Moodle...4 1.4 Cadastrando-se

Leia mais

Planejando o aplicativo

Planejando o aplicativo Um aplicativo do Visual FoxPro geralmente inclui um ou mais bancos de dados, um programa principal que configura o ambiente de sistema do aplicativo, além de uma interface com os usuários composta por

Leia mais

INTRODUÇÃO: 1 - Conectando na sua conta

INTRODUÇÃO: 1 - Conectando na sua conta INTRODUÇÃO: Com certeza a reação da maioria dos que lerem esse mini manual e utilizarem o servidor vão pensar: "mas porque eu tenho que usar um console se em casa eu tenho uma interface gráfica bonito

Leia mais

MANUAL DO GERENCIADOR ESCOLAR WEB

MANUAL DO GERENCIADOR ESCOLAR WEB CNS LEARNING MANUAL DO GERENCIADOR ESCOLAR WEB Versão Online 13 Índice ÍNDICE... 1 VISÃO GERAL... 2 CONCEITO E APRESENTAÇÃO VISUAL... 2 PRINCIPAIS MÓDULOS... 3 ESTRUTURAÇÃO... 3 CURSOS... 4 TURMAS... 4

Leia mais

Universidade Anhanguera Uniderp Centro de Educação a Distância

Universidade Anhanguera Uniderp Centro de Educação a Distância Universidade Anhanguera Uniderp Centro de Educação a Distância CURSOS DE GRADUAÇÃO MODALIDADE A DISTÂNCIA 2º semestre letivo / 2012 Sumário 1. Objetivo... 04 2. O Ambiente Virtual de Aprendizagem... 04

Leia mais

MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento. Toledo PR. Versão 2.0 - Atualização 26/01/2009 Depto de TI - FASUL Página 1

MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento. Toledo PR. Versão 2.0 - Atualização 26/01/2009 Depto de TI - FASUL Página 1 MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento Toledo PR Página 1 INDICE 1. O QUE É O SORE...3 2. COMO ACESSAR O SORE... 4 2.1. Obtendo um Usuário e Senha... 4 2.2. Acessando o SORE pelo

Leia mais

TUTORIAL UNP VIRTUAL

TUTORIAL UNP VIRTUAL UNIVERSIDADE POTIGUAR UnP PRÓ-REITORIA DE GRADUAÇÃO NÚCLEO DE EDUCAÇÃO A DISTÂNCIA NEaD TUTORIAL UNP VIRTUAL Aluno Primeira edição NATAL/RN 2012 SUMÁRIO Conteúdo PREFÁCIO - BEM-VINDO(A) AO UNP VIRTUAL...

Leia mais

Manual do Visualizador NF e KEY BEST

Manual do Visualizador NF e KEY BEST Manual do Visualizador NF e KEY BEST Versão 1.0 Maio/2011 INDICE SOBRE O VISUALIZADOR...................................................... 02 RISCOS POSSÍVEIS PARA O EMITENTE DA NOTA FISCAL ELETRÔNICA.................

Leia mais

Manual de Utilização

Manual de Utilização Manual de Utilização Versão 1.0 18/01/2013 Sempre consulte por atualizações deste manual em nossa página. O Cotação Web está em constante desenvolvimento, podendo ter novas funcionalidades adicionadas

Leia mais

Plano de Gerenciamento do Projeto

Plano de Gerenciamento do Projeto Projeto para Soluções Contábeis 2015 Plano de Gerenciamento do Projeto Baseado na 5ª edição do Guia PMBOK Brendon Genssinger o e Elcimar Silva Higor Muniz Juliermes Henrique 23/11/2015 1 Histórico de alterações

Leia mais

Footprints Service Core. Manual de uso do sistema

Footprints Service Core. Manual de uso do sistema Footprints Service Core Manual de uso do sistema Sumário Acessando o sistema... 3 Visão geral... 4 Criação de chamados... 5 Acompanhamento de chamados... 7 Compartilhamento de chamados... 8 Notificações...

Leia mais

Tema 3 Ferramentas e Funcionalidades do Moodle

Tema 3 Ferramentas e Funcionalidades do Moodle Tema 3 Ferramentas e Funcionalidades do Moodle O Moodle dispõe de uma variedade de ferramentas que podem aumentar a eficácia de um curso online. É possível facilmente compartilhar materiais de estudo,

Leia mais

EDITAL DE SELEÇÃO PÓS-GRADUAÇÃO LATO SENSU Modalidade Online

EDITAL DE SELEÇÃO PÓS-GRADUAÇÃO LATO SENSU Modalidade Online EDITAL DE SELEÇÃO PÓS-GRADUAÇÃO LATO SENSU Modalidade Online ENSINO DE QUÍMICA Regulamentação de Pós-Graduação Lato Sensu e Ato de Credenciamento Institucional para Oferta de Curso de Pós-Graduação na

Leia mais

Manual Geral do OASIS

Manual Geral do OASIS Manual Geral do OASIS SISTEMA DE GESTÃO DE DEMANDA, PROJETO E SERVIÇO DE TECNOLOGIA DA INFORMAÇÃO OASIS Introdução Esse manual tem como objetivo auxiliar aos usuários nos procedimentos de execução do sistema

Leia mais

CARDS - Jogo Educativo na Internet para Ensino a Distância

CARDS - Jogo Educativo na Internet para Ensino a Distância CARDS - Jogo Educativo na Internet para Ensino a Distância 1 Introdução Bruno Astuto Arouche Nunes Sergio Barbosa Villas-Boas 1 Henrique Falleiros Tendo em vista que o processo de ensino, nos dias de hoje,

Leia mais

PROGRAMA DE CAPACITAÇÃO E APERFEIÇOAMENTO PARA TUTORES - PCAT

PROGRAMA DE CAPACITAÇÃO E APERFEIÇOAMENTO PARA TUTORES - PCAT 1 RESOLUÇÃO CONSU 2015 04 de 14/04/2015 PROGRAMA DE CAPACITAÇÃO E APERFEIÇOAMENTO PARA TUTORES - PCAT Campus Virtual 2 A. JUSTIFICATIVA A vida universitária tem correspondido a um período cada vez mais

Leia mais

AULA 06 CRIAÇÃO DE USUÁRIOS

AULA 06 CRIAÇÃO DE USUÁRIOS AULA 06 CRIAÇÃO DE USUÁRIOS O Windows XP fornece contas de usuários de grupos (das quais os usuários podem ser membros). As contas de usuários são projetadas para indivíduos. As contas de grupos são projetadas

Leia mais

Pesquisa com Professores de Escolas e com Alunos da Graduação em Matemática

Pesquisa com Professores de Escolas e com Alunos da Graduação em Matemática Pesquisa com Professores de Escolas e com Alunos da Graduação em Matemática Rene Baltazar Introdução Serão abordados, neste trabalho, significados e características de Professor Pesquisador e as conseqüências,

Leia mais

Sistema Gerenciador de Conteúdo OpenCms: um caso de sucesso no CEFET-MG

Sistema Gerenciador de Conteúdo OpenCms: um caso de sucesso no CEFET-MG Sistema Gerenciador de Conteúdo OpenCms: um caso de sucesso no CEFET-MG Marco T. A. Rodrigues*, Paulo E. M. de Almeida* *Departamento de Recursos em Informática Centro Federal de Educação Tecnológica de

Leia mais

Novell. Novell Teaming 1.0. novdocx (pt-br) 6 April 2007 EXPLORAR O PORTLET BEM-VINDO DESCUBRA SEU CAMINHO USANDO O NOVELL TEAMING NAVIGATOR

Novell. Novell Teaming 1.0. novdocx (pt-br) 6 April 2007 EXPLORAR O PORTLET BEM-VINDO DESCUBRA SEU CAMINHO USANDO O NOVELL TEAMING NAVIGATOR Novell Teaming - Guia de início rápido Novell Teaming 1.0 Julho de 2007 INTRODUÇÃO RÁPIDA www.novell.com Novell Teaming O termo Novell Teaming neste documento se aplica a todas as versões do Novell Teaming,

Leia mais

TUTORIAL: MANTENDO O BANCO DE DADOS DE SEU SITE DENTRO DO DOMÍNIO DA USP USANDO O SSH!

TUTORIAL: MANTENDO O BANCO DE DADOS DE SEU SITE DENTRO DO DOMÍNIO DA USP USANDO O SSH! UNIVERSIDADE DE SÃO PAULO (USP) ESCOLA DE ARTES, CIÊNCIAS E HUMANIDADES (EACH) TUTORIAL: MANTENDO O BANCO DE DADOS DE SEU SITE DENTRO DO DOMÍNIO DA USP USANDO O SSH! Autoria e revisão por: PET Sistemas

Leia mais

Demonstrativo de Informações Previdenciárias e Repasses

Demonstrativo de Informações Previdenciárias e Repasses CADPREV CADPREV Ente Local Aplicativo Desktop Manual do Usuário Demonstrativo de Informações Previdenciárias e Repasses Data Publicação: 28/08/2013 1 de 21 Índice 1 Finalidade... 3 2 Visão Geral... 3 3

Leia mais

A PRESENTAÇÃO SUMÁRIO

A PRESENTAÇÃO SUMÁRIO SUMÁRIO Apresentação Como ter sucesso na educação à distância A postura do aluno online Critérios de Avaliação da aprendizagem do aluno Como acessar a plataforma Perguntas freqüentes A PRESENTAÇÃO O Manual

Leia mais

SCIM 1.0. Guia Rápido. Instalando, Parametrizando e Utilizando o Sistema de Controle Interno Municipal. Introdução

SCIM 1.0. Guia Rápido. Instalando, Parametrizando e Utilizando o Sistema de Controle Interno Municipal. Introdução SCIM 1.0 Guia Rápido Instalando, Parametrizando e Utilizando o Sistema de Controle Interno Municipal Introdução Nesta Edição O sistema de Controle Interno administra o questionário que será usado no chek-list

Leia mais

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1. ARCO - Associação Recreativa dos Correios Sistema para Gerenciamento de Associações Recreativas Versão Histórico da Revisão Data Versão Descrição Autor Página

Leia mais

Registro e Acompanhamento de Chamados

Registro e Acompanhamento de Chamados Registro e Acompanhamento de Chamados Contatos da Central de Serviços de TI do TJPE Por telefone: (81) 2123-9500 Pela intranet: no link Central de Serviços de TI Web (www.tjpe.jus.br/intranet) APRESENTAÇÃO

Leia mais

Considerações a serem feitas antes da implantação.

Considerações a serem feitas antes da implantação. Multi-Loja Objetivo O objetivo deste documento é demonstrar o conceito de Multi-loja utilizando o Sismoura. É uma ferramenta que permite a comunicação entre as empresas, possibilitando assim que a matriz

Leia mais

Utilizando a ferramenta de criação de aulas

Utilizando a ferramenta de criação de aulas http://portaldoprofessor.mec.gov.br/ 04 Roteiro Utilizando a ferramenta de criação de aulas Ministério da Educação Utilizando a ferramenta de criação de aulas Para criar uma sugestão de aula é necessário

Leia mais

CONSTRUÇÃO DE BLOG COM O BLOGGER

CONSTRUÇÃO DE BLOG COM O BLOGGER CONSTRUÇÃO DE BLOG COM O BLOGGER Blog é uma abreviação de weblog, qualquer registro frequênte de informações pode ser considerado um blog (últimas notícias de um jornal online por exemplo). A maioria das

Leia mais

CURSO DE EXTENSÃO ON-LINE EM. avançado. Edital de seleção

CURSO DE EXTENSÃO ON-LINE EM. avançado. Edital de seleção CURSO DE EXTENSÃO ON-LINE EM Programação Avançada na Plataforma VB.NET básico e avançado Edital de seleção Nome do curso: Programação Avançada na Plataforma VB.NET básico e avançado Coordenador Geral:

Leia mais

CENTRO EDUCACIONAL BANDEIRANTES MANUAL DO ALUNO

CENTRO EDUCACIONAL BANDEIRANTES MANUAL DO ALUNO CENTRO EDUCACIONAL BANDEIRANTES MANUAL DO ALUNO 1 SUMÁRIO INFORMAÇÕES GERAIS 03 QUEM PODE FAZER O CURSO DE EJA A DISTÂNCIA 04 MATRÍCULA 04 COMO FUNCIONA 05 CALENDÁRIO DOS CURSOS 06 AVALIAÇÃO E CRITÉRIOS

Leia mais

ESTADO DE RONDÔNIA PODER JUDICIÁRIO TRIBUNAL DE JUSTIÇA DOCUMENTAÇÃO: JULGAMENTO VIRTUAL

ESTADO DE RONDÔNIA PODER JUDICIÁRIO TRIBUNAL DE JUSTIÇA DOCUMENTAÇÃO: JULGAMENTO VIRTUAL ESTADO DE RONDÔNIA PODER JUDICIÁRIO TRIBUNAL DE JUSTIÇA DOCUMENTAÇÃO: JULGAMENTO VIRTUAL 1. Visão Geral do Projeto Visando dinamizar ainda mais o julgamento dos processos de competência do Tribunal de

Leia mais