Publication

SiNo: Uma ferramenta didática de apoio para o ensino de máquina NORMA

View document

Bibliographic Details
Summary: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.
Main Authors:Santos, Guilherme Souza
Subject:CNPQ::CIENCIAS EXATAS E DA TERRA Engenharia de software Desenvolvimento de software Teoria da computação Simuladores Software engineering Software development Computation theory Simulators
Year:2020
Country:Brazil
Document type:bachelor thesis
Access type:open access
Associated institution:IBICT
Language:Portuguese
Origin:Oasisbr
_version_ 1871608784322822144
author Santos, Guilherme Souza
author_facet Santos, Guilherme Souza
author_role author
country_str BR
creators_json_txt [{\"Person.name\":\"Santos, Guilherme Souza\"}]
datacite.creators.creator.creatorName.fl_str_mv Santos, Guilherme Souza
datacite.date.Accepted.fl_str_mv 2019-11-28T00:00:00Z
datacite.date.available.fl_str_mv 2020-02-27T12:59:45Z
datacite.date.embargoed.fl_str_mv 2020-02-27T12:59:45Z
datacite.rights.fl_str_mv http://purl.org/coar/access_right/c_abf2
datacite.subjects.subject.fl_str_mv CNPQ::CIENCIAS EXATAS E DA TERRA
Engenharia de software
Desenvolvimento de software
Teoria da computação
Simuladores
Software engineering
Software development
Computation theory
Simulators
datacite.titles.title.fl_str_mv SiNo: Uma ferramenta didática de apoio para o ensino de máquina NORMA
dc.creator.none.fl_str_mv Santos, Guilherme Souza
dc.date.Accepted.fl_str_mv 2019-11-28T00:00:00Z
dc.date.available.fl_str_mv 2020-02-27T12:59:45Z
dc.date.embargoed.fl_str_mv 2020-02-27T12:59:45Z
dc.description.none.fl_str_mv 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.
dc.identifier.none.fl_str_mv http://dspace.unipampa.edu.br:8080/jspui/handle/riu/4839
dc.language.none.fl_str_mv por
dc.publisher.none.fl_str_mv Universidade Federal do Pampa
UNIPAMPA
Brasil
Campus Alegrete
dc.rights.none.fl_str_mv http://purl.org/coar/access_right/c_abf2
dc.source.none.fl_str_mv reponame:Repositório Institucional da UNIPAMPA
instname:Universidade Federal do Pampa (UNIPAMPA)
instacron:UNIPAMPA
dc.subject.none.fl_str_mv CNPQ::CIENCIAS EXATAS E DA TERRA
Engenharia de software
Desenvolvimento de software
Teoria da computação
Simuladores
Software engineering
Software development
Computation theory
Simulators
dc.title.fl_str_mv SiNo: Uma ferramenta didática de apoio para o ensino de máquina NORMA
dc.type.none.fl_str_mv http://purl.org/coar/resource_type/c_7a1f
description 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.
dirty 0
eu_rights_str_mv openAccess
format bachelorThesis
id oasisbr_bb596ec4b20cf25eb6be01a9f9fa6253
identifier.url.fl_str_mv http://dspace.unipampa.edu.br:8080/jspui/handle/riu/4839
inst_facet_str urn:organizationAcronym:oasisbr{{{_:::_}}}IBICT
instacron_str OASISBR
institution IBICT
instname_str IBICT
language por
network_acronym_str oasisbr
network_name_str Oasisbr
oai_identifier_str oai:repositorio.unipampa.edu.br:riu/4839
organization_str_mv urn:organizationAcronym:oasisbr
person_str_mv Santos, Guilherme Souza
publishDate 2020
publisher.none.fl_str_mv Universidade Federal do Pampa
UNIPAMPA
Brasil
Campus Alegrete
repo_facet_str urn:repositoryAcronym:oasisbr{{{_:::_}}}Oasisbr
reponame_str Oasisbr
repository_id_str urn:repositoryAcronym:oasisbr
service_str_mv urn:repositoryAcronym:oasisbr
spelling SiNo: Uma ferramenta didática de apoio para o ensino de máquina NORMASantos, Guilherme SouzaCNPQ::CIENCIAS EXATAS E DA TERRAEngenharia de softwareDesenvolvimento de softwareTeoria da computaçãoSimuladoresSoftware engineeringSoftware developmentComputation theorySimulatorsopen accesshttp://purl.org/coar/access_right/c_abf2http://dspace.unipampa.edu.br:8080/jspui/handle/riu/4839URLSANTOS, 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.N/AHasVersionhttp://dspace.unipampa.edu.br:8080/jspui/handle/riu/4839URLHasVersion2020-02-27T12:59:45Z2020-02-272019-11-28T00:00:00ZO 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.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.porUniversidade Federal do PampaUNIPAMPABrasilCampus Alegretereponame:Repositório Institucional da UNIPAMPAinstname:Universidade Federal do Pampa (UNIPAMPA)instacron:UNIPAMPAVoRhttp://purl.org/coar/version/c_970fb48d4fbd8a85bachelor thesishttp://purl.org/coar/resource_type/c_7a1fother research product
spellingShingle SiNo: Uma ferramenta didática de apoio para o ensino de máquina NORMA
Santos, Guilherme Souza
CNPQ::CIENCIAS EXATAS E DA TERRA
Engenharia de software
Desenvolvimento de software
Teoria da computação
Simuladores
Software engineering
Software development
Computation theory
Simulators
status SINGLETON
status_str VoR
subject.fl_str_mv CNPQ::CIENCIAS EXATAS E DA TERRA
Engenharia de software
Desenvolvimento de software
Teoria da computação
Simuladores
Software engineering
Software development
Computation theory
Simulators
title SiNo: Uma ferramenta didática de apoio para o ensino de máquina NORMA
title_full SiNo: Uma ferramenta didática de apoio para o ensino de máquina NORMA
title_fullStr SiNo: Uma ferramenta didática de apoio para o ensino de máquina NORMA
title_full_unstemmed SiNo: Uma ferramenta didática de apoio para o ensino de máquina NORMA
title_short SiNo: Uma ferramenta didática de apoio para o ensino de máquina NORMA
title_sort SiNo: Uma ferramenta didática de apoio para o ensino de máquina NORMA
topic CNPQ::CIENCIAS EXATAS E DA TERRA
Engenharia de software
Desenvolvimento de software
Teoria da computação
Simuladores
Software engineering
Software development
Computation theory
Simulators
topic_facet CNPQ::CIENCIAS EXATAS E DA TERRA
Engenharia de software
Desenvolvimento de software
Teoria da computação
Simuladores
Software engineering
Software development
Computation theory
Simulators
url http://dspace.unipampa.edu.br:8080/jspui/handle/riu/4839
visible 1

Funded activities

No funded projects found.