Use este identificador para citar ou linkar para este item: https://repositorio.unipampa.edu.br/jspui/handle/riu/4839
Tipo: Trabalho de Conclusão de Curso
Título: SiNo: Uma ferramenta didática de apoio para o ensino de máquina NORMA
Autor(es): Santos, Guilherme Souza
Primeiro Orientador: Gindri, Letícia
Coorientador: Coelho, Rafael Santos
Resumo: O que conhecemos hoje por Teoria da Computação começou a ser formulado a partir do ano de 1900. Neste ano, uma lista de problemas matemáticos foi apresentada por Hilbert e um deles, conhecido como Entscheidungsproblem, motivou diversos estudos que contribuíram significativamente para a construção do conceito de computação moderna. Os trabalhos desenvolvidos nos anos seguintes, apresentaram propostas de vários modelos de máquinas de computar, a saber: Máquinas de Turing, Máquinas de Post, Máquinas de Registradores, 𝜆-Cálculo e Autômatos com Pilhas. Tendo como base o conceito de máquinas de registradores, em particular, a máquina NORMA, este trabalho visa desenvolver um simulador para essa estrutura que possa ser utilizado como ferramenta didática em componentes curriculares de computabilidade ou teoria da computação. Pesquisando em literatura apropriada encontramos alguns simuladores de máquina NORMA dos quais comentamos um pouco na seção 2.4. Entre eles, o que mais se destaca é o simulador desenvolvido pelo Prof. Rodrigo Machado (UFRGS). O diferencial da nossa proposta é justamente tentar facilitar o máximo possível a sintaxe das estruturas a serem programadas no simulador a fim de tornar mais simples a experiência do usuário. A fim de alcançar esse objetivo, utilizamos procedimentos da Engenharia de Software, começando pela definição do modelo de desenvolvimento de software a ser utilizado, tendo sido selecionado o processo Cascata. Esta escolha justifica-se pois este modelo sugere uma abordagem sequencial e sistemática e, além disso, os requisitos são bem definidos e estáveis. Com isso, iniciamos pelo levantamento de requisitos e em seguida realizamos a fase de planejamento, na qual definimos o cronograma e verificações de status de desenvolvimento. Na etapa de modelagem fizemos a análise e o projeto, seguindo para codificação e por último, foram realizados testes de código e com usuários onde obtivemos alguns feedbacks com relação ao software e suas funcionalidades, concluindo assim o processo. Além disso, foram utilizadas técnicas de qualidades para garantir que o simulador desenvolvido tivesse a qualidade e usabilidade adequadas. O simulador foi desenvolvido na linguagem Python e também foi desenvolvida uma interface para interação do usuário, contendo as funcionalidades presentes no software. Destacamos que a ferramenta oferece suporte para programar por meio de estruturação iterativa, sendo assim, a maioria das estruturas internas são testes condicionais e laços de repetição, visando facilitar a forma de programar, bem como otimizar o tempo gasto para isso.
Abstract: The theory of computation, as we know it today, began to flourish as an independent research field in the early 1900s. One of its main enablers was David Hilbert’s famous Entscheidungsproblem, a mathematical problem in logic that can be phrased as the following question: is there an effective method that can determine, in a finite amount of steps, the validity of a given formula expressed in the language of first-order arithmetic? In an effort to solve Hilbert’s Entscheidungsproblem, a group of mathematicians and logicians (most notably Alonzo Church, Alan Turing, Kurt Goedel, Emil Post and Stephen Kleene), throughout the 1920s and 1930s, set out to find a precise, rigorous definition of the intuitive notion of "effective method". As a result of their work, different (but equivalent) formal models of computation were proposed, such as Turing machines, the untyped 𝜆-Calculus and the general recursive functions. Later on, in the 1960s and 1970s, another strand of models of computation was introduced in the literature, namely the unlimited register machines. The NORMA machine (Number-theORetic Register MAchine), a very minimalistic kind of unlimited register machine, was invented by Richard Bird in 1976. In this work, we present SiNo, a user-friendly simulator for the NORMA machine. We hope that this simulator can be used as a didactic tool to help teachers communicate, in a clearer and more straightforward manner, abstract concepts within the scope of the theory of computation. There are some other NORMA machine simulators available on the Internet. However, what distinguises ours from those is that our simulator has a more flexible syntax, which makes the learning experience less tedious. We have built SiNo using the Python programming language and following the well-known waterfall model of software engineering. During the development of our work, we had the opportunity to employ SiNo in classroom activities and to get positive feedback from students.
Palavras-chave: Engenharia de software
Desenvolvimento de software
Teoria da computação
Simuladores
Software engineering
Software development
Computation theory
Simulators
CNPq: CNPQ::CIENCIAS EXATAS E DA TERRA
Idioma: por
País: Brasil
Editor: Universidade Federal do Pampa
Sigla da Instituição: UNIPAMPA
Campus: Campus Alegrete
Citação: SANTOS, Guilherme Souza. SiNo: Uma ferramenta didática de apoio para o ensino de máquina NORMA. Orientador: Letícia Gindri. 2019. 77 p. Trabalho de Conclusão de Curso (Bacharel em Engenharia de Software) - Universidade Federal do Pampa, Curso de Engenharia de Software, Alegrete, 2019.
Tipo de Acesso: Acesso Aberto
URI: http://dspace.unipampa.edu.br:8080/jspui/handle/riu/4839
Data do documento: 28-Nov-2019
Aparece nas coleções:Engenharia de Software

Arquivos associados a este item:
Arquivo Descrição TamanhoFormato 
Guilherme Souza Santos - 2019.pdf1.66 MBAdobe PDFVisualizar/Abrir


Os itens no repositório estão protegidos por copyright, com todos os direitos reservados, salvo quando é indicado o contrário.