Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3279720.3279721acmotherconferencesArticle/Chapter ViewAbstractPublication Pageskoli-callingConference Proceedingsconference-collections
research-article

Learning Programming Languages as Shortcuts to Natural Language Token Replacements

Published: 22 November 2018 Publication History

Abstract

The basic knowledge of computer programming is generally considered a valuable skill for educated citizens outside computer science and engineering professions. However, learning programming can be a challenging task for beginners of all ages especially outside of formal CS education. This paper presents a novel source code editing method that assists novice users understand the logic and syntax of the computer code they type. The method is based on the concept of text replacements that interactively provide the learners with declarative knowledge and help them transform it to procedural knowledge, which has been shown to be more robust against decay. An active tokenization algorithm splits the typed code into tokens as they are typed and replaces them with a pre-aligned translation in a human natural language. The feasibility of the proposed method is demonstrated in seven structurally different natural languages (English, Chinese, German, Greek, Italian, Spanish, and Turkish) using examples of computer code in ECMAScript (JavaScript).

References

[1]
J.R. Anderson. 1982. Acquisition of cognitive skill. Psychological Review 89, 4 (1982), 369--406.
[2]
A. Barmpoutis. 2018. Integrating algebra, geometry, music, 3D art, and technology using emoticoding. In Proceedings of the 8th IEEE Integrated STEM Education Conference. 30--33.
[3]
A. Barmpoutis and K. Huynh. 2019. Name Tags and Pipes: Assessing the Role of Metaphors in Students' Early Exposure to Computer Programming Using Emoticoding. Advances in Human Factors in Training, Education, and Learning Sciences 785 (2019), 194--202.
[4]
A. Barmpoutis, K. Huynh, P. Ariet, and N. Saunders. 2018. Assessing the Effectiveness of Emoticon-Like Scripting in Computer Programming. Advances in Intelligent Systems and Computing (2018), 63--75.
[5]
A. Begel and S. Graham. 2005. Spoken programs. In 2005 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC'05). 99--106.
[6]
N. Brown, A. Altadmri, and M. Kölling. 2016. Frame-Based Editing: Combining the Best of Blocks and Text Programming. In International Conference on Learning and Teaching in Computing and Engineering. 47--53.
[7]
Sanja Maravić Čisar, Robert Pinter, and Dragica Radosav. 2011. Effectiveness of program visualization in learning java: a case study with jeliot 3. International Journal of Computers Communications & Control 6, 4 (2011), 668--680.
[8]
L. de Oliveira Brandão, Y. Bosse, and M. A. Gerosa. 2016. Visual programming and automatic evaluation of exercises: An experience with a STEM course. In Frontiers in Education Conference (FIE). 1--9.
[9]
V. Diehl and D.D. Reese. 2010. Elaborated metaphors support viable inferences about difficult science concepts. Educational Psychology 30, 7 (2010), 771--791.
[10]
B. P. Eddy, J. A. Robinson, N. A. Kraft, and J. C. Carver. 2013. Evaluating source code summarization techniques: Replication and expansion. In Program Comprehension (ICPC), 2013 IEEE 21st International Conference on. 13--22.
[11]
P.M. Fitts. 1964. Perceptual-motor skill learning. Academic Press, 243--285.
[12]
J. Freeman, B. Magerko, and R. Verdin. 2015. EarSketch: A web-based environment for teaching introductory computer science through music remixing. In Proceedings of the 46th ACM Technical Symposium on Computer Science Education. 5--5.
[13]
H. Fudaba, Y. Oda, K. Akabe, G. Neubig, H. Hata, S. Sakti, T. Toda, and S. Nakamura. 2015. Pseudogen: A Tool to Automatically Generate Pseudo-Code from Source Code. In 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE). 824--829.
[14]
F. J. García-Peñalvo, A. M. Rees, J. Hughes, and et al. 2016. A survey of resources for introducing coding into schools. In Proceedings of the 4th International Conference on Technological Ecosystems for Enhancing Multiculturality. 19--26.
[15]
D. Gentner. 1983. Structure mapping: A theoretical framework for analogy. Cognitive Science 7 (1983), 155--170.
[16]
S. Haiduc, J. Aponte, L. Moreno, and A. Marcus. 2010. On the use of automated text summarization techniques for summarizing source code. In Reverse Engineering (WCRE), 2010 17th Working Conference on. 35--44.
[17]
L. HaoWen, L. Yin, and L. Wei. 2013. Design of online pseudo-code editor and code generator. In IEEE Conf. Anthology. 1--3.
[18]
A. Joelc and W. Andrew. 2012. What do students learn about programming from game music video and storytelling projects?. In Proceedings of the 43rd ACM technical symposium on Computer Science Education. 643--64.
[19]
J. W. Kim, F. E. Ritter, and R. J. Koubek. 2013. An integrated theory for improved skill acquisition and retention in the three stages of learning. Theoretical Issues in Ergonomics Science 14, 1 (2013), 22--37.
[20]
P. Koehn. 2009. Statistical Machine Translation. Cambridge University Press.
[21]
N. Kushman and R. Barzilay. 2013. Using semantic unification to generate regular expressions from natural language. In North American Chapter of the Association for Computational Linguistics (NAACL).
[22]
E. Lahtinen, K. Ala-Mutka, and H. M. Järvinen. 2005. A study of the difficulties of novice programmers. ACM SIGCSE Bulletin 37, 3 (2005), 14--18.
[23]
T. Lei, F. Long, R. Barzilay, and M. Rinard. 2013. From natural language specifications to program input parsers. In Association for Computational Linguistics (ACL).
[24]
H. Liu and H. Lieberman. 2005. Metafor: Visualizing stories as code. In 10th International Conference on Intelligent User Interfaces. 305--307.
[25]
Kent Lyons, Thad Starner, Daniel Plaisted, James Fusia, Amanda Lyons, Aaron Drew, and EW Looney. 2004. Twiddler typing: one-handed chording text entry for mobile phones. In Proceedings of the SIGCHI conference on Human factors in computing systems. ACM, 671--678.
[26]
D. J. Malan and H. Leitner. 2007. Scratch for Budding Computer Scientists. ACM SIGCSE Bulletin 39, 1 (2007), 223--227.
[27]
L. Moreno, J. Aponte, G. Sridhara, A. Marcus, L. Pollock, and K. Vijay-Shanker. 2013. Automatic generation of natural language summaries for java classes. In Program Comprehension (ICPC) 2013 IEEE 21st International Conference on. IEEE. 23--32.
[28]
J. Moreno-León and G. Robles. 2015. Computer programming as an educational tool in the English classroom a preliminary study. In IEEE Global Engineering Education Conference (EDUCON). 961--966.
[29]
C. Morgado and F. Barbosa. 2012. A structured approach to problem solving in CS1. In Proceedings of the 17th ACM annual conference on Innovation and technology in computer science education. 399--399.
[30]
Y. Oda, H. Fudaba, G. Neubig, H. Hata, S. Sakti, T. Toda, and S. Nakamura. 2015. Learning to generate pseudo-code from source code using statistical machine translation. In 30th IEEE/ACM International Conference on Automated Software Engineering (ASE). 574--584.
[31]
I. Ouahbi, F. Kaddari, H. Darhmaoui, A. Elachqar, and S. Lahmine. 2015. Learning basic programming concepts by creating games with scratch programming environment. Procedia-Social and Behavioral Sciences 191 (2015), 1479--1482.
[32]
Thomas W. Price, Neil C.C. Brown, Dragan Lipovac, Tiffany Barnes, and Michael Kölling. 2016. Evaluation of a Frame-based Programming Editor. In ACM Conference on International Computing Education Research. 33--42.
[33]
J. Rasmussen. 1986. Information processing and human-machine interaction: an approach to cognitive engineering. Elsevier.
[34]
C. Reas and B. Fry. 2014. Processing: A Programming Handbook for Visual Designers and Artists. Cambridge: MIT Press.
[35]
T. Sapounidis and S. Demetriadis. 2016. Educational Robots Driven by Tangible Programming Languages: A Review on the Field. In International Conference EduRobotics 2016. 205--214.
[36]
Lara Schlaffke, Alexander Leemans, Lauren M Schweizer, Sebastian Ocklenburg, and Tobias Schmidt-Wilcke. 2017. Learning morse code alters microstructural properties in the inferior longitudinal fasciculus: a DTI study. Frontiers in human neuroscience 11, 383 (2017), 1--9.
[37]
H. Shteingart, T. Neiman, and Y. Loewenstein. 2013. The role of first impression in operant learning. Journal of experimental psychology. General 142, 2 (2013), 476--488.
[38]
G. Sridhara, E. Hill, D. Muppaneni, L. Pollock, and K. Vijay-Shanker. 2010. Towards automatically generating summary comments for java methods. In Proc. International Conference on Automated Software Engineering(ASE). 43--52.
[39]
A. Stefik and S. Siebert. 2013. An Empirical Investigation into Programming Language Syntax. ACM Transactions on Computing Education 13, 4 (2013).
[40]
Adrian Dan Tarniceriu, Pierre Dillenbourg, and Bixio Rimoldi. 2013. The effect of feedback on chord typing. In Proceedings of The Seventh International Conference on Mobile Ubiquitous Computing, Systems, Services and Technologies.
[41]
M. P. Uysal. 2014. Improving First Computer Programming Experiences: The Case of Adapting a Web-Supported and Well-Structured Problem-Solving Method to a Traditional Course. Contemporary Educational Technology 5, 3 (2014), 198--217.
[42]
K. VanLehn. 1996. Cognitive skill acquisition. Annual Review of Psychology 47 (1996), 513--539.
[43]
Jean Véronis. 2013. Parallel Text Processing: Alignment and use of translation corpora. Vol. 13. Springer Science & Business Media.
[44]
D. Wang, L. Zhang, C. Xu, H. Hu, and Y. Qi. 2016. A tangible embedded programming system to convey event-handling concept. In Proceedings of the TEI'16: Tenth International Conference on Tangible, Embedded, and Embodied Interaction. 133--140.
[45]
D. Weintrop and U. Wilensky. 2017. Between a Block and a Typeface: Designing and Evaluating Hybrid Programming Environments. In ACM Interaction Design Conference. 183--192.
[46]
B. Wohl, B. Porter, and S. Clinch. 2015. Teaching Computer Science to 5-7 year-olds: An initial study with Scratch, Cubelets and unplugged computing. In Proceedings of the Workshop in Primary and Secondary Computing Education. 55--60.

Index Terms

  1. Learning Programming Languages as Shortcuts to Natural Language Token Replacements

      Recommendations

      Reviews

      Wolfgang Schreiner

      Students learning programming languages initially struggle very much with the relationship between the formal syntax of the language and the intuitive interpretation of its meaning. The program text is composed of a sequence of special tokens according to an unfamiliar grammar; it may be difficult for novices to see how these sequences describe actions, which would be expressed very differently in one's native language. The paper's proposed approach bridges this gap between formal syntax and intuitive understanding: an editor applies a simple algorithm to replace programming language tokens, as soon as they are entered, with corresponding phrases in the programmer's native language; the result is a program whose basic elements are natural language phrases. Thus, the program's meaning becomes more transparent, and fundamental errors can be easily detected from unexpected translations. A pilot study demonstrates with statistical significance that, in assignments, students who previously used this editor make significantly less syntactical or logical errors than those students in the control group who used a conventional editor. The paper nicely illustrates how a simple technique can overcome some initial hurdles in programming language education. It may even help to raise interest in non-technically inclined target groups. The technique is, however, limited to the "word by word" translation of basic commands and expressions, without discussing more complex structural translations. Future work will concentrate on larger scale studies with more programming/natural languages and students in different countries.

      Access critical reviews of Computing literature here

      Become a reviewer for Computing Reviews.

      Comments

      Information & Contributors

      Information

      Published In

      cover image ACM Other conferences
      Koli Calling '18: Proceedings of the 18th Koli Calling International Conference on Computing Education Research
      November 2018
      207 pages
      ISBN:9781450365352
      DOI:10.1145/3279720
      • Conference Chairs:
      • Mike Joy,
      • Petri Ihantola
      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      Published: 22 November 2018

      Permissions

      Request permissions for this article.

      Check for updates

      Author Tags

      1. Computer Education
      2. Computer Programming
      3. Non-CS majors
      4. Source Code Editors

      Qualifiers

      • Research-article
      • Research
      • Refereed limited

      Conference

      Koli Calling '18

      Acceptance Rates

      Overall Acceptance Rate 80 of 182 submissions, 44%

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • 0
        Total Citations
      • 193
        Total Downloads
      • Downloads (Last 12 months)13
      • Downloads (Last 6 weeks)0
      Reflects downloads up to 28 Dec 2024

      Other Metrics

      Citations

      View Options

      Login options

      View options

      PDF

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      Media

      Figures

      Other

      Tables

      Share

      Share

      Share this Publication link

      Share on social media