A Data-Driven Approach to Compare the Syntactic Difficulty of Programming Languages

Saved in:
Bibliographic Details
Title: A Data-Driven Approach to Compare the Syntactic Difficulty of Programming Languages
Language: English
Authors: Lokkila, Erno, Christopoulos, Athanasios, Laakso, Mikko-Jussi
Source: Journal of Information Systems Education. Win 2023 34(1):84-93.
Availability: Journal of Information Systems Education. e-mail: editor@jise.org; Web site: http://www.jise.org
Peer Reviewed: Y
Page Count: 12
Publication Date: 2023
Document Type: Journal Articles
Reports - Research
Education Level: Higher Education
Postsecondary Education
Descriptors: Comparative Analysis, Programming Languages, Probability, Error Patterns, Undergraduate Students, Computer Science Education, Introductory Courses, Coding, Difficulty Level, Individualized Instruction, Learning Analytics, Information Science Education, Learning Management Systems
ISSN: 1055-3096
2574-3872
Abstract: Educators who teach programming subjects are often wondering "which programming language should I teach first?" The debate behind this question has a long history and coming up with a definite answer to this question would be farfetched. Nonetheless, several efforts can be identified in the literature wherein pros and cons of mainstream programming languages are examined, analysed, and discussed in view of their potential to facilitate the didactics of programming concepts especially to novice programmers. In line with these efforts, we explore the latter question by comparing the syntactic difficulty of two modern, but fundamentally different, programming languages: Java and Python. To achieve this objective, we introduce a standalone and purely data-driven method which stores the code submissions and clusters the errors occurred under the aid of a custom transition probability matrix. For the evaluation of this model a total of 219,454 submissions, made by 715 first-year undergraduate students, in 259 unique programming exercises were gathered and analysed. The results indicate that Python is an easier-to-grasp programming language and is, therefore, highly recommended as the steppingnstone in introductory courses. Besides, the adoption of the described method enables educators to not only identify those students who struggle with coding (syntax-wise) but further paves the pathway for the adoption of personalised and adaptive learning practices.
Abstractor: As Provided
Entry Date: 2023
Access URL: https://jise.org/Volume34/n1/JISE2023v34n1pp84-93.pdf
Accession Number: EJ1384160
Database: ERIC
Description
Abstract:Educators who teach programming subjects are often wondering "which programming language should I teach first?" The debate behind this question has a long history and coming up with a definite answer to this question would be farfetched. Nonetheless, several efforts can be identified in the literature wherein pros and cons of mainstream programming languages are examined, analysed, and discussed in view of their potential to facilitate the didactics of programming concepts especially to novice programmers. In line with these efforts, we explore the latter question by comparing the syntactic difficulty of two modern, but fundamentally different, programming languages: Java and Python. To achieve this objective, we introduce a standalone and purely data-driven method which stores the code submissions and clusters the errors occurred under the aid of a custom transition probability matrix. For the evaluation of this model a total of 219,454 submissions, made by 715 first-year undergraduate students, in 259 unique programming exercises were gathered and analysed. The results indicate that Python is an easier-to-grasp programming language and is, therefore, highly recommended as the steppingnstone in introductory courses. Besides, the adoption of the described method enables educators to not only identify those students who struggle with coding (syntax-wise) but further paves the pathway for the adoption of personalised and adaptive learning practices.
ISSN:1055-3096
2574-3872