An Ontology to Understand Programming Cocktails
Alvaro Costa Neto, Maria João Varanda Pereira, Pedro Rangel Henriques
DOI: http://dx.doi.org/10.15439/2024F7885
Citation: Proceedings of the 19th Conference on Computer Science and Intelligence Systems (FedCSIS), M. Bolanowski, M. Ganzha, L. Maciaszek, M. Paprzycki, D. Ślęzak (eds). ACSIS, Vol. 39, pages 453–464 (2024)
Abstract. An ever-growing landscape of programming technologies (tools, languages, libraries and frameworks) has rapidly become the norm in many domains of computer programming---Web Development being the most noticeable example. The concurrent use of many compartmentalised technologies has advantages: it allows for flexibility in implementation, while also improving reusability. On the other hand, this proliferation tends to create convoluted development workflows that must be (painstakingly) planned, managed and maintained. The combination of multiple languages, libraries, frameworks and tools (Ingredients) in a single project effectively forms a Programming Cocktail, that can rapidly become cognitive and financially onerous. Aiming at understanding these complex situations, an ontology was created to provide a formal and structured analysis of these cocktails. It emerged from a survey of technologies that several companies are currently using to develop their systems, and aims to provide support for better understanding, classifying and characterising Programming Cocktails. This paper presents not only the ontology itself, but also the consequent knowledge that was constructed and structured through its development.
References
- R. R. Fenichel, J. Weizenbaum, and J. C. Yochelson, “A program to teach programming,” Communications of the ACM, vol. 13, pp. 141–146, 03 1970. http://dx.doi.org/10.1145/362052.362053. [Online]. Available: https://dl.acm.org/doi/10.1145/362052.362053
- M. J. V. Pereira and P. R. Henriques, “Visualization/animation of programs in alma: Obtaining different results,” in Proceedings of the IEEE Symposium on Human Centric Computing Languages and Environments, 2003. http://dx.doi.org/10.1109/HCC.2003.1260242 pp. 260–262. [Online]. Available: https://ieeexplore.ieee.org/document/1260242
- T. C. Freitas, A. Costa Neto, M. J. V. Pereira, and P. R. Henriques, “Nlp/ai based techniques for programming exercises generation,” R. A. P. d. Queirós and M. P. T. Pinto, Eds., vol. 104, Open Access Series in Informatics (OASIcs). Schloss Dagstuhl – Leibniz-Zentrum für Informatik, 2023. http://dx.doi.org/10.4230/OASIcs.SLATE.2022.14 pp. 1–15. [Online]. Available: https://drops.dagstuhl.de/opus/volltexte/2022/16760
- S. A. Teixeira, “Automatic grading of programming exercises,” Master’s thesis, Minho University, Braga, Portugal, 2023, to be published.
- P. Vasconcelos, “Haskelite: A step-by-step interpreter for teaching functional programming,” R. A. P. d. Queirós and M. P. T. Pinto, Eds., vol. 104, Open Access Series in Informatics (OASIcs). Schloss Dagstuhl – Leibniz-Zentrum für Informatik, 2023. http://dx.doi.org/10.4230/OASIcs.SLATE.2022.14 pp. 1–15. [Online]. Available: https://drops.dagstuhl.de/opus/volltexte/2022/16760
- S. A. Robertson and M. P. Lee, “The application of second natural language acquisition pedagogy to the teaching of programming languages: a research agenda,” ACM SIGCSE Bulletin, vol. 27, no. 4, p. 9–12, 12 1995. http://dx.doi.org/10.1145/216511. [Online]. Available: https://dl.acm.org/doi/10.1145/216511.216517
- M. V. P. Almeida, L. M. Alves, M. J. V. Pereira, and G. A. R. Barbosa, “Easycoding: Methodology to support programming learning,” R. Queirós, F. Portela, M. Pinto, and A. Simões, Eds., vol. 81, Open Access Series in Informatics (OASIcs). Schloss Dagstuhl–Leibniz-Zentrum für Informatik, 06 2020. http://dx.doi.org/10.4230/OASIcs.ICPEC.2020.1. ISBN 978-3-95977-153-5. ISSN 2190-6807 pp. 1–8. [Online]. Available: https://drops.dagstuhl.de/opus/volltexte/2020/12288
- J. L. Plass, B. D. Homer, and C. K. Kinzer, “Foundations of game-based learning,” Educational Psychologist, vol. 50, no. 4, pp. 258–283, 2015. http://dx.doi.org/10.1080/00461520.2015.1122533
- A. Gomes and A. J. Mendes, “Learning to program: Difficulties and solutions,” Proceedings of the 2007 International Conference on Engineering and Education (ICEE). International Network on Engineering Education and Research, 2007, pp. 283–287. [Online]. Available: http://icee2007.dei.uc.pt/proceedings/papers/411.pdf
- B. C. Wilson and S. Shrock, “Contributing to success in an introductory computer science course: a study of twelve factors,” Proceedings of the 32nd SIGCSE Technical Symposium on Computer Science Education. Association for Computing Machinery, 2001. http://dx.doi.org/10.1145/364447.364581. ISBN 1581133294 pp. 184–188. [Online]. Available: https://dl.acm.org/doi/10.1145/364447.364581
- P. C. Tavares, E. M. F. Gomes, and P. R. Henriques, “O impacto da animação e da avaliação automática na motivação para o ensino da programação,” Ph.D. dissertation, 2017.
- A. Costa Neto, C. Araújo, M. J. V. Pereira, and P. R. Henriques, “Programmers’ affinity to languages,” P. R. Henriques, F. Portela, R. Queirós, and A. Simões, Eds., vol. 91, Open Access Series in Informatics (OASIcs). Schloss Dagstuhl – Leibniz-Zentrum für Informatik, 2021. http://dx.doi.org/10.4230/OASIcs.ICPEC.2021.3. ISBN 978-3-95977-194-8. ISSN 2190-6807 pp. 1–7. [Online]. Available: https://drops.dagstuhl.de/opus/volltexte/2021/14219
- J. Alves, A. Costa Neto, M. J. V. Pereira, and P. R. Henriques, “Characterization and identification of programming languages,” A. Simões, M. M. Berón, and F. Portela, Eds., vol. 104, Open Access Series in Informatics (OASIcs). Schloss Dagstuhl – Leibniz-Zentrum für Informatik, 2023. http://dx.doi.org/10.4230/OASIcs.SLATE.2022.14 pp. 1–15. [Online]. Available: https://drops.dagstuhl.de/opus/volltexte/2022/16760
- C. Casalnuovo, E. T. Barr, S. K. Dash, P. Devanbu, and E. Morgan, “A theory of dual channel constraints,” in Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering: New Ideas and Emerging Results, ser. ICSE-NIER ’20. New York, NY, USA: Association for Computing Machinery, 2020. doi: 10.1145/3377816.3381720. ISBN 9781450371261 p. 25–28. [Online]. Available: https://doi.org/10.1145/3377816.3381720
- J. Figueiredo and F. J. García-Peñalvo, “Building skills in introductory programming,” F. J. García-Peñalvo, Ed., Proceedings of the Sixth International Conference on Technological Ecosystems for Enhancing Multiculturality. New York: ACM, 10 2018. http://dx.doi.org/10.1145/3284179. ISBN 9781450365185 p. 46–50. [Online]. Available: https://dl.acm.org/doi/10.1145/3284179.3284190
- M. Fourment and M. R. Gillings, “A comparison of common programming languages used in bioinformatics,” BMC Bioinformatics, vol. 82, no. 9, 02 2008. http://dx.doi.org/10.1186/1471-2105-9-82. [Online]. Available: https://bmcbioinformatics.biomedcentral.com/articles/10.1186/1471-2105-9-82
- A. H. Odeh, “Analytical and comparison study of main web programming languages: Asp and php,” TEM Journal, vol. 8, pp. 1517–1522, 11 2019. http://dx.doi.org/10.18421/TEM84-58. [Online]. Available: http://www.temjournal.com/content/84/TEMJournalNovember2019_1517_1522.pdf
- N. Walia and A. Kalia, “Programming languages for data mining: a review,” International Journal of Computer Trends and Technology, vol. 68, pp. 38–41, 2020. http://dx.doi.org/10.14445/22312803/IJCTT-V68I1P109. [Online]. Available: https://ijcttjournal.org/archives/ijctt-v68i1p109
- T. R. Gruber, “A translation approach to portable ontology specifications,” Knowledge Acquisition, vol. 5, no. 2, pp. 199–220, 1993. http://dx.doi.org/https://doi.org/10.1006/knac.1993.1008. [Online]. Available: https://www.sciencedirect.com/science/article/pii/S1042814383710083
- R. Studer, V. R. Benjamins, and D. Fensel, “Knowledge engineering: Principles and methods,” Data & Knowledge Engineering, vol. 25, no. 1, pp. 161–197, 1998. http://dx.doi.org/https://doi.org/10.1016/S0169-023X(97)00056-6. [Online]. Available: https://www.sciencedirect.com/science/article/pii/S0169023X97000566
- Apache Software Foundation, “Apache http server project.” [Online]. Available: https://httpd.apache.org
- Apache Software Foundation, “Apache activemq.” [Online]. Available: https://activemq.apache.org
- Oracle, “Mysql.” [Online]. Available: https://www.mysql.com
- Dormando, “Memcached.” [Online]. Available: https://www.memcached.org
- B. W. Kernighan and D. M. Ritchie, C Programming Language, 2nd ed. Pearson, 03 1988.
- Python Foundation, “Welcome to python.org,” 11 2019. [Online]. Available: https://www.python.org
- Mozilla Foundation, “Html: Hypertext markup language.” [Online]. Available: https://developer.mozilla.org/en-US/docs/Web/HTML
- ——, “Css: Cascading style sheets.” [Online]. Available: https://developer.mozilla.org/en-US/docs/Web/CSS
- D. D. Chamberlin, “Early history of sql,” IEEE Annals of the History of Computing, vol. 34, pp. 78–82, 11 2012. http://dx.doi.org/10.1109/MAHC.2012.61. [Online]. Available: https://ieeexplore.ieee.org/document/6359709
- LibSSH, “Libssh.” [Online]. Available: https://www.libssh.org
- R. Santamaria, “raylib.” [Online]. Available: https://www.raylib.com
- Apple, “Swiftui,” Apple Developer. [Online]. Available: https://developer.apple.com/xcode/swiftui/
- Meta Platforms, “React native.” [Online]. Available: https://reactnative.dev
- The JUnit Team, “Junit.” [Online]. Available: https://junit.org
- C. Araújo, P. R. Henriques, and J. J. Cerqueira, “Ontocne, characterizing learning resources for training computational thinking,” in 2023 International Symposium on Computers in Education (SIIE), 2023. http://dx.doi.org/10.1109/SIIE59826.2023.10423710 pp. 1–6.
- S. Teixeira, R. V. Boas, F. Oliveira, C. Araújo, and P. R. Henriques, “Ontojogo: An ontology for game classification,” in 2020 IEEE 8th International Conference on Serious Games and Applications for Health (SeGAH). Vancouver, BC, Canada: IEEE Xplore, 2020. http://dx.doi.org/10.1109/SeGAH49190.2020.9201876. ISBN 978-1-7281-9042-6. ISSN 2573-3060 pp. 1–8.
- C. Araújo, L. Lima, and P. R. Henriques, “An Ontology based approach to teach Computational Thinking,” in 21st International Symposium on Computers in Education (SIIE), C. G. Marques, I. Pereira, and D. Pérez, Eds. IEEE Xplore, Nov 2019. http://dx.doi.org/https://doi.org/10.1109/SIIE48397.2019.8970131. ISBN 978-1-7281-3182-5 pp. 1–6.
- D. R. Barbosa, “CnE-Ar: Teaching of Computational Thinking to Adults in Reconversion,” Master’s thesis, Minho University, Braga, Portugal, April 2021, MSc dissertation.
- M. de La Salete Teixeira, “Adequa, a platform for choosing Games suitable to Students’ Profile,” Master’s thesis, Minho University, Braga, Portugal, March 2021, MSc dissertation.
- C. Araújo, P. R. Henriques, and J. J. Cerqueira, “Creating Learning Resources based on Programming concepts,” in Local Proceedings of the 15th International Conference on Informatics in Schools – ISSEP 2022, A. Bollin and G. Futschek, Eds. Klagenfurt; Wien, Auatria: The Austrian Library Association, open-access net-library, Sep 2022. http://dx.doi.org/10.48415/2022/issep.2022 pp. 35–46.
- L. Martins, C. Araújo, and P. R. Henriques, “Digital Collection Creator, Visualizer and Explorer,” in 8th Symposium on Languages, Applications and Technologies (SLATE 2019), ser. OpenAccess Series in Informatics (OASIcs), R. Rodrigues, J. Janoušek, L. Ferreira, L. Coheur, F. Batista, and H. G. Oliveira, Eds., vol. 74. Dagstuhl, Germany: Schloss Dagstuhl–Leibniz-Zentrum fuer Informatik, 2019. ISBN 978-3-95977-114-6 p. 15:1–15:8. [Online]. Available: https://www.dagstuhl.de/dagpub/978-3-95977-114-6
- A. M. C. Dias, “ONTODL+, An ontology description language and its compiler,” Master’s thesis, Minho University, Braga, Portugal, Sep 2021, MSc dissertation.
- W3C, “Web ontology language (owl).” [Online]. Available: https://www.w3.org/OWL/
- Elastic, “Elastisearch.” [Online]. Available: https://www.elastic.co/elasticsearch
- MongoDB, “Mongodb.” [Online]. Available: https://www.mongodb.com
- Broadcom, “Rabbitmq.” [Online]. Available: https://www.rabbitmq.com
- Unity Technologies, “Unity real-time development platform.” [Online]. Available: https://unity.com
- Software Freedom Conservancy, “Git.” [Online]. Available: https://git-scm.com