Which programming language should students learn first?A comparison of Java and Python

碩士 === 國立臺灣師範大學 === 資訊教育研究所 === 104 === Programming is a fundamental ability for Computer Science majors. Most programming lectures use traditional languages, such as C, C++, or Java, as the first learning language for novices, which are effective for designing real applications and therefore are po...

Full description

Bibliographic Details
Main Authors: Luo, Jie-An, 羅傑安
Other Authors: Lin, Yu-Tzu
Format: Others
Language:zh-TW
Published: 2016
Online Access:http://ndltd.ncl.edu.tw/handle/5434s9
Description
Summary:碩士 === 國立臺灣師範大學 === 資訊教育研究所 === 104 === Programming is a fundamental ability for Computer Science majors. Most programming lectures use traditional languages, such as C, C++, or Java, as the first learning language for novices, which are effective for designing real applications and therefore are popular in industry. However, the complex syntax of these languages is challenging for novices, which becomes an obstacle to novices’ learning. Python has simpler syntax and high-level data structures to enable succinct programs. The multiple paradigms of Python also provide learners opportunities to learn various features of programming languages. Therefore, Python gradually becomes a new option of the first language for learning. This study investigates the features of the first learning programming language by comparing Python with the popular learning language Java. An inventory study was conducted on the students whose first programming language was Java (the Java group) or Python (the Python group), who had learnt both langues, and the insturctors who had taught both languagesto understand how the features of languages affect students’ learning from the aspects of program translation and execution (interpretation vs. compilation), involvng varous programming elements (e.g, variable declaration,the syntax of control structures, and the object-oriented syntaxes). The inventory questions were designed to understand whether and how the language features in this aspect influence program comprehension and program implementation. The research findings are as follows: 1. Program comprehension: the students whose first programming languge was Python performed significantly better in program comprehension than those whose first language was Java in terms of all programming elements or constructs except I/O, data types, and varibles. 2. Perception of program comprehension/implementation difficulty The research results show that students in the Java and Python groups had similar perception about implemetation difficulty of programming. Howerver, students in the Python group had higher pwhose first language was Python had more positive perception about the comprehension difficulty of programming in terms of the object-oriented concepts and constructs. That is, the Python group students were more confident in comprehending object-oriented statements. This might be because although Java is an inherent object-oriented language, it has too complex syntax for novice learners. 3. Comparisons of Java and Python: The comparison inventory was conducted on the students and instructors who had learnt or taught Java and Python before this study. The results show that both instructors and students thought Python was easier in terms of I/O, loops, and functions because of its simple syntax. Howerver, both instructors and students agreed with the difficulty of comprehending and implementing variable and assignment statements by using Python because its dynamic variables. The research results can give instructors suggestions for selecting suitable learning languages in their lectures and designing adaptive instructional strategies/materials based on the features of the selected language.