The challenges of learning programming have been revealed in studies for decades. Many of the difficulties and misconceptions derive from, or go unassisted by, the syntax and semantics of the programming language used in introductory (CS1) courses. Despite the plethora of empirical data available, the designs of common general-purpose languages have arguably not been based on such data, possibly being one explanation to why novices continue to struggle. Through a literature review, this article first reviews what languages are commonly used in CS1 courses, studies on difficulties and misconceptions held by novices, and other factors that can be exploited in the design of more suitable introductory languages. Thereafter, a new text-based general-purpose programming language called Frendli is introduced, as well as the justifications for design decisions based on the findings presented. The language is intended for use in the beginning stages of introductory courses. The literature review revealed that novices often struggle with understanding fundamental concepts such as function parameters, return values, the need for variable declarations, and the order of execution. It also demonstrated that several syntactic and semantic design features of both C-style languages like Java and syntactically simpler ones like Python are problematic for novices. The author would argue that a language used for teaching programming should intuitively convey universal programming concepts through its syntax, minimize interference and ambiguity of syntax, and have syntactic and semantic consistency. Designing languages based on studies on novices can hopefully assist students in their learning and instructors in their teaching.
Identifer | oai:union.ndltd.org:UPSALLA1/oai:DiVA.org:lnu-114226 |
Date | January 2022 |
Creators | Jansson, Linnea |
Publisher | Linnéuniversitetet, Institutionen för datavetenskap och medieteknik (DM) |
Source Sets | DiVA Archive at Upsalla University |
Language | English |
Detected Language | English |
Type | Student thesis, info:eu-repo/semantics/bachelorThesis, text |
Format | application/pdf |
Rights | info:eu-repo/semantics/openAccess |
Page generated in 0.0022 seconds