994 resultados para Java (Linguagem de programação de computador)
Resumo:
Pós-graduação em Educação Matemática - IGCE
Resumo:
Este trabalho apresenta uma nova abordagem para avaliação automática de consultas SQL. Essa abordagem propõe uma solução para o desafio de estimular o aprendiz a aperfeiçoar a sua solução: buscando, além de uma resposta que retorna o resultado correto, uma consulta com complexidade próxima da solução ótima. Essa proposta pode ser utilizada em ambientes de educação a distancia ou na educação presencial em atividades de laboratório, incluindo as avaliações. A solução proposta tem como vantagens: (1) o aprendiz recebe um feedback instantâneo durante a atividade prática de programação, o qual permite ao aprendiz refatorar a sua solução em direção a uma solução ótima; (2) completa integração entre o ensino de conceitos de programação com exemplo de fragmentos de programas executáveis on-line; (3) monitoramento das atividades do aprendiz (quantos exemplos foram executados; em cada exercício quantas tentativas de execução foram feitas, etc). Este trabalho é um primeiro passo na direção de construção de um ambiente totalmente assistido (por exemplo com avaliação automática) para ensino da linguagem de programação SQL, onde o professor é liberado do árduo trabalho de correção de comandos SQL podendo realizar tarefas pedagógicas mais relevantes. O método, fundamentado em estatística e métricas da Engenharia de Software, pode ser adaptado para outras linguagens tais como Java e Pascal. Além disso, o LabSQL serve com um laboratório para experimentação de duas novas técnicas, uma de avaliação e outra de acompanhamento, que estão sendo pesquisadas em trabalhos em paralelos: (a) avaliação automática de questões conceituais discursivas, além de permitir as tradicionais perguntas objetivas, (b) método de acompanhamento através de montagem de uma rubrica de avaliação.
Resumo:
Pós-graduação em Engenharia Mecânica - FEG
Resumo:
This research studies the use of digital games as a playful tool approach of knowledge in architecture heritage. We emphasize the potential of digital games as a tool and importance of digital drawing combined with programming language, the means by which the making of the games became possible. The models developed are based on the properties of historical and cultural interest in the city of São Carlos, Brasil.
Resumo:
COSTA, Umberto Souza; MOREIRA, Anamaria Martins; MUSICANTE, Matin A.; SOUZA NETO, Plácido A. JCML: A specification language for the runtime verification of Java Card programs. Science of Computer Programming. [S.l]: [s.n], 2010.
Resumo:
COSTA, Umberto Souza; MOREIRA, Anamaria Martins; MUSICANTE, Matin A.; SOUZA NETO, Plácido A. JCML: A specification language for the runtime verification of Java Card programs. Science of Computer Programming. [S.l]: [s.n], 2010.
Resumo:
Mapas Conceituais são representações gráficas do conhecimento de uma pessoa num dado momento e área de conhecimento. Por sua natureza investigativa, são utilizados como ferramentas de apoio em abordagens pedagógicas que objetivam promover a aprendizagem significativa. No entanto, o processo de avaliação de um mapa tende a ser custoso pois acarreta uma pesada carga de processamento cognitivo por parte do avaliador, já que este precisa mapear os conceitos e relações em busca de nuances de conhecimento alí presentes. Essa pesquisa tem por objetivo aumentar o nível de abstração nas interações entre o avaliador e os mapas conceituais fornecendo uma camada intermediária de inteligência computacional que favoreça a comunicação por meio de perguntas e respostas em linguagem natural, fornecendo ao avaliador ferramentas que lhe permita examinar o conteúdo do mapa conceitual sem exigir deste o mapeamento visual dos conceitos e relações presentes nos mapas avaliados. Uma ferramenta é prototipada e uma prova de conceito apresentada. A análise da arquitetura proposta permitiu definir uma arquitetura final com características que permitem potencializar o uso de mapas conceituais e facilitar diversas operações pedagógicas com estes. Essa pesquisa situa-se na área de investigação de sistemas de perguntas e resposta, aplicando técnicas de processamento de linguagem natural para análise da pergunta e interpretação do mapa conceitual e aplica técnica de inteligência artificial para inferir respostas às perguntas.
Resumo:
No projeto de arquiteturas computacionais, a partir da evolução do modelo cliente-servidor, surgiram os sistemas distribuídos com a finalidade de oferecer características tais como: disponibilidade, distribuição, compartilhamento de recursos e tolerância a falhas. Estas características, entretanto, não são obtidas de forma simples. As aplicações distribuídas e as aplicações centralizadas possuem requisitos funcionais distintos; aplicações distribuídas são mais difíceis quanto ao projeto e implementação. A complexidade de implementação é decorrente principalmente da dificuldade de tratamento e de gerência dos mecanismos de comunicação, exigindo equipe de programadores experientes. Assim, tem sido realizada muita pesquisa para obter mecanismos que facilitem a programação de aplicações distribuídas. Observa-se que, em aplicações distribuídas reais, mecanismos de tolerância a falhas constituem-se em uma necessidade. Neste contexto, a comunicação confiável constitui-se em um dos blocos básicos de construção. Paralelamente à evolução tanto dos sistemas distribuídos como da área de tolerância a falhas, foi possível observar também a evolução das linguagens de programação. O sucesso do paradigma de orientação a objetos deve-se, provavelmente, à habilidade em modelar o domínio da aplicação ao invés da arquitetura da máquina em questão (enfoque imperativo) ou mapear conceitos matemáticos (conforme o enfoque funcional). Pesquisadores demonstraram que a orientação a objetos apresenta-se como um modelo atraente ao desenvolvimento de aplicações distribuídas modulares e tolerantes a falhas. Diante do contexto exposto, duas constatações estimularam basicamente a definição desta dissertação: a necessidade latente de mecanismos que facilitem a programação de aplicações distribuídas tolerantes a falhas; e o fato de que a orientação a objetos tem-se mostrado um modelo promissor ao desenvolvimento deste tipo de aplicação. Desta forma, nesta dissertação definem-se classes para a comunicação do tipo unicast e multicast, nas modalidades de envio confiável e não-confiável. Além destes serviços de comunicação básicos, foram desenvolvidas classes que permitem referenciar os participantes da comunicação através de nomes. As classes estão organizadas na forma de um pacote, compondo um framework. Sua implementação foi desenvolvida usando Java. Embora não tivessem sido requisitos básicos, as opções de projeto visaram assegurar resultados aceitáveis de desempenho e possibilidade de reuso das classes. Foram implementados pequenos trechos de código utilizando e testando a funcionalidade de cada uma das classes de comunicação propostas.
Resumo:
Muitos aplicativos atuais, envolvendo diversos domínios de conhecimento, são estruturados como arquiteturas de software que incorporam, além dos requisitos funcionais, requisitos não funcionais, como segurança, por exemplo. Tais requisitos podem constituir um domínio próprio, e, portanto, serem comuns a várias outras arquiteturas de software. Tecnologias como Programação Orientada a Aspectos, Reflexão Computacional e Padrões de Projeto colaboram no desenvolvimento de arquiteturas que provêem a separação de requisitos não funcionais. Porém, sua experimentação e adoção no domínio da segurança computacional ainda é incipiente. O foco deste trabalho é a elaboração de um padrão de projeto voltado à segurança, utilizando como arquitetura conceitual programação orientada a aspectos, e como arquitetura de implementação, reflexão computacional. A composição destas tecnologias resulta em um middleware orientado à segurança, voltado a aplicações desenvolvidas em Java. Estuda-se as tecnologias, seus relacionamentos com a área de segurança, seguido da proposta de uma arquitetura de referência, a partir da qual é extraído um protótipo do middleware de segurança. Este, por sua vez, provê mecanismos de segurança tão transparentes quanto possível para as aplicações que suporta. Com o objetivo de realizar a implementação do middleware de segurança, também são estudadas os mecanismos de segurança da plataforma Java, porém limitado ao escopo deste trabalho. Segue-se o estudo da base conceitual das tecnologias de Reflexão Computacional, o modelo de implementação, seguido de Programação Orientada a Aspectos, o modelo conceitual, e, por fim, têm-se os Padrões de Projeto, a arquitetura de referência. Integrando as três tecnologias apresentadas, propõe-se um modelo, que estabelece a composição de um Padrão Proxy, estruturado de acordo com a arquitetura reflexiva. Este modelo de arquitetura objetiva implementar o aspecto de segurança de acesso a componentes Java, de forma não intrusiva,. Baseado no modelo, descreve-se a implementação dos diversos elementos do middleware, estruturados de forma a ilustrar os conceitos propostos. Ao final, apresenta-se resultados obtidos durante a elaboração deste trabalho, bem como críticas e sugestões de trabalhos futuros.
Resumo:
Uma etapa fundamental no desenvolvimento de sistemas tolerantes a falhas é a fase de validação, onde é verificado se o sistema está reagindo de maneira correta à ocorrência de falhas. Uma das técnicas usadas para validar experimentalmente um sistema é injeção de falhas. O recente uso de sistemas largamente distribuídos para execução dos mais diversos tipos de aplicações, faz com que novas técnicas para validação de mecanismos de tolerância a falhas sejam desenvolvidas considerando este novo cenário. Injeção de falhas no sistema de comunicação do nodo é uma técnica tradicional para a validação de aplicações distribuídas, para forçar a ativação dos mecanismos de detecção e recuperação de erros relacionados à troca de mensagens. A condução de experimentos com injetores de comunicação tradicionais é feita pelo uso do injetor em uma máquina do sistema distribuído. Se o cenário desejado é de múltiplas falhas, o injetor deve ser instanciado independentemente nas n máquinas que as falhas serão injetadas. O controle de cada injetor é individual, o que dificulta a realização do experimento. Esta dificuldade aumenta significativamente se o cenário for um sistema distribuído de larga escala. Outro problema a considerar é a ausência de ferramentas apropriadas para a emulação de determinados cenários de falhas. Em aplicações distribuídas de larga escala, um tipo comum de falha é o particionamento de rede. Não há ferramentas que permitam diretamente a validação ou a verificação do processo de defeito de aplicações distribuídas quando ocorre um particionamento de rede Este trabalho apresenta o estudo de uma abordagem para injeção de falhas que permita o teste de atributos de dependabilidade de aplicações distribuídas de pequena e larga escala implementadas em Java. A abordagem considera a não obrigatoriedade da alteração do código da aplicação sob teste; a emulação de um cenário de falhas múltiplas que ocorrem em diferentes nodos, permitindo o controle centralizado do experimento; a validação de aplicações que executem em sistemas distribuídos de larga escala e consideram um modelo de falhas realista deste tipo de ambiente, incluindo particionamentos de rede. A viabilidade da abordagem proposta é mostrada através do desenvolvimento do protótipo chamado FIONA (Fault Injector Oriented to Network Applications), o qual atualmente injeta falhas em aplicações desenvolvidas sob o protocolo UDP.
Resumo:
Mandelbrot (1971) demonstrou a importância de considerar dependências de longo prazo na precificação de ativos - o método tradicional para mensurá-las, encontrado em Hurst (1951), faz uso da estatística R/S. Paralelamente a isso, Box e Jenkins (1976; edição original de 1970) apresentaram sua famosa metodologia para determinação da ordem dos parâmetros de modelos desenvolvidos no contexto de processos com memória de curto prazo, conhecidos por ARIMA (acrônimo do inglês Autoregressive Integrated Moving Average). Estimulados pela percepção de que um modelo que pretenda representar fielmente o processo gerador de dados deva explicar tanto a dinâmica de curto prazo quanto a de longo prazo, Granger e Joyeux (1980) e Hosking (1981) introduziram os modelos ARFIMA (de onde o F adicionado vem de Fractionally), uma generalização da classe ARIMA, nos quais a dependência de longo prazo estimada é relacionada ao valor do parâmetro de integração. Pode-se dizer que a partir de então processos com alto grau de persistência passaram a atrair cada vez mais o interesse de pesquisadores, o que resultou no desenvolvimento de outros métodos para estimá-la, porém sem que algum tenha se sobressaído claramente – e é neste ponto que o presente trabalho se insere. Por meio de simulações, buscou-se: (1) classificar diversos estimadores quanto a sua precisão, o que nos obrigou a; (2) determinar parametrizações razoáveis desses, entendidas aqui como aquelas que minimizam o viés, o erro quadrático médio e o desvio-padrão. Após rever a literatura sobre o tema, abordar estes pontos se mostrou necessário para o objetivo principal: elaborar estratégias de negociação baseadas em projeções feitas a partir da caracterização de dependências em dados intradiários, minuto a minuto, de ações e índices de ações. Foram analisadas as séries de retornos da ação Petrobras PN e do Índice Bovespa, com dados de 01/04/2013 a 31/03/2014. Os softwares usados foram o S-Plus e o R.
Resumo:
Coordenação de Aperfeiçoamento de Pessoal de Nível Superior (CAPES)
Resumo:
Coordenação de Aperfeiçoamento de Pessoal de Nível Superior (CAPES)
Resumo:
Pós-graduação em Engenharia Elétrica - FEIS