GrameStation: Specifying Games with Graphs
Resumo
This paper presents a platform for creating games using graphs. The proposed game engine is based on a mathematical formalism called Graph Grammar. It aims to rescue, within computer science education, the stage of specification, that precedes programming. The proposal is aligned to the trends of the problem-solving focus, development of computational thinking, use of visual languages, game-related environments and the maker movement. The structure of the platform and the creation/execution of an example game are described and a brief discussion about specification in computer science education is given.
Referências
Azzi, G. G., Bezerra, J. S., Ribeiro, L., Costa, A., Rodrigues, L. M., and Machado, R. (2018). The verigraph system for graph transformation. In Graph Transformation, Specifications, and Nets, pages 160–178. Springer, Cham.
Boyle, E. A., Hainey, T., Connolly, T. M., Gray, G., Earp, J., Ott, M., Lim, T., Ninaus, M., Ribeiro, C., and Pereira, J. (2016). An update to the systematic literature review of empirical evidence of the impacts and outcomes of computer games and serious games. Computers & Education, 94:178–192.
Brennan, K. and Resnick, M. (2012). New frameworks for studying and assessing the development of computational thinking. In Proceedings of the 2012 annual meeting of the American Educational Research Association, Vancouver, Canada, volume 1, page 25.
Cardozo, A., Gayer, C., Cavalheiro, S., Foss, L., Du Bois, A., and Reiser, R. (2019). Flexible assessment in digital teaching-learning processes: Case studies via computational thinking. In Brazilian Symposium on Computers in Education (Simpósio Brasileiro de Informática na Educação-SBIE), volume 30, page 429.
Cavalheiro, S. A. d. C., Foss, L., and Ribeiro, L. (2017). Theorem proving graph grammars with attributes and negative application conditions. Theoretical Computer Science, 686:25–77.
Corradini, A., Montanari, U., Rossi, F., Ehrig, H., Heckel, R., and L¨owe, M. (1997). Algebraic approaches to graph transformation–part i: Basic concepts and double pushout approach. In Handbook Of Graph Grammars And Computing By Graph Transformation: Volume 1: Foundations, pages 163–245. World Scientific, Singapore.
Csikszentmihalyi, M. and Csikszentmihalyi, I. S. (1992). Optimal experience: Psychological studies of flow in consciousness. Cambridge university press, Cambridge.
de Araujo, N., Primo, T. T., and Pernas, A. M. (2020). Ontoscratch: ontologias para a avaliação do ensino de pensamento computacional através do scratch. In Anais do XXXI Simpósio Brasileiro de Informática na Educação, pages 1823–1832. SBC.
de Lima Sousa, L., Farias, E. J., and de Carvalho, W. V. (2020). Programação em blocos aplicada no ensino do pensamento computacional: Um mapeamento sistemático. In Anais do XXXI Simpósio Brasileiro de Informática na Educação, pages 1513–1522. SBC.
Denning, P. J. and Tedre, M. (2019). Computational Thinking. Mit Press.
Denning, P. J. and Tedre, M. (2021). Computational thinking: A disciplinary perspective. Informatics in Education.
Gaggioli, A. (2017). The no-code revolution may unlock citizens’ creative potential. Cyberpsychology, Behavior, and Social Networking, 20(8):508–509.
Garris, R., Ahlers, R., and Driskell, J. E. (2002). Games, motivation, and learning: A research and practice model. Simulation & gaming, 33(4):441–467.
Hiremath, S. V., Chen,W.,Wang, W., Foldes, S., Yang, Y., Tyler-Kabara, E. C., Collinger, J. L., and Boninger, M. L. (2015). Brain computer interface learning for systems based on electrocorticography and intracortical microelectrode arrays. Frontiers in integrative neuroscience, 9:40.
Hu, Y., Chen, C.-H., and Su, C.-Y. (2021). Exploring the effectiveness and moderators of block-based visual programming on student learning: A meta-analysis. Journal of Educational Computing Research, 58(8):1467–1493.
ISTE and CSTA (2011). Computational Thinking leadership toolkit. 1 edition.
Lee, I., Martin, F., Denner, J., Coulter, B., Allan, W., Erickson, J., Malyn-Smith, J., and Werner, L. (2011). Computational thinking for youth in practice. Acm Inroads, 2(1):32–37.
Lindberg, R. S., Laine, T. H., and Haaranen, L. (2019). Gamifying programming education in k-12: A review of programming curricula in seven countries and programming games. British Journal of Educational Technology, 50(4):1979–1995.
Luo, Y., Liang, P., Wang, C., Shahin, M., and Zhan, J. (2021). Characteristics and challenges of low-code development: The practitioners’ perspective. arXiv preprint arXiv:2107.07482.
Martin, L. (2015). The promise of the maker movement for education. Journal of Pre-College Engineering Education Research (J-PEER), 5(1):4.
Medeiros, R. P., Ramalho, G. L., and Falcão, T. P. (2018). A systematic literature review on teaching and learning introductory programming in higher education. IEEE Transactions on Education, 62(2):77–90.
Moreno-León, J., Robles, G., and Román-González, M. (2015). Dr. scratch: Automatic analysis of scratch projects to assess and foster computational thinking. Revista de Educación a Distancia (RED), 15(46):1–26.
Nakamura, J. and Csikszentmihalyi, M. (2009). Flow theory and research. Handbook of positive psychology, pages 195–206.
Oliveira, G., Assunção, O., and Prates, R. (2019). Strategies to introduce computational thinking to children: An analysis based on cultural viewpoint metaphors. In Brazilian Symposium on Computers in Education (Simpósio Brasileiro de Informática na Educação-SBIE), volume 30, page 547.
Rensink, A. (2003). The groove simulator: A tool for state space generation. In Proceedings of International Workshop on Applications of Graph Transformations with Industrial Relevance, pages 479–485, New York, NY, USA. Springer.
Resnick, M. et al. (2009). Scratch: Programming for all. Communications of the ACM, 52(11):60–67.
Ribeiro, L. (2000). Métodos formais de especificação: gramáticas de grafos. VIII Escola de Informática da SBC-Sul, pages 1–33.
Román-González, M. (2015). Computational thinking test: design guidelines and content validation. In Proceedings of 7th Annual International Conference on Education and New Learning Technologies (EDULEARN 2015), pages 2436–2444.
Selby, C. and Woollard, J. (2013). Computational thinking the developing definition. University of Southampton (E-prints).
Silva Junior, B. A. (2017). A última árvore, utilizando gramática de grafos em um jogo educacional para explorar o pensamento computacional. 2017. Thesis (Bachelor’s) – Bachelor of Science in Computer Engineering, Center for Technological Development, Federal University of Pelotas, Rio Grande do Sul, 2017.
Silva Junior, B. A., Cavalheiro, S. A. C., and Foss, L. (2018). Uma análise de um jogo educacional sob a ótica do pensamento computacional. In Simpósio Brasileiro de Informática na Educação-SBIE, volume 29, pages 595–604.
Silva Junior, B. A., Cavalheiro, S. A. C., and Foss, L. (2019a). Revisitando um jogo educacional para desenvolver o pensamento computacional com gramática de grafos. In Simpósio Brasileiro de Informática na Educação-SBIE, volume 30, pages 863–872.
Silva Junior, B. A., Cavalheiro, S. A. d. C., and Foss, L. (2017). A última árvore: exercitando o pensamento computacional por meio de um jogo educacional baseado em gramática de grafos. In Simpósio Brasileiro de Informática na Educação-SBIE, volume 28, pages 735–744. Porto Alegre: SBC.
Silva Junior, B. A., Cavalheiro, S. A. d. C., and Foss, L. (2019b). Métodos formais na educação básica: Operando gramática de grafos em um jogo educacional. In Workshop-Escola de Informática Teórica-WEIT), volume 5, pages 178–186. Passo Fundo: UPF.
Taentzer, G. (2003). Agg: A graph transformation environment for modeling and validation of software. In Proceedings of International Workshop on Applications of Graph Transformations with Industrial Relevance, pages 446–453, New York, NY, USA. Springer.
Tang, X., Yin, Y., Lin, Q., Hadad, R., and Zhai, X. (2020). Assessing computational thinking: A systematic review of empirical studies. Computers & Education, 148:103798.
Technologies, U. (2020). Unity real-time development platform — 3d, 2d, vr and ar engine. Unity Technologies, 2020. Available at: https://unity.com/. Accessed: 2020-02-17.
Tsai, C.-Y. (2019). Improving students understanding of basic programming concepts through visual programming language: The role of self-efficacy. Computers in Human Behavior, 95:224–232.
Tsukamoto, H. et al. (2016). Textual vs. visual programming languages in programming education for primary schoolchildren. In 2016 IEEE Frontiers in Education Conference (FIE), pages 1–7. IEEE.
Weintrop, D., Beheshti, E., Horn, M., Orton, K., Jona, K., Trouille, L., and Wilensky, U. (2016). Defining computational thinking for mathematics and science classrooms. Journal of Science Education and Technology, 25(1):127–147.
Wing, J. M. (2006). Computational thinking. Communications of the ACM, 49(3):33–35.
Zhang, L. and Nouri, J. (2019). A systematic review of learning by computational thinking through scratch in k-9. Computers & Education, page 103607.