適合初學者之程式語言探究 - Java與Python之比較

No Thumbnail Available

Date

2016

Journal Title

Journal ISSN

Volume Title

Publisher

Abstract

程式語言這門科目是在電腦科學領域中的基礎課程,在目前的程式語言教學中,大多是以傳統程式語言來做為入門課程,如C、C++與Java程式語言。但是,這些傳統的程式語言,雖然在商業中有良好的發展,但是對於教學學習上,學習者可能會面臨較複雜的理論與抽象的程式知識,而造成程式語言學習上的阻礙。許多研究發現,程式語言這門學科對於是一門不容易理解的科目,即使是已經學習多年的學習者,還是無法理解程式語言的內容,對於程式語言的理解還停留在基礎的程式語法理解。 本研究旨於將Java、Python程式語言間的程式元素分別探討,例如,變數、控制結構、迴圈結構與物件等,比較兩者語言差異性對於學習者在學習程式語言的歷程會產生的影響,例如程式理解、程式理解困難感受和程式實作困難感受等。本研究使用自編的量表,以蒐集並了解分別以Java、Python為第一語言的學習者的程式理解程度、程式實作困難感受、程式理解困難感受,以及同時學習或者教授過Java與Python語言的學習者或教學者對這兩種語言理解與實作難度比較的看法。藉以比較兩種程式語言的特質,探討歸納出哪些程式語言特質對於學習者學習時,較容易理解程式且容易實作,適用於入門程式語言的教學學習,以提出未來程式設計教學者與研究者之相關建議。從收集回來的量表資料分析,結果發現如下: 1. 程式理解程度 從Java組與Python組的t檢定結果可以得知,除了輸出輸入、資料型態與變數以兩種語言為第一語言的使用者理解程度並沒有差異之外,其餘程式元素皆是以Python為第一語言的學習者理解程度表現較佳。 2. 程式理解與實作困難感受 a. 程式理解困難感受 從Java組與Python組的t檢定結果可以得知,以總體概念來看並無達顯著水準,也就是第一語言為學習Python程式語言的學生比起第一語言學習Java程式語言的學生在程式理解困難之感受,並沒有顯著上差異。其中,物件類別的程式理解困難感受,達到顯著水準,表示第一語言為學習Python程式語言的學生比起第一語言學習Java程式語言的學生在物件類別之程式理解困難的感受,學習Python程式語言的學生的程式理解困難感受較低。 b. 程式實作困難感受 從Java組與Python組的t檢定結果可以得知,Java組與Python組並無達顯著水準,也就是第一語言學習Python程式語言的學生比起第一語言學習Java程式語言的學生在程式實作困難的感受中,並沒有顯著上的差異。 3. 同時學過Java與Python程式語言之程式理解與實作難度比較: a. 程式理解難度比較 在程式理解難度比較中,可以發現學習過兩種程式語言的學習者之問卷平均數皆為正數以上,表示學習者的觀點認為學習Python程式語言在程式理解上較容易理解程式元素。不過在資料型態與變數程式元素中,學習者觀點則認為學習Java程式語言較容易理解該程式元素。 b. 程式實作難度比較 在程式實作難度比較中,可以發現學習過兩種程式語言的學習者之問卷平均數皆為負數以下,表示學習者的觀點認為學習Java程式語言在程式實作上對於學習者較有難度的情況發生。Python程式語言因語法較為簡潔明瞭,在進行程式實作時能較有效率地將程式實作出來,對於實作的難度則不會太高。 4. 同時教過Java與Python程式語言之程式理解與實作難度比較: a. 程式理解難度比較 在程式理解難度比較中,可以發現教學過兩種程式語言的教學者之問卷平均數皆為正數以上,表示教學者的觀點認為學習Python程式語言較容易理解程式元素。不過在資料型態與變數程式元素中,教學者觀點則認為學習Java程式語言較容易理解該程式元素。 b. 程式實作難度比較 在程式實作難度比較中,可以發現教學過兩種程式語言的教學者之問卷平均數皆為負數以下,表示教學者的觀點認為學習Java程式語言的學習者對於程式實作的難度較高。Python程式語言因語法較為簡潔明瞭,在進行程式實作時能較有效率地將程式實作出來,對於實作的難度則不會太高。 本研究會歸納出哪個程式語言對於學習者學習時,較容易理解程式且不容易產生實作與理解困難感受,並且適用於入門程式語言學習,與提出未來程式語言教學者與學習者之相關建議。
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.

Description

Keywords

初學程式語言, 程式語言教學, 程式語言學習, programming instruction, programming learning, first programming languag

Citation

Collections

Endorsement

Review

Supplemented By

Referenced By