• 沒有找到結果。

本研究經由考核、問卷、課堂紀錄得出的結果,對於高學習成就學生的程式設計教 學方式有了正面的建議,然則尚有下列幾點可供未來深入研究:

(一) 嘗試使用不同的方式,實踐從程式設計概念至程式設計實作的教學策略,例如 開發不插電教材取代視覺化程式設計工具。

(二) 此教學模式在高學習成就學生上有顯著的成功,在不同學習成就或著不同性別 學生上的學習差異,包含學習動機、學習成效以及班級內學習落差,皆值得未來 持續追蹤探討。

38

參考文獻

英文文獻

Australian Curriculum, Assessment, Reporting Authority (2013a). Draft Australian curriculum technologies.

Australian Curriculum, Assessment, Reporting Authority (2013b). General capabilities in the Australian curriculum.

Budny, D., Lundz, L., Vipperman, J., & If, J. L. P. (2002). Four Steps to Teaching C Programming. Frontiers in Education, 2002. 32nd Annual, Session F1G, 2-6.

Brusilovsky, P., Calabrese, E., Hvorecky, J., Kouchnirenko, A., & Miller, P. (1997). Mini - languages: A Way to Learn Programming Principles. Education and Information Technologies, 2(1), 65-83.

Cardellini, L. (2002). An Interview with Richard M. Felder. Journal of Science Education 3(2), 62-65.

Carl, C. (2001). Computing Curricula 2001: Computer Science.

Carlisle, M. C., Wilson, T. A., Humphries, J. W., & Hadfield, S. M. (2005). Raptor: A Visual Programming Environment for Teaching Algorithmic Problem Solving. ACM SIGCSE Bulletin, 37, 176. http://doi.org/10.1145/1047124.1047411

39

Cooper, S., Dann, W., & Pausch, R. (2000). Alice: a 3-D tool for introductory programming concepts. Journal of Computing Sciences in Colleges, 15, 107-116.

http://doi.org/10.1145/1953163.1953243

Code.org. (2017). Hour of Code website. Retrieved from http://code.org/learn

Computer Science Teachers Association. (2011). CSTA K-12 computer science standards.

The ACM K-12 Education Task Force.

CThinking. (2016). CThinking-Computational Thinking Retrieved from http://ct2prog.csie.ntnu.edu.tw/

Deek, F. P. (1999). The Software Process : A Parallel Approach through Problem Solving and

Program Development. Computer Science Education, 9(1), 43-70.

Developers, G. (n.d.). Blockly. Retrieved from https://developers.google.com/blockly/

Einhorn, S. (2012). MicroWorlds, Computational Thinking, and 21st Century Learning.

Fowler, L., Allen, M., Armarego, J., & Mackenzie, J. (2000). Learning styles and CASE tools in Software Engineering. 9th Annual Teaching Learning Forum, 1-10.

Frederick, W. B. L., & Watson, C. (2011). Game-based concept visualization for learning programming. MTDL’11: Proceedings of the Third International ACM Workshop on Multimedia Technologies for Distance Learning, 37-42.

http://doi.org/10.1145/2072598.2072607

40

Gal-Ezer, J., Beeri, C., Harel, D., & Yehudai, A. (1995). A high school program in computer science. Computer, 28(10), 73-80.

Gouws, L. A., Bradshaw, K., & Wentworth, P. (2013). Computational thinking in educational activities. Proceedings of the 18th ACM Conference on Innovation and Technology in Computer Science Education - ITiCSE’13, 10. http://doi.org/10.1145/2462476.2466518

Green, T. R. G., & Petre, M. (1996). Usability Analysis of Visual Programming

Environments: A “Cognitive Dimensions” Framework. Journal of Visual Languages &

Computing, 7(2), 131-174. http://doi.org/10.1006/jvlc.1996.0009

Grover S., & Roy P. (2013). Computational Thinking in K-12 : A Review of the State of the Field. Educational Researcher, 42(1), 38-43. http://doi.org/10.3102/0013189X12463051

Honig, W. L. (2013). Teaching and assessing programming fundamentals for non majors with visual programming. Proceedings of the 18th ACM Conference on Innovation and Technology in Computer Science Education - ITiCSE’13, 40.

http://doi.org/10.1145/2462476.2462492

Ismail, M. N., Ngah, N. A., & Umar, I. N. (2010). Instructional strategy in the teaching of computer programming: A need assessment analyses. Turkish Online Journal of Educational Technology, 9(2), 125-131.

Kelleher, C., & Pausch, R. (2005). Lowering the Barriers to Programming: a survey of

41

programming environments and languages for novice programmers. Science, 37(2), 83-137. http://doi.org/10.1145/1089733.1089734

Kessler, C. M., & Anderson, J. R. (1986). Learning flow of control: Recursive and iterative procedures. Human-Computer Interaction, 2(2), 135-166.

http://doi.org/10.1207/s15327051hci0202_2

Kölling, M. (2010). The Greenfoot Programming Environment. ACM Transactions on Computing Education, 10(4), 1-21. http://doi.org/10.1145/1868358.1868361

Li, K. C., Wang, F. L., Yuen, K. S., Cheung, S. K. S., & Kwan, R. (2012). Engaging Learners Through Emerging Technologies. Communications in Computer and Information

Science (Vol. 302). http://doi.org/10.1007/978-3-642-31398-1

Li, Y. (2016). Teaching programming based on Computational Thinking. 2016 IEEE

Frontiers in Education Conference (FIE), 1-7. http://doi.org/10.1109/FIE.2016.7757408

Linn, M. C. (1985). The Cognitive Consequences of Programming Instruction in Classrooms.

Educational Researcher, 14(5), 14-29. http://doi.org/10.3102/0013189X014005014

Linn, M. C., & Clancy, M. J. (1992). The case for case studies of programming problems.

Communications of the ACM, 35(3), 121-132. http://doi.org/10.1145/131295.131301

Lye, S. Y., & Koh, J. H. L. (2014). Review on teaching and learning of computational thinking through programming: What is next for K-12? Computers in Human Behavior,

42

41, 51-61. http://doi.org/10.1016/j.chb.2014.09.012

Maloney, J., Resnick, M., & Rusk, N. (2010). The Scratch programming language and environment. ACM Transactions on Computing Education, 10(4), 1-15.

http://doi.org/10.1145/1868358.1868363.http

Matsuzawa, Y., Ohata, T., Sugiura, M., & Sakai, S. (2015). Language Migration in non-CS Introductory Programming through Mutual Language Translation Environment Basic Function and Interface. 46th ACM Technical Symposium on Computer Science Education, 185-190.

Navarro-Prieto, R., & Canas, J. J. (2001). Are Visual Programming Languages Better? The Role of Imagery in Program Comprehension. International Journal of Human-Computer Studies, 54(6), 799-829. http://doi.org/10.1006/ijhc.2000.0465

Paliokas, I., Arapidis, C., & Mpimpitsos, M. (2011). PlayLOGO 3D: A 3D interactive video game for early programming education: Let LOGO be a game. Proceedings - 2011 3rd International Conferenceon Games and Virtual Worlds for Serious Applications,

VS-Games 2011, 24-31. http://doi.org/10.1109/VS-GAMES.2011.10

Pears, A., Seidman, S., Malmi, L., Mannila, L., Adams, E., Bennedsen, J., Paterson, J. (2007).

A survey of literature on the teaching of introductory programming. SIGCSE Bulletin, 39(4), 204-223. http://doi.org/10.1080/08993400500150747

43

Pintrich, P. R., Smith, D. A. F., Teresa Garcia, A., & McKeachie, W. J. (1991). A Manual for the Use of the Motivated Strategies for Learning Questionnaire.

Puhlmann, H. (2008). Grundsätze und Standards für die Informatik in der Schule.

Bildungsstandards Informatik für die Sekundarstufe I.Beilage zu LOG IN, 150/151.

Robins, A., Rountree, J., Rountree, N., Robins, A., Rountree, J., & Rountree, N. (2003).

Learning and Teaching Programming: A Review and Discussion Learning and Teaching Programming : A Review, 3408, 37-41. http://doi.org/10.1076/csed.13.2.137.14200

Saito, D., Washizaki, H., & Fukazawa, Y. (2016). Analysis of the Learning Effects between Text-based and Visual-based Beginner Programming Environments. 2016 IEEE 8th International Conference, (Engineering Education), 208-213.

Sajana, A. (2015). An interactive serious game via visualization of real life scenarios to learn programming concepts.

Sanders, D., & Dorn, B. (2003). Classroom experience with Jeroo. Journal of Computing Sciences in Colleges, 308-316. Retrieved from http://dl.acm.org/citation.cfm?id=767644

Shackelford, R., & Jr, R. L. (1997). Introducing computer science fundamentals before programming. Proceedings Frontiers in Education 1997 27th Annual Conference.

Teaching and Learning in an Era of Change (1997), 285-289.

http://doi.org/10.1109/FIE.1997.644858

44

Thomas, L., Ratcliffe, M., Woodbury, J., & Jarman, E. (2002). Learning styles and

performance in the introductory programming sequence. ACM SIGCSE Bulletin, 34, 33.

http://doi.org/10.1145/563517.563352

Tsukamoto, H., Takemura, Y., Oomori, Y., Ikeda, I., Nagumo, H., Monden, A., &

Matsumoto, K. (2016). Textual vs. Visual Programming Languages in Programming Education for Primary Schoolchildren.

Wang, H. (2014). Effects of an Integrated Scratch and Project-based Learning Approach on the Learning Achievements of Gifted Students in Computer Courses, (3).

http://doi.org/10.1109/IIAI-AAI.2014.85

Xinogalos, S. (2012). An evaluation of knowledge transfer from microworld programming to conventional programming. Journal of Educational Computing Research, 47(3), 251-277.

Yen, C.-Z., Wu, P.-H., & Lin, C.-F. (2012). Analysis of expert's and novice's thinking process. Engaging Learners through Emerging Technologies, Communication in Computer and Information Science, 302, 122-134.

45

中文文獻

大學程式設計先修檢測(APCS)(2017)。大學程式設計先修檢測 (Advanced Placement

Computer Science)。http://apcs.csie.ntnu.edu.tw/

文部科学省(2008)。中学校学習指導要領解説。

文部科学省(2009)。高等学校学習指導要領。

林依潔(2017)。從程式設計概念至程式設計實作之教學研究。

林維璋(2014)。系統與自我導向的 Scratch 學習者之學習自願研究。

林瓊甄(2006)。 適性化 e-Learning 教材發展之研究。

教育部(2016)。第三屆資訊國力發展論壇報告資訊軟體人力向下扎根與培育。

國家教育研究院(2014)。十二年國民基本教育科技領域課程綱要草案.

國家教育研究院課程及教學研究中心(2017)。新課綱「程式設計」,學邏輯解問題。

程式設計合作學習平台(2017)。高瞻計畫 ─ 高中資訊科學創新學習程式設計合作學 習平台。http://join-and-joy.appspot.com/

附錄

46

47

while loop 運用高階程式語言解決問題

48

週次 課程主題 教學工具 課堂作業

16

 綜合練習

Code::Blocks

 特徵分類

 揀選最大值

 輸出指定比例圖形 17  函式 Code::Blocks  函式基本結構練習 18  綜合練習:函式 Code::Blocks  費氏數列

19  綜合練習:函式 Code::Blocks  歌唱比賽 20  綜合練習:函式 Code::Blocks  質因數分解 21

 綜合練習:函式 Code::Blocks  後測問卷

 循環質數

22 期末考核:概念題

23 期末考核:實作題

49

50

51

附錄三 前測問卷:起點行為調查

1. 請評定自己對於以下程式語言的精熟程度。

精熟 佳 普通 僅使用過幾次而已 從未接觸

C / C++

Java Visual Basic

Python HTML PHP JavaScript

2. 除了前一題所提到的程式語言,是否學習過其他程式語言?若有,請寫出程式語 言的名稱並自行括號備註程度為何(精熟/佳/普通/僅使用過幾次而已)?

52

3. 是否曾經使用過以下程式設計學習工具?(複選題)

Alice Code.org Greenfoot Scratch

其他: (請自行填寫)

先前未使用過任何程式設計學習工具

4. 對於學習程式設計的興趣?

非常不感興趣 非常感興趣

☐ 1 ☐ 2 ☐ 3 ☐ 4 ☐ 5

5. 對於學會程式設計的自信?

非常沒有自信 非常有自信

☐ 1 ☐ 2 ☐ 3 ☐ 4 ☐ 5

53

附錄四 實驗組期中考核試題

一、選擇題

1. 請根據以下程式碼片段判讀,當 num 是 22 時,其輸出為何?

4 22

2 is negative!

22 is negative!

無任何輸出

54

2. 在程式碼執行前,a = 7 且 c = 6,請根據下圖程式碼片段判讀,以下哪一個選項 為執行後 c、d、p 和 t 的值?若值仍未定將以?表示。

c = 5, d = ?, p = ?, t = 10 c = 5, d = 9, p = ?, t = 10 c = 6, d = ?, p = ?, t = ? c = 6, d = ?, p = 9, t = ? c = 9, d = 9, p = ?, t = ?

55

3. 以下程式碼片段執行後,x 與 y 的值為何?

x = 3, y = -3 x = 30, y = -30 x = 30, y = 60 x = 30, y = 90 x = 30, y = 40

56

4. 以下程式碼片段執行後,x 與 y 的值為何?

x = 6, y = 18 x = 6, y = 6 x = 3, y = 18 x = 2, y = 3 x = 2, y = 18

5. 給定兩個整數變數 n 及 k,請觀察以下程式碼及下列五個選項,請問這些選項中 何者和原程式碼的功能相同?

57

58

6. 請問以下程式碼片段執行時的輸出為何?

0 2 4 6 8 10 0 1 3 5 7 9 0 2 4 6 8 10 11 0 1 2 3 4 5 6 7 8 9 10 0 1 3 5 7 9 11

7. 奇異博士正在學迴圈的使用方法,他想要寫一個會不斷印出笑臉:D 的程式,程式 會不斷詢問使用者想不想要繼續印笑臉 (Keep laugh or not?) 直到使用者輸入"N"

才結束輸出。在練習的過程中,他常常因為邏輯錯誤導致迴圈總是不會結束。以 下包含了 4 個他練習時所寫的錯誤版本,以及一個最終他學會迴圈之後的正確版 本,請問以下哪種寫法是奇異博士所寫的正確版本?

59

60

8. 請問以下程式碼片段執行時的輸出為何?

25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55

49 50 51 52 53 54 55 50 51 52 53 54 55 49 50 51 52 53 54 55 56 25 25 26 26 27 27 28

61

9. 小牧寫了如下圖的程式,希望能將指定範圍內的奇數都印出來(輸入:10,輸出:

1 3 5 7 9),請幫小牧檢查以下程式碼是否有誤。

變數的定義有誤。

迴圈變數的範圍有誤。

迴圈變數的遞增值有誤。

輸出的變數有誤。

程式碼完全正確無誤。

62

10. 下列哪些程式碼可以透過使用者輸入的數字,計算汽油量的增減,直到沒有汽油 為止。(複選題)

63

64

二、實作題

以下兩題,請使用 Blockly 積木作答 ,請點擊此網址作答 https://blockly-demo.appspot.com/static/demos/code/index.html?lang=en#p5dq24。作答完畢請分享該 答案之連結至答案區。Blockly 積木使用說明及如何分享答案網址請點擊此網址

https://drive.google.com/file/d/0B3tqt8Tn3ZQ2SVJxc1BtLXRHbDA/view?usp=sharing

1. 終極一班的微積分考試考砸了,老師想要幫同學加分,但為避免成績超過 100 分,

因此採取分級加分制。60 分以下者加 10 分,80 分以下者加 5 分,99 分以下者加

1 分,同一分數僅可加分一次,擇優加分(能夠加最多分的情況)。請使用程式積 木設計一個 if 判斷結構,能夠完整包含上述所有的情況。教師每次將輸入一個整 數(存在 score 裡),請使用 score 變數作答,並盡量使用 if - else 結構描述。

2. 請使用 for 迴圈設計一個重複結構,當使用者輸入一個正整數時(存在 num 裡), 能印出在此正整數範圍內所有 3 的倍數。請使用變數 num 作答,並將輸出按照升 冪方式印出。如輸入 20,則輸出 0 3 6 9 12 15 18。

65

附錄五 控制組期中考核試題

一、選擇題

1. 請根據以下程式碼片段判讀,當 num 是 22 時,其輸出為何?

4 22

2 is negative!

22 is negative!

無任何輸出

66

2. 在程式碼執行前,a = 7 且 c = 6,請根據以下程式碼片段判讀,以下哪一個選項 為執行後 c、d、p 和 t 的值?若值仍未定將以?表示。

c = 5, d = ?, p = ?, t = 10 c = 5, d = 9, p = ?, t = 10 c = 6, d = ?, p = ?, t = ? c = 6, d = ?, p = 9, t = ? c = 9, d = 9, p = ?, t = ?

67

3. 以下程式碼片段執行後,x 與 y 的值為何?

x = 3, y = -3 x = 30, y = -30 x = 30, y = 60 x = 30, y = 90 x = 30, y = 40

68

4. 以下程式碼片段執行後,x 與 y 的值為何?

66 318 218 23 618

69

5. 給定兩個整數變數 n 及 k,請觀察下圖程式碼,請問下列選項中的程式碼何者和 下圖程式碼的功能相同?

70

6. 請問以下程式碼片段執行時的輸出為何?

0 2 4 6 8 10 0 1 3 5 7 9 0 2 4 6 8 10 11 0 1 2 3 4 5 6 7 8 9 10 0 1 3 5 7 9 11

7. 奇異博士正在學 scanf ( )和 printf ( )的用法,他想試著讓電腦判斷使用者輸入的數 字是正數或是負數。請問以下哪一個選項的寫法是正確的呢?

71

72

73

8. 請問以下程式碼片段執行時的輸出為何?

4 16 4 10 16 0 6 12 18

1 4 7 10 13 16 19 0 2 4 6 8 10 12 14 16 18

9. 小牧想寫一個程式來印出指定範圍內 3 的倍數,若非 3 的倍數則印出*。也就是 說,當使用者輸入 20 時,程式輸出結果為**3**6**9**12**15**18**。小牧寫的 程式碼如下,若程式碼有誤請幫他挑出來。

74

第 4 行有誤。

第 5 行有誤。

第 6-8 行有誤。

第 9-11 行有誤。

程式碼完全正確無誤。

10. 以下是 ASCII 碼表,已知將使用 printf ("我的血型是%c 型",type ); 輸出,請問以 下哪種變數定義方式可以順利印出我的血型是 B 型? (複選題 )

char type = 'B';

char type = 42;

char type = 66;

char type = "B";

char type = B;

75

二、實作題

以下兩題,請以 C 程式語言作答,編輯答案時,若欲換行可同時按鍵盤左上方 的 Shift 鍵及 Enter 鍵,即可換行。

1. 終極一班的微積分考試考砸了,老師想要幫同學加分,但為避免成績超過 100 分,

因此採取分級加分制。60 分以下者加 10 分,80 分以下者加 5 分,99 分以下者加

1 分,同一分數僅可加分一次,擇優加分(能夠加最多分的情況)。請設計一個 if 判斷結構,能夠完整包含上述所有的情況。教師每次將輸入一個整數(存在 score 裡),請使用 score 變數作答,並盡量使用 if - else 結構描述。

2. 請使用 for 迴圈設計一個重複結構,當使用者輸入一個正整數時(存在 num 裡), 能印出在此正整數範圍內所有的偶數。請使用變數 num 作答,並將輸出按照降冪 方式印出。如輸入 11,則輸出 10 8 6 4 2 0。。

相關文件