Introducing computer science to high school students through logic programming. (English) Zbl 07107412

Summary: This paper investigates how high school students in an introductory computer science (CS) course approach computing in the logic programming (LP) paradigm. This qualitative study shows how novice students operate within the LP paradigm while engaging in foundational computing concepts and skills: students are engaged in a cyclical process of abstraction, reasoning, and creating representations of their ideas in code while also being informed by the (procedural) requirements and the revision/debugging process. As these computing concepts and skills are also expected in traditional approaches to introductory K-12 CS courses, this paper asserts that LP is a viable paradigm choice for high school novices.


68N17 Logic programming
97P20 Theoretical computer science (educational aspects)
97P50 Programming techniques (educational aspects)
Full Text: DOI arXiv


[1] Allan, W., Coulter, B., Denner, J., Erickson, J., Lee, I., Malyn-Smith, J. and Martin, F.2011. Computational Thinking for Youth. White Paper for the ITEST Small Working Group on Computational Thinking (CT).
[2] Alviano, M., Faber, W., Leone, N., Perri, S., Pfeifer, G. and Terracina, G.2011. The disjunctive datalog system DLV. In Datalog Reloaded. Springer, Berlin, 282-301. doi:10.1007/978-3-642-24206-9_17
[3] Balai, E., Gelfond, M. and Zhang, Y.2013. Towards answer set programming with sorts. In International Conference on Logic Programming and Nonmonotonic Reasoning. Springer, Berlin, 135-147. doi:10.1007/978-3-642-40564-8_14 · Zbl 1405.68042
[4] Ball, T. and Zorn, B.2015. Teach foundational language principles. Communications of the ACM 58, 5, 30-31. doi:10.1145/2663342
[5] Barr, V. and Stephenson, C.2011. Bringing computational thinking to k-12: What is involved and what is the role of the computer science education community?ACM Inroads 2, 1, 48-54. doi:10.1145/1929887.1929905
[6] Beux, S., Briola, D., Corradi, A., Delzanno, G., Ferrando, A., Frassetto, F., Guerrini, G., Mascardi, V., Oreggia, M., Pozzi, F., Solimando, A. and Tacchella, A.2015. Computational thinking for beginners: A successful experience using Prolog. In CILC. 31-45.
[7] 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. 1-25.
[8] Brewka, G., Eiter, T. and Truszczyński, M.2011. Answer set programming at a glance. Communications of the ACM 54, 12, 92-103. doi:10.1145/2043174.2043195
[9] Chakravarty, M. M. and Keller, G.2004. The risks and benefits of teaching purely functional programming in first year. Journal of Functional Programming 14, 1, 113-123. doi:10.1017/S0956796803004805
[10] Chen, T.-Y., Monge, A. and Simon, B.2006. Relationship of early programming language to novice generated design. ACM SIGCSE Bulletin 38, 1, 495-499. doi:10.1145/1124706.1121496
[11] Clocksin, W. and Mellish, C. S.2003. Programming in PROLOG. Springer-Verlag, Berlin Heidelberg. doi:10.1007/978-3-642-55481-0 · Zbl 1029.68031
[12] . 2017. AP computer science principles including the curriculum framework. Advanced Placement Program, The College Board.
[13] Cooper, S., Dann, W. and Pausch, R.2000. Alice: A 3-d tool for introductory programming concepts. Journal of Computing Sciences in Colleges 15, 107-116 (Consortium for Computing Sciences in Colleges).
[14] Corbin, J. and Strauss, A.2008. Basics of Qualitative Research: Techniques and Procedures for Developing Grounded Theory. Sage Publications, Inc, Thousand Oaks, CA, USA.
[15] . 2012. CSTA k-12 computer science standards. Computer Science Teachers Association.
[16] Dovier, A., Benoli, P., Brocato, M. C., Dereani, L. and Tabacco, F.2016. Reasoning in high schools: Do it with ASP! In CILC, 205-213.
[17] Feaster, Y., Segars, L., Wahba, S. K. and Hallstrom, J. O.2011. Teaching CS unplugged in the high school (with limited success). In Proceedings of the 16th Annual Joint Conference on Innovation and Technology in Computer Science Education. ACM, 248-252.
[18] Febbraro, O., Reale, K. and Ricca, F.2011. ASPIDE: Integrated development environment for answer set programming. In Logic Programming and Nonmonotonic Reasoning- 11th International Conference, LPNMR 2011, Vancouver, Canada, 16-19 May 2011. Proceedings, 317-330.
[19] Gebser, M., Kaufmann, B., Kaminski, R., Ostrowski, M., Schaub, T. and Schneider, M.2011. Potassco: The potsdam answer set solving collection. AI Communications 24, 2, 107-124. · Zbl 1215.68214
[20] Gelfond, M. and Kahl, Y.2014. Knowledge Representation, Reasoning, and the Design of Intelligent Agents: The Answer-Set Programming Approach. Cambridge University Press, Cambridge. doi:10.1017/CBO9781139342124
[21] Ginsburg, H., Entering the Child’s Mind: The Clinical Interview in Psychological Research and Practice, (1997), Cambridge University Press: Cambridge University Press, Cambridge
[22] Grover, S. and Pea, R.2013. Computational thinking in K-12 a review of the state of the field. Educational Researcher 42, 1, 38-43. doi:10.3102/0013189X12463051
[23] Guzdial, M., Programming environments for novices, Computer Science Education Research 2004, 127-154, (2004)
[24] Hemmendinger, D., A plea for modesty, ACM Inroads 1, 2, 4-7, (2010)
[25] . 2016. K-12 computer science framework. URL: http://www.k12cs.org. [Accessed on January 8, 2017].
[26] Kahn, K., A Learning Zone of One’s Own: Sharing Representations and Flow in Collaborative Learning Environments, Toontalk-steps towards ideal computer-based learning environments, 253-270, (2004), IOS Press: IOS Press, Amsterdam
[27] Kelleher, C. and Pausch, R.2007. Using storytelling to motivate programming. Communications of the ACM 50, 7, 58-64. doi:10.1145/1272516.1272540
[28] Kleinberg, J. and Tardos, E.2006. Algorithm Design. Pearson Education, India.
[29] Kowalski, R. A.1982. Logic as a computer language for children. In ECAI, 2-10.
[30] Kowalski, R. A., Logic as a Computer Language for Children, (1987), Wiley-Interscience: Wiley-Interscience, New York, NY, USA
[31] Kowalski, R. A., Computational Logic, Volume 9 (Handbook of the History of Logic), Logic programming, (2014), North Holland, Amsterdam
[32] Levesque, H. J., Thinking as Computation: A First Course, (2012), The MIT Press: The MIT Press, Cambridge
[33] Lye, S. Y. and Koh, J. H. L.2014. Review on teaching and learning of computational thinking through programming: What is next for K-12?Computers in Human Behavior 41, 51-61. doi:10.1016/j.chb.2014.09.012
[34] Marcopoulos, E., Reotutar, C. and Zhang, Y.2017. An online development environment for answer set programming. CoRR abs/1707.01865.
[35] Mendelsohn, P., Green, T. and Brna, P.1990. Programming languages in education: The search for an easy start. Psychology of Programming. Elsevier, Amsterdam. 175-200. doi:10.1016/B978-0-12-350772-3.50016-1
[36] Nichol, J., Dean, J. and Briggs, J.1988. Prolog, Children and Students. Nichols Publishing Co., New York, NY, USA.
[37] Papert, S., Mindstorms: Children, Computers, and Powerful Ideas, (1980), Basic Books, Inc.: Basic Books, Inc., New York, NY, USA
[38] Pears, A., Seidman, S., Malmi, L., Mannila, L., Adams, E., Bennedsen, J., Devlin, M. and Paterson, J.2007. A survey of literature on the teaching of introductory programming. ACM SIGCSE Bulletin 39, 4, 204-223. doi:10.1145/1345375.1345441
[39] Resnick, M. and Rosenbaum, E.2013. Designing for tinkerability. Design, Make, Play: Growing the Next Generation of STEM Innovators. Routledge, London. 163-181.
[40] Resnick, M., Maloney, J., Monroy-Hernández, A., Rusk, N., Eastmond, E., Brennan, K., Millner, A., Rosenbaum, E., Silver, J., Silverman, B. and Kafai, Y.2009. Scratch: Programming for all. Communications of the ACM 52, 11, 60-67. doi:10.1145/1592761.1592779
[41] Scherz, Z. and Haberman, B.1995. Logic programming based curriculum for high school students: The use of abstract data types. In ACM SIGCSE Bulletin. Vol. 27. ACM, 331-335.
[42] Sherin, B., Disessa, A. A. and Hammer, D.1993. Dynaturtle revisited: Learning physics through collaborative design of a computer model. Interactive Learning Environments 3, 2, 91-118. doi:10.1080/1049482930030201
[43] Smith, M.2016. Computer science for all. URL: https://www.whitehouse.gov/blog/2016/01/30/computer-science-all.
[44] Sterling, L. and Shapiro, E. Y.1994. The Art of Prolog: Advanced Programming Techniques. MIT press, Cambridge. · Zbl 0850.68137
[45] Stutterheim, J., Swierstra, W. and Swierstra, D.2013. Forty hours of declarative programming: Teaching Prolog at the junior college Utrecht. doi:arXiv:1301.5077.
[46] Vilner, T., Zur, E. and Gal-Ezer, J.2007. Fundamental concepts of CS1: Procedural vs. object oriented paradigm – a case study. In ACM SIGCSE Bulletin. Vol. 39. ACM, 171-175.
[47] Voogt, J., Fisser, P., Good, J., Mishra, P. and Yadav, A.2015. Computational thinking in compulsory education: Towards an agenda for research and practice. Education and Information Technologies 20, 4, 715-728. doi:10.1007/s10639-015-9412-6
[48] Wing, J.2011. Research notebook: Computational thinking – what and why? The Link Magazine, Spring. Carnegie Mellon University, Pittsburgh, PA, USA. URL: http://link.cs.cmu.edu/article.php?a=600.
[49] Zhang, Y.2015. Lecture notes for teaching computer science using asp. URL: http://www.myweb.ttu.edu/yuazhang/TexPREP/ASP.pdf.
This reference list is based on information provided by the publisher or from digital mathematics libraries. Its items are heuristically matched to zbMATH identifiers and may contain data conversion errors. It attempts to reflect the references listed in the original paper as accurately as possible without claiming the completeness or perfect precision of the matching.