• 沒有找到結果。

第五章 結論與建議

第二節 建議

壹、 教學建議 一、加強除錯的教學

學生雖然不喜歡除錯,但在除錯成功後都會感到成就感以及非常開心。從問 卷開放式調查中發現學生認為除錯最困難是不知道錯誤在哪裡、不知道如何修改 錯誤,從研究中發現學生缺乏預完成程式的知識、除錯的方法,和程式錯誤的知 識,如果教師能藉由教學設計加強學生除錯的方法與知識,不僅能夠提升學生的 除錯技能,也能增加學生學習的成就感,亦可以增加他們勇於面對問題進而解決 問題,反而能增加他們學習的正向態度。

貳、 對未來研究建議

一、增加學生樣本數,重複本研究

由於本研究採兩班做為受試研究對象,以量化統計輔以質性資料的分析,以 個案的方式觀察八位學生除錯過程,學生樣本數較少,本研究只歸納八位學生共 通性的除錯行為,並未深入比較高、中、低成就學生的除錯行為是否有不同,因 此建議未來的研究可以擴大學生的樣本數,並以質性資料如除錯行為觀察表深入 探討進行分析,更能完整分析學生除錯行為。

二、應依程式設計的概念設計不同類型的除錯題目

本研究的除錯題目僅針對受試學生所學過的課程內容來設計,此範圍涵蓋變

43

數、迴圈、判斷、副程式等內容,因除錯題目僅有三題,並非涵蓋所有的程式概 念,未來研究可以增加陣列、遞迴等更具深度的內容,或者考慮設計不同的程式 概念為獨立的除錯題目,研究是否會有不同的除錯行為,以全面瞭解學生除錯的 情形。

44

45

參考文獻

中華民國電腦技能基金會(2009)。Visual Basic 2008 實力養成曁評量。台北市:

碁峰資訊。

尹玫君(1991)。電腦程式設計能力與認知能力相關之研究。臺南師院學報,24。

李啟龍和俞冠廷(2008)。Visual Basic 2008 程式設計 16 堂特訓。台北市:文魁 資訊股份有限公司。

Ahmadzadeh, M., Elliman, D., & Higgins, C. (2005). An analysis of patterns of debugging among novice computer science students. SIGCSE Bulletin, 37(3), 84-88. doi: 10.1145/1151954.1067472

Bayman, P., & Mayer, R. E. (1988). Using conceptual models to teach BASIC

computer programming. Journal of Educational Psychology, 80(3), 291-298.

Bonar, J., & Soloway, E. (1985). Preprogramming knowledge: a major source of misconceptions in novice programmers. Human-Computer Interaction, 1(2), 133-161.

46

Chmiel, R., & Loui, M. C. (2004). Debugging: from novice to expert. SIGCSE Bulletin, 36(1), 17-21.

Decasse, M., & Emde, A. M. (1988). A review of automated debugging systems:

knowledge, strategies and techniques. Proceedings of the 10th International Conference on Software engineering, 162-171, Singapore.

Ellinger, H. (2003). A nature sense of algorithm: Children should learn computer programming as a basic skill. Retrieved Febuary 13, 2009, from

http://hunter.ellinger.org/education/ProgrammingForChildren.htm.

Fitzgerald, S., Lewandowski, G., McCauley, R., Murphy, L., Simon, B., Thomas, L.,

& Zander, C. (2008). Debugging: Finding, Fixing and Flailing, a

Multi-Institutional Study of Novice Debuggers. Computer Science Education, 18(2), 93-116.

Gal-Ezer, J., & Harel, D. (1998). What (else) should CS educators know?

Communications of the ACM, 41(9), 77-84.

Garry, L. W., & Marcos, P. S. (2002). A theory of the relationship between cognitive requirements of computer programming languages and programmers'

cognitive characteristics. Journal of Information Systems Education, 13(1), 59.

Gugerty, L., & Olson, G. (1986). Debugging by skilled and novice programmers.

ACM SIGCHI Bulletin, 17(4), 171-174.

Hartmann, W., Nievergelt, J., & Reichert, R. (2001). Kara, finite state machines, and the case for programming as part of general education. Proceedings of the 2001 IEEE Symposia on Human-Centric Computing Languages and Environments, 135-141, Stresa, Italy.

Hughes, M. C., Jadud, M. C., & Rodrigo, M. M. T. (2010). String formatting considered harmful for novice programmers. Computer Science Education, 20(3), 201-228. doi: 10.1080/08993408.2010.507335

47

Jadud, M. C. (2006). Methods and tools for exploring novice compilation behaviour.

Paper presented at the Proceedings of the second international workshop on Computing education research, Canterbury, United Kingdom.

Jeffries, R. (1982). A comparison of the debugging behavior of expert and novice programmers. Paper presented at the American Education Research Association Annual Meeting, New York.

Katz, I. R., & Anderson, J. R. (1987). Debugging: an analysis of bug-location strategies. Human-Computer Interaction, 3(4), 351-399.

Ko, A. J., Myers, B. A., & Aung, H. H. (2004). Six Learning Barriers in End-User Programming Systems. Paper presented at the Proceedings of the 2004 IEEE Symposium on Visual Languages - Human Centric Computing.

Lahtinen, E., Ala-Mutka, K., & Järvinen, H.-M. (2005). A study of the difficulties of novice programmers. SIGCSE Bulletin, 37(3), 14-18.

Marie-H, Nienaltowski, n., Pedroni, M., & Meyer, B. (2008). Compiler error messages: what can help novices? SIGCSE Bulletin, 40(1), 168-172. doi:

10.1145/1352322.1352192

Martin, J. (1999). Teaching with Visual BASIC. Journal of Computer Science Education, 13(1), 12-15.

McCauley, R., Fitzgerald, S., Lewandowski, G., Murphy, L., Simon, B., Thomas, L.,

& Zander, C. (2008). Debugging: a review of the literature from an educational perspective. Computer Science Education, 18, 67-92.

Murphy, L., Lewandowski, G., McCauley, R., Simon, B., Thomas, L., & Zander, C.

(2008). Debugging: the good, the bad, and the quirky -- a qualitative analysis of novices' strategies. SIGCSE Bulletin, 40(1), 163-167. doi:

10.1145/1352322.1352191

Ousterhout, J. K. (1998). Scripting: higher level programming for the 21st Century.

48

Computer, 31(3), 23-30.

Parsons, D., & Haden, P. (2007). Programming osmosis: Knowledge transfer from imperative to visual programming environments. Proceedings of The

Twentieth Annual National Advisory Committee on Computing Qualifications Conference, 209-215, Hamilton, New Zealand.

Perkins, D., Hancock, C., Hobbs, R., Martin, F., & Simmons, R. (1986). Conditions of learning in novice programmers. Journal of Educational Computing Research, 2(1), 37-55.

Perkins, D., & Martin, F. (1986). Fragile knowledge and neglected strategies in novice programmers. Empirical studies of programmers, Ablex, Norwood, NJ (1986), 213–229.

Powers, K., Gross, P., Cooper, S., McNally, M., Goldman, K. J., Proulx, V., & Carlisle, M. (2006). Tools for teaching introductory programming: what works?

SIGCSE Bulletin, 38(1), 560-561. doi: 10.1145/1124706.1121514 Putnam, R., Sleeman, D., Baxter, J., & Kuspa, L. (1986). A summary of

misconceptions of high school basic programmers. Journal of Educational Computing Research, 2(4), 459-472.

Resnick, M., Maloney, J., Hernandez, A., Rusk, N., Eastmond, E., Brennan, K., . . . Silverman, B. (2009). Scratch: Programming for Everyone. Communications of the ACM, 52(11), 60-67.

Robins, A., Rountree, J., & Rountree, N. (2003). Learning and Teaching Programming:

A Review and Discussion. Computer Science Education, 13(2), 137-172. doi:

10.1076/csed.13.2.137.14200

Shneiderman, B. (1980). Software psychology: Human factors in computer and information systems (Winthrop computer systems series), Winthrop Publishers.

49

Simon, B., Bouvier, D., Chen, T., Lewandowski, G., McCartney, R., & Sanders, K.

(2008). Common sense computing (episode 4): debugging. Computer Science Education, 18(2), 117-133.

Spohrer, J. G., & Soloway, E. (1986). Analyzing the high frequency bugs in novice programs. Paper presented at the Papers presented at the first workshop on empirical studies of programmers on Empirical studies of programmers, Washington, D.C., United States.

Spohrer, J. C., Soloway, E., & Pope, E. (1985). A Goal/Plan Analysis of Buggy Pascal Programs. Human–Computer Interaction, 1(2), 163-207. doi:

10.1207/s15327051hci0102_4

Tucker, A., Deek, F., Jones, J., McCowan, D., Stephenson, C., & Verno, A. (2004). A model curriculum for K-12 computer science. Retrieved February 13, 2009, from

http://www.csta.acm.org/Curriculum/sub/CurrFiles/K-12ModelCurr2ndEd.pdf

Valente, J. (1995). Logo as a window into the mind. Logo Update, 4(1), 1-4.

Retrieved February 13, 2009, from

http://el.media.mit.edu/logo-foundation/pubs/logoupdate/v2004n2001.html

50

51

52

53

附錄二 除錯題目

 列出區間內三的倍數

題目說明:

輸入「起始值」與「終止值」,按下「列出區間內所有三的倍數」按鈕後,會列 出所有 3 的倍數。

屬性值設定:

物件 屬性 屬性值

Label1 Text 起始值

Label2 Text 終止值

Button1 Text 列出區間內三的倍數

Textbox3 (Name) txtOutput

54

 交換變數值

題目說明:

依序按下「傳值呼叫」與「傳址呼叫」按鈕後,會出現下圖的運算結果。

屬性值設定:

物件 屬性 屬性值

Button1 Text 傳值呼叫

Button2 Text 傳址呼叫

55

 速食店點餐 題目說明:

請完成速食店點餐的程式,依照點選套餐的內容,並輸入數量算出金額。

1. 每種套餐可選擇一項主餐、一項副餐,和一項飲料,現在的表單無法正確的 選擇,請修正為正確的表單。

2. 選到副餐為薯條時,可以再選擇「薯條加大」的五元升級方案,若選到其他 種類的副餐,則須將「薯條加大」的 CheckBox 控制項設為不可核取

3. 選到飲料為可樂時,可以再選擇「可樂加大」的五元升級方案,若選到其他 種類的飲料,則須將「可樂加大」的 CheckBox 控制項設為不可核取

4. 按「結帳」按鈕時,顯示「謝謝光臨」的訊息 屬性值設定:

56

物件 屬性 屬性值

RadioButton1 (Name) rbA1

Text 1 號餐:兩塊雞套餐(129 元)

RadioButton2 (Name) rbA2

Text 2 號餐:雙層漢堡套餐(99 元)

RadioButton3 (Name) rbB1

Text 薯條

RadioButton4 (Name) rbB2

Text 玉米

RadioButton5 (Name) rbB3

Text 沙拉

RadioButton6 (Name) rbC1

Text 可樂

RadioButton7 (Name) rbC2

Text 紅茶

RadioButton8 (Name) rbC3

Text 雪碧

CheckBox1 (Name) cbUPF

Text 薯條加大

CheckBox2 (Name) cbUPD

Text 可樂加大

TextBox1 (Name) txtPrice TextBox2 (Name) txtQty TextBox3 (Name) txtAmt Button1 (Name) Btn_GO

57

附錄三 除錯行為觀察表

除錯行為觀察表 題目

是否完成 是 □ 否 □ 總時間

學生編號

時間 行為 編碼

58

1:00 切換至表單設計,察看 ExEOuEpuE EexEbox 屬性

值 R4

buEEon1_click 程式區段 R2

3:45 編輯程式碼,剪下程式碼把程式碼移置 buEEon1

click 的程式區段 E1

4:08 執行程式 ((輸入 2,50 測試)程式輸出錯誤) T1

59

察看輸出結果

4:37 察看程式碼 (迴圈部分) R2

4:58 編輯程式碼,修改 ExEOuEpuE.EexE &=i & “ ” 修改

成 ExEOuEpuE.EexE &= ExEOuEpuE.EexE & “ ” E1 5:09 執行程式 ((輸入 2,50 測試)程式輸出錯誤) T1

察看輸出結果

5:31 察看程式碼 R2

5:33 編輯程式碼,刪除 ExEOuEpuE.EexE &=

ExEOuEpuE.EexE & “ ” E1 5:37 執行程式 ((輸入 2,50 測試)程式輸出錯誤) T1

察看輸出結果

5:46 編輯程式碼,寫入 ExEOuEpuE.EexE =

ExEOuEpuE.EexE & i 修改成 ExEOuEpuE.EexE &=

ExEOuEpuE.EexE & i & “ ”

E1

5:52 執行程式 (輸入 2,50 測試) T1

6:15 停止 成功除錯

60 4:43 編輯程式碼,修改 txtOutput.Text = txtOutput.Text

& i 變成 c = txtOutput.Text & i

E1

4:55 察看程式碼,察看 txtOutput 那行 R2 5:13 編輯程式碼,復原 txtOutput.Text = txtOutput.Text

& i

61

mod 3 <> 0 then i+1 and txtOutput.Text=””

E1

10:13 察看程式碼 R2

11:48 編輯程式碼,修改 if I mod 3 <> 0 then i+1 and txtOutput.Text=””變成 if I mod 3 <> 0 then txtOutput.Text=””

E1

12:03 察看程式碼 R2

12:21 編輯程式碼,寫入 if 敘述 end if 程式碼 E1 12:26 編輯程式碼,txtOutput.Text=””移至 if 敘述裡面 E1 12:43 開啟”記事本”,複製 txtOutput.Text=txtOutput.Text O1

13:00 察看程式碼 R2

13:24 編輯程式碼,在 if 敘述中寫入 else if 程式碼 E1 13:46 開啟”記事本”,複製 txtOutput.Text=txtOutput.Text O1 13:54 編輯程式碼,在 if 敘述 else if 中貼上

txtOutput.Text=txtOutput.Text 程式碼

E1

62

3 <> 0 then txtOutput.Text=”” and i=1

15:58 編輯程式碼,刪除在 if 敘述中 else if 程式碼 E1 txtOutput.Text=”” and i=i+1

E1

19:34 察看程式碼 R2

20:00 停止 未成功除錯

63

64

65

66

67

相關文件