Ferramenta Didática Interativa Utilizando a Linguagem NCL: Algoritmo de Quine-McCluskey Hugo V. Mattos, Grupo PET-Tele, UFF Alexandre S. de la Vega, Grupo PET-Tele, UFF (pet.telecom.uff.br / [email protected]) INTRODUÇÃO Em vista da abrangência que a Televisão possui na população brasileira, visualiza-se uma possibilidade de inclusão digital da mesma através da implantação da TV Digital no país. No padrão de TV Digital adotado no Brasil, foi adotada um middleware composto pelas linguagens de programação NCL, Java e Lua. A linguagem NCL possui a característica de gerenciar eficientemente mídias de diversos tipos, permitindo um alto grau de interatividade. Portanto, além do conteúdo normal da Televisão e com o uso da interatividade, espera-se alcançar uma maior difusão de conhecimentos através desse novo canal de comunicação. O objetivo desse trabalho foi o desenvolvimento de uma ferramenta didática interativa, versando sobre o Algoritmo de Quine-McCluskey, inicialmente baseada na linguagem NCL, distribuída de forma gratuita. O ALGORITMO IMPLEMENTADO No ramo das Telecomunicações, circuitos digitais são largamente utilizados, nas mais diversas aplicações. Os circuitos digitais podem ser divididos em dois grandes grupos: circuitos combinacionais e circuitos sequenciais. Circuitos combinacionais podem ser vistos como implementações de funções lógicas booleanas. Uma mesma função pode ser descrita por diversas expressões lógicas. Thiago M. de Souza, Grupo PET-Tele, UFF Débora C. M. Saade, Laboratório MídiaCom, UFF (www.midiacom.uff.br / [email protected]) O APLICATIVO A interface com o usuário utiliza recursos de áudio, figuras e texto. O áudio foi subdividido em seções e é utilizado pelo código NCL para sincronizar os demais objetos de mídia. A apresentação é dividida em 63 telas, que demonstram como iniciar, desenvolver e finalizar o algoritmo de minimização implementado. São oferecidos dois tipos distintos de navegação: “Apresentação em fluxo contínuo” e “Apresentação com controle manual”, cada um implementado em um nó de contexto diferente. Na opção de fluxo contínuo, o término do áudio de uma tela provoca o início da tela seguinte. No controle manual, o usuário pode escolher os pontos de acesso, sendo obrigatório utilizar os botões de navegação (retroceder, avançar, início e sair) para percorrer a apresentação. A justificativa para o modo manual é que o usuário ocupe o tempo que julgar necessário para compreender todo o conteúdo apresentado em cada tela. Os botões “início” e “sair” foram implementados fora dos contextos para que se pudesse utilizar o recurso “re-uso de nós”, técnica disponível em NCL que facilita e torna mais eficiente a programação do aplicativo. Uma tela típica e a visão estrutural do aplicativo são apresentadas nas figuras abaixo. Quanto menor for a expressão lógica, menor será o circuito. Uma alternativa algorítmica de minimização de expressões lógicas é um método tabular denominado de Método dos Implicantes Primos ou Método de Quine-McCluskey. O aplicativo desenvolvido implementa o algoritmo básico, aplicado em expressões que apresentam uma expressão mínima única. A ESCOLHA DAS LINGUAGENS Diversas implementações do algoritmo de Quine-McCluskey podem ser encontradas, usando linguagens procedurais, que permitem uso local ou via Internet. Nesses casos, diversas interfaces gráficas podem ser utilizadas para trocar dados com o usuário. Porém, a integração de NCL com Lua viabiliza uma melhoria na interface com o usuário. Enquanto Lua realiza a parte de implementação procedural do cálculo do algoritmo, NCL é capaz de gerenciar eficientemente várias mídias diferentes para interagir com o usuário. Assim sendo, espera-se que o uso conjunto das linguagens NCL e Lua seja bastante adequado para o desenvolvimento de aplicativos didáticos interativos. Na sua primeira versão, a ferramenta apresenta um manual interativo do citado algoritmo, utilizando apenas a linguagem NCL. A LINGUAGEM NCL NCL é uma linguagem fundamentada no paradigma declarativo. A linguagem NCL possui os conceitos de nós e elos. Através desses conceitos, podem-se declarar documentos hipermídia, onde podem ser reunidos diversos tipos de mídia. As mídias podem interagir a partir de ações executadas pelo usuário. Cada nó pode ser também um conjunto de nós e elos, o qual passa a ser chamado de “nó de composição” ou “nó de contexto”. No caso de documentos extensos, tal construção permite uma melhor organização do documento e torna seu código menor e mais eficiente. CONCLUSÕES O aplicativo desenvolvido tem importância no quesito educação, por se tratar de um software gratuito, que poderá ser utilizado em qualquer aparelho de TV Digital brasileiro. A versão atual é um manual online e interativo do algoritmo em questão, que minimiza uma expressão exemplo, codificado na linguagem NCL. O próximo passo para uma evolução do aplicativo será permitir que o usuário apresente diferentes expressões lógicas a serem minimizadas. Assim sendo, o usuário poderá estudar a teoria através do manual interativo, exercitar a minimização manualmente e, por fim, verificar o resultado utilizando a parte procedural do aplicativo. Para isso, o algoritmo será implementado utilizando a linguagem Lua, ligando-se com o código NCL através da API NCLua. BIBLIOGRAFIA E REFERÊNCIAS F. J. Hill and G. R. Peterson. Introduction to Switching Theory and Logical Design. John Wiley, New York, NY, 3ed. , 1981. L. F. G. Soares and S. D. J. Barbosa. Programando em NCL 3.0: Desenvolvimento de aplicações para o middleware Ginga. Campus, Rio de Janeiro, RJ, 2009. R. Ierusalimschy. Programming in Lua. Lightning Source Inc, RJ, 2ed., 2006. Ferramentas de desenvolvimento NCL-Ginga: http://www.gingancl.org.br.