Short Courses of CODEC 2025
Keywords:
RESTful APIs, Python, Flask, Google Firestore, Render, Multi-Agent System, LangGraph, End-to-End Testing, Playwright, Embedded Systems, BitDogLab, Git, GitHub, Code Versioning, GitHub DesktopSynopsis
The Book of Short Courses of the Congress on Systems and Computing Development – CODEC 2025, held in Piripiri, Piauí, and organized by the Federal Institute of Piauí (IFPI), compiles the extended versions of the short courses presented during the event. The volume encompasses contemporary and practice-oriented topics that reflect the current challenges and innovations in the fields of computing, software engineering, and systems development. The opening chapter, “Building Scalable APIs with Flask, Firestore, and Render”, presents a comprehensive approach to the design and deployment of RESTful APIs using Python, emphasizing modular architectures, NoSQL data persistence, and continuous cloud deployment practices. The second chapter, “Developing a Multi-Agent System for Scientific Research with LangGraph”, discusses the application of artificial intelligence through intelligent agents and multi-agent frameworks to automate scientific data retrieval, validation, and analysis processes. The third chapter, “Exploring End-to-End Testing with Playwright: An Invitation to Quality Automation”, addresses the theoretical and practical foundations of software testing, highlighting automation strategies that ensure quality assurance and reliability in web applications. The fourth chapter, “Embedded Systems: A Practical Approach with BitDogLab”, introduces the fundamentals of embedded systems through experimental activities that integrate hardware and software concepts in an accessible educational context. Finally, “Introduction to Git and GitHub: Version Control in Practice” provides a structured overview of version control principles and collaborative development workflows, focusing on the practical use of Git and GitHub in academic and professional environments. Collectively, the chapters illustrate the interdisciplinary nature of computing and software development. The CODEC 2025 short course collection embodies the event’s mission to promote the integration of teaching, research, and professional practice, fostering active learning, collaboration, and technological innovation.
Chapters
-
1. Building scalable APIs with Flask, Firestore, and Render
-
2. Developing a Multi-Agent System for Scientific Research with LangGraph
-
3. Exploring End-to-End Testing with Playwright: An Invitation to Quality Automation
-
4. Embedded Systems: A Practical Approach with BitDogLab
-
5. Introduction to Git and GitHub: Version Control in Practice
Downloads
References
Akdur, D., Comer, R., and Magedanz, T. (2018). Co-design and co-simulation of heterogeneous embedded systems: A survey. Simulation Modelling Practice and Theory, 89:276–292.
Akesson, B., Nasri, M., Nelissen, G., Altmeyer, S., and Davis, R. I. (2020). An empirical survey into industry practice in real-time embedded systems. Proceedings of the IEEE Real-Time Systems Symposium (RTSS).
ALMEIDA DA SILVA, Wildemarkes de et al. Mitigation of Hallucinations in Language Models in Education: A New Approach of Comparative and Cross-Verification. In: 2024 IEEE International Conference on Advanced Learning Technologies (ICALT). [S. l.: s. n.], 2024. p. 207–209. DOI: 10.1109/ICALT61570.2024.00066.
Alves, C. M. (2025). Ligeirinho —jogo de reflexo com bitdoglab. GitHub Repository. Jogo de tempo de reação que utiliza LEDs, botões, buzzer e display OLED em C com SDK do Raspberry Pi Pico (RP2040). Acesso em: 6 de setembro de 2025.
Alves, M. C. (2025). todo-codec: Aplicação para o minicurso de testes e2e com playwright. [link]. GitHub. Acesso em: 2025-10-20.
Andrade, M. (2024) “Boas práticas no Design e Desenvolvimento de APIs”, DIO.
ANTHROPIC. Anthropic key. [S. l.: s. n.], 2024. Acessado em 20 de março de 2025. Available from: [link].
AppMaster (2023) “Firestore: um mergulho profundo no banco de dados NoSQL do Firebase”, Disponível em: [link]. Acessado em: 31 de agosto de 2025.
AppMaster (s.d.) “Camada de serviço API”, Disponível em: [link]. Acessado em: 31 de agosto de 2025.
Ariza, J. A. and Baez, H. (2021). Understanding the role of singleboard computers in engineering and computer science education: A systematic literature review. Computer Applications in Engineering Education.
Atlassian. (n.d.). Comparing workflows. Atlassian Git Tutorials. [link].
AWS (s.d.) “O que é SOA? – Explicação sobre arquitetura orientada a serviços”, Disponível em: [link]. Acessado em: 31 de agosto de 2025.
BARBARROXA, Rafael; GOMES, Luis; VALE, Zita. Benchmarking Large Language Models for Multi-agent Systems: A Comparative Analysis of AutoGen, CrewAI, and TaskWeaver. In: MATHIEU, Philippe; DE LA PRIETA, Fernando (eds.). Advances in Practical Applications of Agents, Multi-Agent Systems, and Digital Twins: The PAAMS Collection. Cham: Springer Nature Switzerland, 2024. p. 39–48. ISBN 978-3-031-70415-4.
BENDER, Emily M. et al. On the Dangers of Stochastic Parrots: Can Language Models Be Too Big? In: PROCEEDINGS of the 2021 ACM Conference on Fairness, Accountability, and Transparency. Virtual Event, Canada: Association for Computing Machinery, 2021. (FAccT ’21), p. 610–623. ISBN 9781450383097. DOI: 10.1145/3442188.3445922.
Benyeogor, M. S., Benyeogor, A., Olaiya, K. A., and Agumey, P. (2024). Advancing embedded systems education: A pedagogical programming framework for smart system and control applications. TechRxiv / arXiv preprint.
Brito, B. (2020) “API RESTful Boas práticas”, Medium.
Chacon, S., & Straub, B. (2014). Pro Git (p. 456). Springer Nature.
CHASE, Harrison. LangGraph Documentation. [S. l.: s. n.], 2024. Acessado em 14 de março de 2025. Available from: [link].
Cohn, M. (2009). Succeeding with Agile: Software Development Using Scrum. Addison-Wesley Professional.
Community, B. (2025). Bitdoglab — open-hardware educational platform (readme and hcd). [link]. Acesso em: 1 de setembro de 2025.
Coursera. (2023). What is Git?. Coursera. [link].
Cypress (2025). Cypress documentation. [link]. Acesso em: 2025-10-20.
DEV Community (2024) “UV - A Ferramenta que Simplifica o Gerenciamento de Ambientes e Dependências no Python”,Disponível em: [link]
Earth Data Science. (n.d.). Basic Git commands. Earth Data Science Workshops. [link].
Elsevier / ScienceDirect (2025). Embedded computer— sciencedirect topics. [link]. Acesso em: 1 de setembro de 2025.
Encyclopaedia Britannica. (n.d.). GitHub. In Britannica. [link].
Everhour. (n.d.). What is GitHub?. Everhour Blog. [link].
Firebase (s.d.) “Documentação do Firestore”, Disponível em: [link]. Acessado em: 31 de agosto de 2025.
Foundation, R. P. (2021). Rp2040 microcontroller datasheet. [link]. Acesso em: 1 de setembro de 2025.
Fowler, M. (2012). The test pyramid. [link]. Acesso em: 2025-10-20.
Fowler, M. (2020). Refatoração: Aperfeiçoando o design de códigos existentes. Novatec Editora.
Fruett, F., Barbosa, F. P., Fraga, S. C. Z., and ao Guimarães, P. I. A. (2024). Empowering steam activities with artificial intelligence and open hardware: The bitdoglab. IEEE Transactions on Education, 67(3):462–471.
Garousi, V., Felderer, M., and Ribeiro, L. (2018). Testing embedded software: A survey of the literature. Information and Software Technology, 95:123–147.
Git SCM. (n.d.). Getting started: A short history of Git. Git. [link].
GitHub (s.d.) “Melhores práticas de manutenção de dependências”, Disponível em: [link] em: 31 de agosto de 2025.
GitHub Docs. (n.d.). About GitHub and Git. GitHub. [link].
GitHub Docs. (n.d.). About pull requests. GitHub. [link].
GitHub, Inc. (s.d.). Documentação do GitHub Desktop. Recuperado em 16 de julho de 2025, de [link].
GitHub. (2025). Criar uma conta no GitHub. GitHub Docs. Recuperado em 8 de setembro de 2025, de [link].
GitHub. (2025). Git turns 20: A Q&A with Linus Torvalds. GitLab Blog. [link].
GitHub. (2025). Instalar o GitHub Desktop. GitHub Docs. Recuperado em 8 de setembro de 2025, de [link].
GitLab. (2025). Journey through Git’s 20-year history. GitLab Blog. [link].
Google Cloud (s.d.) “Firestore”, Disponível em: [link]. Acessado em: 31 de agosto de 2025.
Gran Cursos Online (2022) “Conceituação e principais pontos sobre a arquitetura REST”, Disponível em: [link] em: 31 de agosto de 2025.
I Programmer. (2025). Linus on Git. I Programmer. [link].
Industries, A. (2025). Bitdoglab is a raspberry pi pico learning lab which encourages ai-assisted programming. [link]. Acesso em: 1 de setembro de 2025.
Inedo (2017) “Manual Deployment Disasters”, Disponível em: [link]. Acessado em: 31 de agosto de 2025.
Instruments, T. (2021). Implications of slow or floating cmos inputs (application report scba004e). Texas Instruments Application Report SCBA004E, July 1994 – Rev. E (Reviewed July 2021). [link]. Acesso em: 1 de setembro de 2025.
JORDAN, M. I.; MITCHELL, T. M. Machine learning: Trends, perspectives, and prospects. Science, v. 349, n. 6245, p. 255–260, 2015. DOI: 10.1126/science.aaa8415. eprint: [link]. Available from: [link].
Kester, W. (2009). Adc architectures ii: Successive approximation adcs (mt-021 tutorial). Analog Devices Tutorial. [link]. Acesso em: 1 de setembro de 2025.
KHANDARE, Anand et al. Analysis of Python Libraries for Artificial Intelligence. In: BALAS, Valentina Emilia; SEMWAL, Vijay Bhaskar; KHANDARE, Anand (eds.). Intelligent Computing and Networking. Singapore: Springer Nature Singapore, 2023. p. 157–177. ISBN 978-981-99-0071-8.
Kong Inc. (2021) “The Evolution of APIs: From RPC to SOAP and XML”, Disponível em: [link]. Acessado em: 31 de agosto de 2025.
Kopetz, H. (2022). Real–Time Systems: Design Principles for Distributed Embedded Applications. Springer. Referência moderna que cobre requisitos temporais em sistemas embarcados.
LBODEV (2024) “O Que é Service Layer: Entenda Sua Importância”, Disponível em: [link]. Acessado em: 31 de agosto de 2025.
Lee, M. and Levin, M. (2025). Anti-alias filter design for a 100 khz bandwidth data acquisition signal chain. Texas Instruments Application Note SBAA655A. [link]. Acesso em: 1 de setembro de 2025.
LUO, Tianze et al. Multi-Agent Collaborative Exploration through Graph-based Deep Reinforcement Learning. In: 2019 IEEE International Conference on Agents (ICA). [S. l.: s. n.], 2019. p. 2–7. DOI: 10.1109/AGENTS.2019.8929168.
Macoratti .net (2019) “.NET - Apresentando HATEOAS”, Disponível em: [link]. Acessado em: 31 de agosto de 2025.
Martin, R. C. (2012). O codificador limpo: um código de conduta para programadores profissionais. Alta Books.
MATHUR, Srushti; CHHABRA, Aayush. Vector Search Algorithms: A Brief Survey. In: 2024 4th International Conference on Ubiquitous Computing and Intelligent Information Systems (ICUIS). [S. l.: s. n.], 2024. p. 365–371. DOI: 10.1109/ICUIS64676.2024.10866377.
Mats, S. (2020). The story of GitHub: How a weekend hack became the world’s code playground. Medium. [link].
MELONI, Antonello et al. Integrating Conversational Agents and Knowledge Graphs Within the Scholarly Domain. IEEE Access, v. 11, p. 22468–22489, 2023. DOI: 10.1109/ACCESS.2023.3253388.
Meszaros, G. (2007). xUnit Test Patterns: Refactoring Test Code. Addison-Wesley Professional.
Micco, L. D., Vargas, F. L., and Fierens, P. I. (2018). A literature review on embedded systems. IEEE Latin America Transactions. Survey com definição e panorama de sistemas embarcados.
Microsoft (2025). Playwright documentation. [link]. Acesso em: 2025-10-20.
Mufid, I. and Basofi, A. (2019) “Design an MVC Model using Python for Flask Framework Development”, Semantic Scholar.
MuleSoft (s.d.) “Camada de API”, Disponível em: [link]. Acessado em: 31 de agosto de 2025.
NASCIMENTO, Larissa Souza do; BUDARUICHE, Ricardo Moura Sekeff. Como Criar seu Próprio Assistente de Pesquisa Científica com LangGraph. In: ANAIS do ENUCOMPI 2025. [S. l.]: Sociedade Brasileira de Computação, 2025. DOI: 10.5753/sbc.16935.3.3.
Neupane, A. (2024) “How to deploy a Flask app to Render” [Vídeo], YouTube.
Opsera (s.d.) “12 Business Benefits of CI/CD | A CI/CD Overview”, Disponível em: [link]. Acessado em: 31 de agosto de 2025.
Pasricha, S. (2022). Embedded systems education in the 2020s: Challenges, reflections, and future directions. arXiv preprint, arXiv:2206.03263.
Pereira, T., Albuquerque, D., Sousa, A., Alencar, F., and Castro, J. (2017). Retrospective and trends in requirements engineering for embedded systems: A systematic literature review. Proceedings of the 20th Workshop on Requirements Engineering (WER 2017). Revisão sistemática sobre engenharia de requisitos em sistemas embarcados.
PEROV, Vadim; PEROVA, Nina. AI Hallucinations: Is “Artificial Evil” Possible? In: 2024 IEEE Ural-Siberian Conference on Biomedical Engineering, Radioelectronics and Information Technology (USBEREIT). [S. l.: s. n.], 2024. p. 114–117. DOI: 10.1109/USBEREIT61901.2024.10584048.
Pi, R. (2025). raspberrypi/pico-sdk. GitHub repository. SDK oficial para desenvolvimento em C/C++ para microcontroladores RP-series (RP2040 / Pico), com APIs para GPIO, PWM, I!C, timers, PIO e mais. Acesso em: 1 de setembro de 2025.
ProgrammingKnowledge (2025) “How to Deploy Python Flask App on Render” [Vídeo], YouTube.
PSL Models. (n.d.). History of GitHub. Git Tutorial. [link].
Quora (2018) “What are the differences between a microframework and a full-stack framework?”, Disponível em: [link]. Acessado em: 31 de agosto de 2025.
Red Hat (2023) “API REST - O que é API REST?”, Disponível em: [link]. Acessado em: 31 de agosto de 2025.
Red Hat (2024) “What is CI/CD?”, Disponível em: [link]. Acessado em: 31 de agosto de 2025.
Render (s.d.) “Deploy a Flask App on Render”, Disponível em: [link]. Acessado em: 31 de agosto de 2025.
Rodrigues, D. (2025) “Aplicações modernas com Python: Desenvolvimento Web com Flask e FastAPI”, Google Books.
Sarro, T. (s.d.) “Good Practices on Manual Deployment”, Medium. Disponível em: [link]. Acessado em: 31 de agosto de 2025.
Selenium (2025). Selenium documentation. [link]. Acesso em: 2025-10-20.
Shannon, C. E. (1948). A mathematical theory of communication. Bell System Technical Journal, 27(3–4):379–423, 623–656.
Silva, T. (2019) “Flask: Crie aplicações web robustas com Python”, Casa do Código.
Solomon Systech / Adafruit (mirror) (2010). Ssd1306 oled driver – datasheet. [link]. Acesso em: 1 de setembro de 2025.
Sommerville, I. (2019). Engenharia de Software. Pearson Brasil.
Splunk (2023) “Intro to Python Frameworks Part 2 – Full-Stack vs. Micro Framework”, Disponível em: [link]. Acessado em: 31 de agosto de 2025.
Stack Overflow (2012) “Flask-framework: MVC pattern”, Disponível em: [link]. Acessado em: 31 de agosto de 2025.
STEM hash (2024) “Google’s Cloud Firestore Database: Leveraging The Binary Search Algorithm”, Disponível em: [link]. Acessado em: 31 de agosto de 2025.
STMicroelectronics (2009). Understanding and minimising adc conversion errors: Application note an1636. [link]. Acesso em: 1 de setembro de 2025.
STMicroelectronics (2015). Mp34dt01-m – mems digital microphone datasheet. [link]. Acesso em: 1 de setembro de 2025.
Sztipanovits, J., Biswas, G., Frampton, K., Gokhale, A., et al. (2005). Introducing embedded software and systems education and advanced learning technology in an engineering curriculum. ACM Transactions on Embedded Computing Systems, 4(3):549–568.
TAVILY. Tavily key. [S. l.: s. n.], 2024. Acessado em 20 de março de 2025. Available from: [link].
Telles, D. (2018) “Princípios de uma API REST”, Medium. Disponível em: [link]. Acessado em: 31 de agosto de 2025.
TestDriven.io (2022) “Deploying a Flask App to Render”.
The Pallets Projects (s.d.) “Flask Documentation”, Disponível em: [link]. Acessado em: 31 de agosto de 2025.
Towards Data Science (2022) “Essentials for Working With Firestore in Python”.
UDS Tecnologia (2021) “Desenvolvimento de software em camadas - funcionamento e vantagens”, Disponível em: [link]. Acessado em: 31 de agosto de 2025.
Unicamp (s.d.) “Uma proposta de arquitetura para o protocolo NETCONF sobre SOAP”, Repositório Unicamp. Disponível em: [link]. Acessado em: 31 de agosto de 2025.
Vaithilingam, P., Zhang, T., and Glassman, E. L. (2022). Expectation vs. experience: Evaluating the usability of code generation tools powered by large language models. In Extended Abstracts of the 2022 CHI Conference on Human Factors in Computing Systems. ACM.
Valente, M. T. (2020) “Engenharia de software moderna. Princípios e práticas para desenvolvimento de software com produtividade”.
Wolf, W. (2001). Computers as Components: Principles of Embedded Computing System Design. Morgan Kaufmann. Livro-texto clássico sobre sistemas embarcados.
WORLDSEMI (2013). Ws2812b intelligent control led – datasheet. [link]. Acesso em: 1 de setembro de 2025.

