第五章 結論與建議
第二節 建議
本研究根據教學實驗獲得資料之分析結果,提出下列建議供程式設計教學及 未來研究之參考。
壹、提供程式設計初學者精熟導向學習回饋
本教學實驗結果顯示精熟導向回饋對於學習程式設計之學習成效與學習態 度之重要性,精熟導向回饋組的學習者在程式設計學習成效與回饋接受度表現上 較佳,因此建議針對學習者個別情況給予回饋,幫助初學者在開始學習程式概念 時即能夠瞭解自己的學習情況,減少把疑問帶回家的情形,將有助於對程式設計 的學習理解。
貳、針對學習者個人目標導向進一步探討
本研究在回饋設計上使用目標導向作為設計標準,並針對學習者實施精熟及 績效兩種回饋,並未考量學習者個人之目標導向特質,建議未來研究可以針對學 習者個人目標導向的不同分別給予適性之回饋,以期更能提高學習者對於程式概 念的理解與回饋之接受度及幫助度。
參、完善規劃配對程式設計實施方式
本研究使用配對程式設計作為分組方式之一,但僅在學習態度之回饋幫助度 上表現較佳,對於程式設計學習成效則沒有顯著影響。後續研究可以針對配對程 式設計的實施方式進一步探究,建立確認角色良好分工的機制,並可採用如隨機 或依能力分組等其他配對方式,以為學習者找出最合適之配對實施方式。
肆、使用視覺化程式設計教學工具
本研究使用 Alice 作為實驗之教學工具,能夠以視覺化的形式展現程式碼之
執行結果,然而 Alice 為英文操作介面,國中七年級生在介面的熟悉上需要花費 較多的時間,而程式設計教學軟體仍有多種選擇,因此建議未來研究可以嘗詴以 其他各式程式設計教學軟體搭配精熟導向回饋進行教學,為此階段的學習者尋找 一個最適合的教學工具,並作為教學者在工具選擇上的參考依據。
參考文獻
參考文獻
9 日,取自: http://www.edu.tw/EJE/content.aspx?site_content_sn=4420張春興(1996)。教育心理學--三化取向的理論與實踐。台北市:東華書局。
Adams, J. C. (2007). Alice, middle schoolers and the Imaginary Worlds Camps. ACM
SIGCSE Bulletin, 39(1), 307-311.
Ames, C. (1992). Classrooms: Goals, structures, and student motivation. Journal
of Educational Psychology, 84(3), 261-271.
Bancroft, P. & Roe, P. (2006). Program annotations: Feedback for students learning to program. Proceedings of the 8th Austalian Conference on Computing Education,
52, 19-23.
Beck, K. & Andres, C. (2005). Extreme programming explained: Embrace change (2nd ed.). Addison-Wesley.
Bempechat, J., London, P. & Dweck, C. S. (1991). Children’s conceptions of ability in major domains: An interview and experimental study. Child Study Journal, 21, 11–36.
Bevan, J., Werner, L., & McDowell, C. (2002). Guidelines for the use of pair programming in a freshman programming class. Fifteenth Conference on
Software Engineering Education and Training, Covington, Kentucky, USA:
IEEE Computer Society Press.
Bishop-Clark, C. (1992). Protocol analysis of a novice programmer. ACM SIGCSE
Bulletin, 24(3).
Bishop-Clark, C., Courte, J., Evans, D., & Howard, E. V. (2007). A quantitative and qualitative investigation of using Alice programming to improve confidence, enjoyment and achievement among non-majors. Journal of Educational
Computing Research, 37(2), 193-207.
Bishop-Clark, C., Courte, J., & Howard, E. V. (2006). Programming in pairs with Alice to improve confidence, enjoyment, and achievement. Journal of Educational
Computing Research, 34(2), 213-228.
Butler, R. (1987). Task-involving and ego-involving properties of evaluation: Effects of different feedback conditions on motivational perceptions, interest, and performance. Journal of Educational Psychology, 79(4), 474-482.
Cheung, E. (2004). Goal Setting as Motivational tool in Student's Self-regulated Learning. Educational Research Quarterly, 27(3), 3-9.
Clifford, M. M. (1972). Effects of emphasizing competition in classroom-testing procedures. The Journal of Educational research, 65, 234-238.
Covington, M. V. (1984). The motive for self-worth. In R. Ames & C. Ames (Eds.),
Research on motivation in education: Student motivation (Vol. 1, pp. 77-113).
New York: Academic Press.
Cooke, N. J., & Schvaneveldt, R. W. (1988). Effects of computer programming experience on network representations of abstract programming concepts.
International Journal of Man-Machine Studies, 29, 407-427.
Cooper, S., Dann, W. & Pausch, R. (2000). Developing algorithmic thinking with Alice.
Proceedings of ISECON 2000, 17, 506-539.
Cooper, S., Dann., W. & Pausch, R. (2003). Teaching objects-first in introductory computer science. Proceedings of the 34th SIGCSE Technical Symposium on
Computer Science Education, 35(1), 191-195.
Cox, K. R. & Clark, D. (1994). Computing models that empower students. Computer
& Education, 24(4), 277-284.
Daly, T. (2009). Using introductory programming tools to teach programming concepts:
A literature review. The Journal for Computing Teachers, 1-6.
DeClue, T. (2003). Pair programming and pair trading: Effects on learning and motivation in a CS2 course. The Journal of Computing in Small Colleges, 18(5), 49-56.
Deek, F. P., Kimmel, H. & McHugh, J. A. (1998). Pedagogical changes in the delivery of the first course in computer science: Problem solving then programming.
Journal of Engineering Education, 87(3), 313-320.
Denton, P., Madden, J., Roberts, M. & Rowe, P. (2008). Students' response to traditional and computer-assisted formative feedback: A comparative case study.
British Journal of Educational Technology, 39(3), 486-500.
Du Boulay, B. (1989). Some difficulties of learning to program. In Soloway, E. &
Spohrer, J. C. (Eds.), Studying the novice programmer (pp. 283-299). Hillsdale, NJ: Lawrence Erlbaum.
Dweck, C. S. (1986). Motivation processes affecting learning. American Psychologist,
41(10), 1040-1048.
Dweck, C. S. (1989). Motivation. In A. Lesgold & R. Glaser (Eds.), Foundations for a
Psychology of Education, Hillsdale, NJ: Erlbaum.
Dweck, C. S., & Leggett, E. L. (1988). A social-cognitive approach to motivation and personality. Psychological Review, 95, 256-273.
Ellinger, H. (2003). A natural sense of algorithm: Children should learn computer
programming as a basic skill. Retrieved February 7, 2010, from http://hunter.ellinger.org/education/ProgrammingForChildren.htm
Ennis, D. L. (1994). Combining problem-solving instruction and programming instruction to increase the problem-solving ability of high school student. Journal
of Research on Computing Education, 26(4), 488-496.
Felleisen, M., Findler, R. B., Flatt, M., & Krishnamurthi, S. (2004). The TeachScheme!
Project: Computing and programming for every student. Computer Science
Education, 14(1), 55-77.
Flor, N. V., & Hutchins, E. L. (1991). Analyzing distributed cognition in software teams: A case study of team programming during perfective software maintenance. In Koenemann-Belliveau, J., Moher, T. & Robertson S. (Eds.),
Empirical studies of programmers: Fourth workshop (pp. 36-64). Norwood, NJ:
Ablex.
Gibbs, G. & Habeshaw, T. (1993). Preparing to teach: An introduction to effective teaching in higher education (p. 95). Bristol: Technical & Educational Services.
Gomes, A., & Mendes, A. J. (2007). Learning to program - difficulties and solutions.
Proceedings of International Conference on Engineering Education 2007.
Govender, I. & Grayson, D. (2006). Learning to program and learning to teach programming: A closer look. Proceedings of the ED-MEDIA 2006-World
Conference on Educational Multimedia, Hypermedia & Telecommunications (pp.
1687-1693).
Grissom, S. & Van Gorp, M., (2000). A practical approach to integrating active and collaborative learning into the introductory computer science curriculum, The
Journal of Computing in Small Colleges, 16 (1), 97-102.
Horvath, M., Herleman, H. A., & McKie, R. L. (2006). Goal orientation, task difficulty, and task interest: A multilevel analysis. Motivation and Emotion, 30(2), 171-178.
Howard, E. V., Evans, D., Courte, J. & Bishop-Clark, C. (2006). A qualitative look at Alice and pair-programming. Proceedings of ISECON 2006, 23, 1-8.
Howell, K. (2003). First computer languages. Journal of Computing Sciences in
Colleges, 18(4), 317-331.
Jagacinski, C. M., & Nicholls, J. G. (1987). Competence and affect in task involvement and ego involvement: The impact of social comparison information. Journal of
Educational Psychology, 76, 478-487.
Kahney, H. (1986). Problem solving - A cognitive approach. Milton Keynes: Open University Press.
Ko, A. J. (2004). Designing a flexible and supportive direct-manipulation programming environment. Proceedings of the 2004 IEEE Symposium on Visual
Languages-Human Centric Computing (pp. 277-278).
Kirsner, K. (1998). Implicit and explicit mental processes. Mahwah, NJ: LEA.
Lahtinen, E., Ala-Mutka, K., & Järvinen, H. (2005). A study of the difficulties of novice programmers. ACM SIGCSE Bulletin, 37(3), 14-18.
Lorenzen, T. & Sattar, A. (2008). Objects first using Alice to introduce object constructs in CS1. ACM SIGCSE Bulletin, 40(2), 62-64.
Maslow, A. H. (1954). Motivation and personality. New York: Harper & Row.
Mayer, R. E. (1988). From novice to expert. In M. Helander (Ed.). Handbook of
human-computer interaction (pp. 569-580). Amsterdam: North-Holland.
McDowell, C., Werner, L., Bullock, H. E. & Fernald, J. (2002). The effects of pair-programming on performance in an introductory programming course.
Proceedings of the 33rd SIGCSE Technical Symposium on Computer Science Education, 38-42.
McDowell, C., Werner, L., Bullock, H. E. & Fernald, J. (2003). The impact of pair programming on student performance, perception, and persistence, Proceedings
of the International Conference on Software Engineering, 602-607.
McIver, L. (2000) The effect of programming language on error rates of novice programmers. In A. F. Blackwell & E. Bilotta (Eds.), Proceedings of Twelfth
Annual Meeting of the Psychology of Programming Interest Group (pp. 181-192).
Corigliano Calabro, Italy: Edizioni Memoria.
Moskel, B., Lurie, D., & Cooper, S. (2004). Evaluating the effectiveness of a new instructional approach. Proceedings of the 35th SIGCSE Technical Symposium on
Computer Science Education, 75-79.
Mouly, G. J. (1968). Psychology for Effective Teaching. New York: Holt Rinehart and Winston.
Muller, O. (2005). Pattern oriented instruction and the enhancement of analogical reasoning. Proceedings of the 1st International Computing Education Research
Workshop, 57–67.
Murphy, L., Blaha, K., VanDeGrift, T., Wolfman, S. & Zander, C. (2002). Active and cooperative learning techniques for the computer science classroom. The Journal
of Computing in Small Colleges, 18(2), 92-94.
Murray, H. A. (1938). Explorations in personality: A clinical and experimental study of
fifth men of college age. New York: Oxford Press.
Nicholls, J. G. (1984). Achievement motivation: Conceptions of ability, subjective experience, task choice, and performance. Psychological Review, 91(3), 328-346.
Papert, S. (1970). Teaching children thinking. In World Conference on Computer
Education, IFIPS, Amsterdam.
Pea, R. D. (1983). Logo programming and problem solving. (Technical Report No. 12).
New York: Bank Street College, Center for Children and Technology.
Powers, K., Gross, P., Cooper, S., McNally, M., Goldman, K. J., & Proulx, V. (2006).
Tools for teaching introductory programming: What works? Proceedings of the
37th SIGCSE Technical Symposium on Computer Science Education (pp.
560-561). USA.
Preston, D. (2005). Pair programming as a model of collaborative learning: A review of the research. Journal of Computer Science in Colleges, 20(4), 39-45.
Pintrich, P. R. (2000a). Multiple goals, multiple pathways: The role of goal orientation in learning and achievement. Journal of Educational Psychology, 92(3), 544-555.
Pintrich, P. R. (2000b). The role of goal orientation in self-regulated learning. In M.
Boekaerts, P. R. Pintrich & M. Zeidner (Eds.), Handbook of self-regulation (pp.
451-502). San Diego, CA: Academic Press.
Pintrich, P. R., & Schunk, D. H. (1996). Motivation in education. Englewood Cliffs, NJ:
Prentice-Hall.
Pintrich, P. R., & Schunk, D. H. (2002). Motivation in education: Theory, research,
and applications (2nd ed.). New Jersey: Merrill Prentice Hall.
Ramprasad, A. (1983). On the definition of feedback. Behavioral Science, 28, 4-13.
Robins, A., Rountree, J., & Rountree, N. (2003). Learning and teaching programming:
a review and discussion. Computer Science Education, 13(2), 137-172.
Rodger, S. H. (2002). Introducing computer science through animation and virtual worlds. Proceedings of the 2nd SIGCSE Technical Symposium on Computer
Science Education, 186-190.
Schollmeyer, M. (1996). Computer programming in high school vs. college. ACM
SIGCSE Bulletin, 28(1), 378-382.
Schunk, D. H. (1996). Learning theories: An educational perspective. Englewood Cliffs, NJ: Prentice Hall.
Shih, S. S., & Alexander, J. M. (2000). Interacting effects of goal setting and self- or other-referenced feedback on children's development of self-efficacy and
cognitive skill within the Taiwanese classroom. Journal of Educational
Psychology, 92(3), 536-543.
Shih, Y.-F. & Alessi, S. M. (1993). Mental models and transfer of learning in computer programming. Journal of Research on Computing in Education, 26(2), 154-175.
Smith, D. C., Cypher, A. & Tesler, L. (2000). Novice programming comes of age.
Communications of the ACM, 43(3), 75-81.
Smith, P. L. & Ragan, T. J. (1999). Instructional design (2nd ed.). NY: John Wiley &
Sons.
Soloway, E. & Spohrer, J.C. (Eds.). (1989). Studying the novice programmer. Hillsdale, NJ: Lawrence Erlbaum.
Spohrer, J. C., & Soloway, E. (1986). Novice mistakes: Are the folk wisdoms correct?
Communication of the ACM, 29(7), 624-632.
Suarez Riveiro, J. M., Cabanach, R. G., & Arias, A. V. (2001). Multiple goals pursuit and its relation to cognitive, self-regulatory, motivational strategies. British
Journal of Educational Psychology, 71, 561-572.
Tabachnick, B. G., & Fidell, L. S. (2006). Using multivariate statistics (5th ed.).
Pearson International Edition: Allyn and Bacon.
VanDeGrift, T. (2004). Coupling pair programming and writing: Learning about students' perceptions and processes. ACM SIGCSE Bulletin, 36(1), 2-6.
VandeWalle, D. (1997). Development and validation of a work domain goal orientation instrument. Educational and Psychological Measurement, 57(6), 995-1015.
Vegso, J. (2005). Interest in CS as a Major Drops Among Incoming Freshmen.
Computing Research News, 17(3), 126-140.
Volet, S. E. & Lund, C. P. (1994). Meta cognitive instruction in introductory computer programming: A better explanatory construct for performance than traditional factors. Journal of Education Computing Research, 10(4), 297-328.
White, J. A. (1997). Teaching adult novices to program with Visual Basic. Journal of
Computer Science Education, 12(2), 15-19.
Williams, L. A. (2000). The collaborative software process. Doctoral Dissertation.
University of Utah, Salt Lake City, UT.
Williams, L. & Kessler, R. (2003). Pair programming illuminated. Boston, MA:
Addison-Wesley.
Williams, L. & Upchurch, R. L. (2001). In support of student pair-programming.
Special Interest Group on Computer Science Education, 2(1), 327-331.
Williams, L., Wiebe, E., Yang, K., Ferzli, M., & Miller, C. (2002). In support of pair programming in the introductory computer science course. Computer Science
Education, 12(3), 197-212.
Winslow, L. E. (1996). Programming pedagogy-A psychological overview. SIGCSE
Bulletin, 28, 17-22.
Yazici, S., Boyle, T., & Khan, T. (2001). Towards a multimedia learning environment for object oriented design. Proceedings of the 2nd Annual Conference of the
LTSN Centre for Information and Computer Science (pp. 1-2). London.
Zimmerman, B. J. & Martinez-Pons, M. (1992). Perceptions of efficacy and strategy use in the self-regulation of learning. In D. H. Schunk & J. L. Meece (Eds.),
Student perceptions in the classroom (pp. 185-207). Hillsdale, NJ: Erlbaum.
73
附 錄
74
附錄一 Alice 基礎程式設計單元教材
單元一 進入 Alice 的世界
目錄
一、建立 Alice 場景 二、Alice 程式編輯畫面 三、加入物件
四、調整物件的位置、方向、大小,旋轉或複製物件 (一) single view (以攝影機視角的單一視角檢視場景)
(二) quad view (以攝影機視角與上方、右方、前方三視角同時檢視場景) (三) 使用 methods 調整物件
五、常用 mothods 介紹 六、調整攝影機視角 想想看
本單元學習重點:
能夠建立 Alice 起始場景
能夠加入想要使用的物件
能夠調整物件的位置與攝影機視角 本單元學習重點:
能夠建立 Alice 起始場景
能夠加入想要使用的物件
能夠調整物件的位置與攝影機視角
75
一、建立 Alice 場景
(一) 開啟新檔,點選左上方的 File -> New World。
(二) 點選 Templates (樣板),選擇想要使用的背景,然後點 Open。
開新檔案
開啟舊檔 儲存檔案
另存新檔
76
77
二、Alice 程式編輯畫面
剪貼板
78
三、加入物件
(一) 點選場景區右下角的 ADD OGJECTS (加入物件)。
(二) 選擇想要加入的物件
1. Alice 將物件區分為許多種類,方便使用者根據分類來尋找物件。例如我們想 要的物件是企鵝,在 Animals (動物)分類中可以找到。
79
2. 點選 Penguin (企鵝)。
3. 點選 Add instance to world (將物件加入場景)。
4. 完成加入物件後,可按畫面右下角的「DONE」回到程式編輯畫面。
80
* 若是進入到不想使用的物件分類,可以點選 回到上一層。
* 物件選擇區的左上角顯示「Local Gallery」表示目前你所看到的物件是已經被 安裝在電腦中的。若此處沒有你想要使用的物件,可以點選「Home」,再點 選「Web Gallery」從網路上去尋找符合你需求的物件,但前提是你必須先確 定電腦已經連線。
81
四、調整物件的位置、方向、大小,旋轉或複製物件
每個物件都有三種方向,只要點選一個物件,該物件就會出現三條不同顏色 的軸線來表示其方向。綠線代表上方、紅線代表右方、藍線代表前方。三條軸線 的交點,就是該物件的中心點。
加入物件後,可以使用場景區右方的工具列或是 method 來對物件做調整。
檢視物件的畫面分為兩種,一種是 Single view,另一種是 quad view。
(一) Single view (以攝影機視角的單一視角檢視場景)
上方
右方
前方 中心點
82
若要調整物件,只需點選工具列的按鈕,再點選要調整的物件直接拖曳即可。
在 Single view 狀態下可以使用的工具列功能介紹如下:
(1) 選擇、移動物件 (2) 上/下移動物件 (3) 左/右旋轉物件 (4) 前/後旋轉物件 (5) 前/後/左/右旋轉物件 (6) 放大/縮小物件 (7) 複製物件
(8) 調整子物件(若需要調整物件中的子物件,只要將此項打勾,即可只針對物件 的一部分做調整。但切記調整完子物件後一定要將打勾取消)
(二) quad view (以攝影機視角與上方、右方、前方三視角同時檢視場景) (1) (2) (3) (4) (5) (6) (7)
(8)
攝影機視角
83
在 quad view 狀態下可以使用的工具列功能介紹如下(上排按鈕功能請見 Single view 的工具列功能介紹):
(9) 移動畫面 (10) 放大/縮小畫面
(三) 使用 methods 調整物件
除了使用工具列之外,你也可以右鍵點選物件區中的物件,選擇你要的 methods 來調整物件狀態。例如下圖是使用 resize (調整大小)這個 method 來將 littlePenguin 放大為原來的 2 倍。
(9) (10)
從上方
從前方 從右方
攝影機視角
84
五、常用 mothods 介紹
move:移動
turn:left、right 是以綠線為軸心旋轉;forward、backword 是以紅線為軸心 旋轉
roll:以藍線為軸心旋轉
中心點 上方
右方
Roll left Roll
right
Turn left Turn right
Turn forward Turn backward
85
resize:調整大小
say:以話語氣泡顯示物件要說的話,只能用英文
think:以思考氣泡顯示物件心裡所想的話,只能用英文
play sound:發出聲音
move to:移動到某物件的中心點
move toward:朝某物件的中心點移動幾公尺
move away from:朝某物件中心點的反方向移動幾公尺
orient to:以某物件的方向作為自己的方向
turn to face:水平轉向某物件所在的方向
point at:轉而面向某物件中心點
set point of view to:以某物件的方向作為自己的方向,並移動到該物件所在 位置
stand up:當物件躺下時,可讓其直立
六、調整攝影機視角
使用場景區下方的三組箭頭,可以調整攝影機的視角。點選箭頭並往你想觀 看的方向拖曳即可。
(1) 攝影機作垂直方向的上/下/左/右移動 (2) 攝影機作水平方向的前/後/左/右移動
(1) 攝影機作垂直方向的上/下/左/右移動 (2) 攝影機作水平方向的前/後/左/右移動