• 沒有找到結果。

第五章 結論與建議

第二節 建議

本研究根據教學實驗所獲得之分析結果,提出下列建議以提供程式語言教學 及未來研究之參考。

壹、對程式語言教學之建議

本研究給予程式語言教學之建議:透過 Jeliot 3 視覺化工具輔助進行程式語 言教學。由於本研究驗證了實施搭配Jeliot 3 視覺化工具進行程式語言教學,能夠 顯著提升學習者的學習進步幅度和顯著提升學習者正向的學習滿意度、學習幫助 度以及主動學習及思考。因此,針對程式語言之初學者,教師可以在 for 迴圈學 習單元採用Jeliot 3 視覺化工具輔助教學,以促進程式語言教學上的學習成效和學 習態度。

貳、對未來研究方向之建議

本研究針對未來研究方向之建議,包括:

1. 進階單元的選擇;

2. 多元評量方式;

內容分述如下:

一、進階單元的選擇

本研究在程式語言的評量僅採取程式語言 for 迴圈的單元,建議在未來 的研究中,可以進行程式語言其他的進階單元的實驗,例如:例外處理與物 件導向分析設計等。

二、多元評量方式

本研究在程式語言的學習成效評量僅採取程式語言成就測驗的分數,建 議在未來的研究中,可以加入程式設計情境任務題的歷程評量,從流程圖、

工具操作歷程與最後產出結果描述,可以從中探討學習者在不同的程式任務 中所面臨的問題,並可以以此作為視覺化工具改善的依據。除此之外,可以 設計同儕評量機制,讓學習者可以藉由評鑑同儕,進行反思,再多一次學習 的機會。最後,如果研究時程有一定時間,建議可以觀察學習者學習遷移的

情形。

參、總結

本研究針對程式語言教學以及未來研究方向提供相關建議,其目的在於讓未 來的研究者能從多方面進行探討,並能將研究結果作為教學者在教學活動設計上 之依據,透過教學者在實際程式語言教學上的實施,讓學習者在學習程式語言可 以更有效率學習。

參考文獻

參考文獻

中文部分

余志鴻(2007)。數位學習互動模式對學習者資訊技能學習成效與態度之影響。未 出版碩士論文,國立台灣師範大學,台北市。

吳明隆、涂金堂(2005)。SPSS 與統計應用分析。臺北:五南。

吳文萍(2007)。不同學習支持對高職生程式設計學習之影響。未出版碩士論文,

國立台灣師範大學,台北市。

陳明溥(1999)。雙碼理論於遞迴程式設計教學之概念模型設計研究。第八屆電腦 輔助教學國際研討會大會論文,臺中市,逢甲大學,3 月 18-20 日。

陳明溥(2007)。程式語言課程之教學模式與學習工具對初學者學習成效與學習態 度之影響。師大學報,52,1-21。

張春興(1996)。教育心理學:三化取向的理論與實踐。台北市:東華。

張素芬(2009)。國小資訊教育實施 Scratch 軟體教學之研究。未出版碩士論文,

高雄師範大學,高雄市。

鍾靜宜(2004)。教學策略與學習工具對高中程式語言學習之影響。未出版碩士論 文,國立台灣師範大學,台北市。

英文部分

Anderson, L. W., & Krathwohl, D. R. (2001). A taxonomy for learning, teaching, and assessing: A revision of Bloom’s taxonomy of educational objectives (Chapter 3, pp. 27-37). New York: Longman.

Anderson, L. W., & Krathwohl, D. R. (2001). A taxonomy for learning, teaching, and assessing: A revision of Bloom’s taxonomy of educational objectives (Chapter 5, pp.63-92). New York: Longman.

Baecker, R. (1981). Sorting out sorting. Videotape, 30 minutes, presented at ACM SIGGRAPH ’81 and excerpted in ACM SIGGRAPH Video Review #7.

Bagui, S. (1998). Reasons for increased learning using multimedia. Journal of Educational Multimedia and Hypermedia, 7(1), 3-18.

Bednarik, R., Moreno, A., Myller N., & Sutinen, E. (2005). Smart program visualization technologies: Planning a next step. Proceedings of the 5th IEEE

Kaohsiung, Taiwan. IEEE Computer Society, 717–721.

Ben-Bassat Levy, R., & Ben-Ari, M. (2007). We work so hard and they don't use it:

Acceptance of software tools by teachers, ACM SIGCSE Bulletin, 39(3), 246-250.

Ben-Bassat Levy, R., Ben-Ari, M., & Uronen, P.A. (2001). An extended experiment with Jeliot 2000. Proceedings of the First Program Visualization Workshop (pp.

131-140), Joensuu, Finland.

Ben-Bassat Levy, R., Ben-Ari, M., & Uronen, P. A. (2003). The Jeliot 2000 program animation system. Computers & Education, 40(1), 15–21.

Bergin, J. (2000). Fourteen pedagogical patterns for teaching computer science.

Proceedings of the Fifth European Conference on Pattern Languages of Programs (EuroPLop 2000), Irsee, Germany.

Boles, W. W., Pillay, H., & Raj, L. (1999). Matching cognitive styles to computer-based instruction: an approach for enhanced learning in electrical engineering. Journal of Engineering Education, 24(4), 371-383.

Brusilovsky, P., & Spring, M. (2004). Adaptive, engaging, and explanatory visualization in a C programming course. Proceedings of the 2004 World Conference on Educational Media, Hypermedia, and Telecommunications, 1264-1271.

Byrne, M. D., Catrambone, R., & Stasko, J. T. (1999). Evaluating animations as student aids in learning computer algorithms. Computers & Education, 33(4), 253–278.

Chandler, P., & Sweller, J. (1991). Cognitive load theory and the format of instruction.

Cognition and Instruction, 8(4), 293-332.

Clark, J. M., & Paivio, A. (1991). Dual coding theory and education. Educational Psychology Review, 3(3), 149-210.

Clark, R., Nguyen, F., & Sweller, J. (2006). Efficiency in learning: Evidence-based guiedlines to manage cognitive load. San Francisco: John Wiley & Sons, Inc.

(EIL)

Choi-koh, S. S. (2000). A problem-solving model of quadratic min values using computer. Journal of Instructional Media, 27(1), 73-82.

Corich, S., Kinshuk, & Hunt, L. M. (2004). Assessing discussion forum participation:

In search of quality. International Journal of Instructional Technology and Distance Learning, 1(12), 3-11.

De Wever, B., Schellens, T., Valcke, M., & Van Keer, H. (2006). Content analysis

schemes to analyze transcripts of online asynchronous discussion groups: A review. Computers & Education, 46(1), 6-28.

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.

Gill, T. G., & Helton, C. F. (2006). A self-paced introductory programming course.

Journal of Information Technology Education, 5, 95–105.

Govender, I., & Grayson, G. J. (2008). Pre-service and in-service teachers experiences of learning to program in an object-oriented language. Computers & Education, 51, 874–885.

Gyselick, V., Ehrlich, M. -F., Cornoldi, C., De Beni, R., & Dubois, V. (2000).

Visuospatial working memory in learning from multimedia system. Journal of Computer Assisted Learning, 16(2), 167-176.

Iding, M. (2000). Is seeing believing? Features of effective multimedia for learning science. International Journal of Instructional Media, 27(4), 403-415.

Jadud, M. J. (2005). A first look at novice compilation behaviour using BlueJ.

Computer Science Education, 15(1), 25-40.

Johnson, S. D., & Aragon, S. R. (2002). An instructional strategy framework for online learning environment. In T. M. Egan & S. A. Lynham (Eds.), Proceedings of the Academy for Human Resource Development (pp. 1022-1029). Bowling Green, OH: AHRD.

Kannusmäki, O., Moreno, A., Myller, N., & Sutinen, E. (2004). What a novice wants:

Students using program visualization in distance programming course. In A.

Korhonen (Ed.), Proceedings of the Third Program Visualization Workshop (PVW 2004), Warwick, UK.

Karavirta, V., Korhonen, A., Malmi, L., & Stalnacke, K. (2004). MatrixPro - a tool for demonstrating data structures and algorithms ex tempore. Proceedings of ICALT 2004’, 892–893.

Kehoe, C. M., Stasko, J. T., & Talor, A. (2001). Rethinking the evaluation of algorithm animations as learning aids: An observational study, International Journal of Human Computer Studies, 54, 265–284.

Keller, J. M. (1987). Development and use of the ARCS model of instructional design.

Journal of Instructional Development, 10(3), 2-10.

Kirsner, K. (1998). Implicit and explicit mental processes. Mahwah NJ: LEA.

Kolling, M., Quig, B., Patterson, A., & Rosenberg, J. (2003). The BlueJ system and its pedagogy. Journal of Computer Science Education, 13(4), 249-268.

Kölling, M., & Rosenberg, J. (2001). Guidelines for teaching object orientation with Java. Proceedings of 6th conference on Innovation and Technology in Computer Science Education (ITiCSE 2001), Canterbury, UK.

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

Lattu, M., Tarhio, J., & Meisalo, V. (2000). How a visualization tool can be used:

Evaluating a tool in a research and development project. In 12th Workshop of the Psychology of Programming Interest Group (pp.19–32), Corenza, Italy.

Lee, M. J. W., Pradhan, S., & Daldarno, B. (2008). The effectiveness of screencasts and cognitive tools as scaffolding for novice object-oriented programmers.

Journal of Computer Science Education, 7, 61-80.

Lowe, E., & Leyden, S. (2004). Instructional design for online learning, from http://www.wvu.edu/~itdc/resources/FacultyPreparation/Instdesign_onlinecourses .pdf.

Machanick, P. (2007). Teaching Java backwards. Computers & Education, 48(3), 396–408.

Mayer, R. E. (1997). Multimedia learning: Are we asking the right questions ? Educational Psychologist, 32, 1-19.

Mayer, R. E., & Anderson, R. B. (1991). Animations need narrations: An experimental test of a dual-coding hypothesis. Journal of Educational Psychology, 83(4), 484-490.

Mayer, R. E., & Sims, V. K. (1994). For whom is a picture worth a thousand words?

Extensions of a dual-coding theory of multimedia learning. Journal of Educational Psychology, 86(3), 389-401.

Mannila, L., Peltomaki, M., & Salakoski, T. (2006). What about a simple language ? Analyzing the difficulties in learning to program. Computer Science Education, 16(3), 211–227.

McCauley, R., Fitzgeraldb, S., Lewandowskic, G., Murphyd, L., Simone, B., Thomasf, L., & Zanderg C. (2008). Debugging: A review of the literature from an educational perspective. Computer Science Education, 18(2), 67–92.

Moreno, A., & Joy, M.S. (2007). Jeliot 3 in a demanding educational setting.

Electronic Notes in Theoretical Computer Science, 178, 51-59.

Moreno, R., & Mayer, R. E. (1999). Multimedia-supported metaphors for meaning making in mathematics. Cognition and Instruction, 17(3), 215-248.

Moreno, A., Myller, N., & Bednarik, R. (2005). Jeliot 3, An extensible tool for program visualization. 5th Annual Finnish / Baltic Sea Conference on Computer Science Education.

Moreno, A., Myller, N., Sutinen, E., & Ben-Ari, M. (2004). Visualizing Programs with Jeliot 3. Proceedings of Advanced Visual Interfaces, AVI 2004, 373–376.

Moreno, A., Myller, N., Sutinen, E., Lin, T., & Kinshuk (2007). Inductive reasoning and programming visualization, an experiment proposal. Electronic Notes in Theoretical Computer Science, 178, 61-68.

Moreno, A., Sutinen, E., Bednarik R., & Myller, N. (2007). Conflictive animations as engaging learning tools. In R. Lister & Simon (Eds.), Seventh Baltic Sea Conference on Computing Education Research (Koli Calling 2007), 88, 203–206.

Myller, N. (2004). The fundamental design issues of Jeliot 3. Unpublished master’s thesis, University of Joensuu, Department of Computer Science.

Myller, N., & Nuutinen, J. (2006). JeCo: Combining program visualization and story weaving. Informatics in Education, 5(2), 195–206.

Myller, N., Bednarik, R., & Moreno, A. (2007). Visualizing programs with Jeliot 3.

Advanced Learning Technologies, 2007. ICALT 2007. Seventh IEEE International Conference on Advanced Learning Technologies, 505-506.

Myller, N., & Bednarik, R. (2006). Methodologies for studies of program visualization.

Proceedings of the Methods, Materials and Tools for Programming Education Conference (MMT 2006), 37-42.

Pane, J. F., & Myers, B. A. (1996). Usability issues in the design of novice programming systems. School of Computer Science Technical Reports, Carnegie Mellon University. Retrieved May 20, 2010, from http://www.cs.cmu.edu/~pane/cmu-cs-96-132.html.

Papastergiou, M. (2009). Digital game-based learning in high school computer science education: Impact on educational effectiveness and student motivation.

Computers & Education, 52, 1–12.

Pendergast, M. O. (2006). Teaching introductory programming to IS students: Java problems and pitfalls. Journal of Information Technology Education, 5, 491–515.

Price, B. A., Baecker, R. M., & Small, I. S., (1993). A principled taxonomy of software visualization. Journal of Visual Languages & Computing, 4(3),

211–266.

Pirolli, P. L., & Anderson, J. R. (1985). The role of learning from examples in the acquisition of recursive programming skills. Canadian Journal of Psychology, 39, 240-272.

Ragonis, N., & Ben-Ari, M. (2005). A long-term investigation of the comprehension of OOP concepts by novices. Computer Science Education, 15(3), 203–221.

Ramadhan, H. A. (2000). Programming by discovery. Journal of Computer Assisted Learning, 16, 83-93.

Rieber, L. (1997). Animation as a distractor to learning. International Journal of Instructional Media, 23(1), 53-57.

Roman, G. -C., & Cox, K. C. (1993). A taxonomy of program visualisation systems.

IEEE Computer, 26(12), 11-24.

Sajaniemi, J., Ben-Ari, M., Byckling, P., Gerdt, P., & Kulikova, Y. (2006). Roles of variables in three programming paradigms. Computer Science Education, 16(4), 261-279.

Sicilia, M.A. (2006). Strategies for teaching object-oriented concepts with Java.

Computer Science Education, 16(1), 1-18.

Shanmugasundaram, V., Juell, P., Groesbeck, G., & Makosky, M. (2006). Evaluation of Alice World as an introductory programming language. Proceedings of the ED-MEDIA 2006-World Conference on Educational Multimedia, Hypermedia &

Telecommunications, 1976-1982.

Schollmeyer, M. (1996). Computer programming in high school vs. college. ACM SIGCSE Bulletin, 28(1), 378-382.

Soloway, E., & Spohrer, J. C. (1989). Studying the novice programmer. Hillsdale, NJ:

Lawrence Erlbaum Associates.

Stasko, J., Badre, A., & Lewis, C. (1993). Do algorithm animations assist learning: An empirical study and analysis. Proceedings of the INTERCHI ’93 Conference on Human Factors in Computing Systems (pp. 61–66), Amsterdam, Netherlands, Sweller, J., & Chanadler, P. (1994). Why some material is difficult to learn. Cognition

and Instruction, 12(3), 185-233.

Tabachnick, B. G., & Fidell, L. S. (2006). Using Multivariate Statistics (5th ed.).

Pearson International Edition: Allyn and Bacon.

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.

Yechiam, E. (2006). Why are macros not used? A brief review and an approach for improving training. Computers & Education, 46, 206-220.

附 錄

附錄一

Java 程式語言課程 for 迴圈單元學習前調查問卷

填答人基本資料:

班級:________________ 學號:_______________ 姓名:_________________

1. 我是 □(1)男性 □(2)女性

□(4)網頁開發軟體:如 DreamWaver ___________________________。

□(5)資料庫軟體:如 MySQL ___________________________。

<<背面還有題目,別忘了作答>>

7. 我的程式語言學習經驗包括:(可複選)

□(1)Visual Basic □(2)C# □(3)Java □(4)Python

□(5)JavaScript □(6)C++ □(7)Php □(8)Flash

□(9)C □(10)其他 ___________________________。

請重新檢查是否有題目遺漏作答,謝謝! 祝 學習愉快。

附錄二

Java 程式語言課程先備知識測驗(A)

班級:_______________ 學號:_______________ 姓名:_______________

一、 選擇題

1. 下列宣告何者正確?(複選3個)

(1) String a123 ;

(2) int 1nt = 100 ;

(3) short $int = 21 ;

(4) double #int ;

(5) String char =`C';

(6) boolean b = true ;

2. 下列何者正確?

(1) String s =“true";

(2) byte b = 128;

(3) float d = 0.02;

(4) int i = 10L;

3. 下列程式輸出結果為何?

int i = 4;

System.

out

.println( i-- + --i);

(1) 4

(2) 5

(3) 6

(4) 7

4. 下列程式輸出結果為何?

int i = 11;

int j = 120;

System.

out

.println((i > 10)&(j < 120));

(1) false

(2) true

5. 下列程式輸出結果為何?

int i = 11;

int j = 98;

System.

out

.print(( i-- < 11 )&&( ++j == 99 ));

System.

out

.print(i);

System.

out

.print(j);

(1) false1099

(2) true1098

(3) false1098

(4) true1099

二、 寫出程式執行結果

6. _______________

System.

out

.println(8>>1);

7. _______________

System.

out

.println(4<1);

8. _______________

int i = 10;

if( i >= 10 ){

System.

out

.println("yes");

}else{

System.

out

.println("no");

}

9. _______________

int j = 0;

String result;

if( j == 0 ){

result = "yes";

System.

out

.print("true");

}else if( j != 0 ){

result = "no";

System.

out

.print("false");

}

System.

out

.print(result);

三、 請完成空格中的內容

10. 請完成空格,使下列程式可滿足所得稅計算方式:若年收入(income)小 於37萬,稅率(tax)為6%;若年收入大於37萬且小於等於99萬,稅率為 13%,其餘稅率為21%。

_______________ income = 1000000;

_______________ tax ;

if( ______________________________ ){

tax = _______________ ;

}else if( ______________________________ ){

_______________ = 0.13;

}else{

tax = 0.21;

}

11. 假設變數a為int型態,請完成空格使下列程式可判斷輸入之變數a,是 否為3的倍數?若是3的倍數則輸出"Yes",若不是則輸出"No"。

if( _______________ ){

System.

out

.println( _______________ );

} _______________ {

System.

out

.println( "No" );

}

附錄三

Java 程式語言課程先備知識測驗(B)

班級:_______________ 學號:_______________ 姓名:_______________

一、 選擇題

1. 下列何者正確?

(1) byte b = 128;

(2) String s =“true";

(3) float d = 0.02;

(4) int i = 10L;

2. 下列宣告何者正確?(複選3個)

(1) String char =`C';

(2) boolean b = true ;

(3) String a123 ;

(4) int $nt = 100 ;

(5) short #int = 21 ;

(6) double 12int ;

3. 下列程式輸出結果為何?

int i = 11;

int j = 120;

System.

out

.println((i > 10)|(j < 120));

(1) false

(2) true

4. 下列程式輸出結果為何?

int i = 3;

System.

out

.println( i-- + --i);

(1) 6

(2) 5

(3) 4

(4) 3

5. 下列程式輸出結果為何?

int i = 11;

int j = 98;

System.

out

.print(( ++i > 11 )&&( ++j == 99 ));

System.

out

.print(i);

System.

out

.print(j);

(1) false1299

(2) true1298

(3) false1298

(4) true1299

二、 寫出程式執行結果

6. _______________

int i = 10;

if( i < 10 ){

System.

out

.println("yes");

}else{

System.

out

.println("no");

}

7. _______________

System.

out

.println(4>>1);

8. _______________

System.

out

.println(-4<1);

9. _______________

int j = 1;

String result;

if( j == 1 ){

result = "yes";

System.

out

.print("true");

}else if( j != 1 ){

result = "no";

System.

out

.print("false");

}

System.

out

.print(result);

三、 請完成空格中的內容

10. 假設變數a為int型態,請完成空格使下列程式可判斷輸入之變數a,是 否為4的倍數?若是4的倍數則輸出"Yes",若不是則輸出"No"。

if( _______________ ){

System.

out

.println( _______________ );

} _______________ {

System.

out

.println( "No" );

}

11. 請完成空格,使下列程式可滿足所得稅計算方式:若年收入(income)小 於等於50萬,稅率(tax)為3%;若年收入大於50萬且小於80萬,稅率為 7%,其餘稅率為10%。

_______________ income = 1000000;

_______________ tax ;

if( ______________________________ ){

tax = _______________ ;

}else if( ______________________________ ){

_______________ = 0.07;

}else{

tax = 0.1;

}

附錄四

Java 程式語言課程練習 1

姓名:_______________

程式碼:

1. public class Lab1 {

2. public static void main(String[] args){

3. int i = 0;

4. calculate(i);

5. System.out.println("Main Result : "+i);

6. }

7. public static void calculate(int i){

8. System.out.println("Result 1 : "+i);

9. i = i+1;

10. System.out.println("Result 2 : "+i);

11. } 12. }

一、第 5行輸出結果為____________________________________

二、第 8行輸出結果為____________________________________

三、第10行輸出結果為____________________________________

四、第5(a)、8(b)、10(c)行輸出先後次序為________________

(ex. abc 表示執行順序為第5、8、10行) 五、將第3行改為:

int i ;

是否會影響執行結果?說明其原因。觀察並描述其執行結果。

附錄五

Java 程式語言課程練習 2

姓名:_______________

程式碼:

1. public class Lab2 { 2. //Print 0,1,2,3,4,5

3. public static void main(String[] args){

4. System.out.print('Print ');

5. for(int i = 0 ; i > 5 ; i++){

6. System.out.print(i+',');

7. } 8. } 9. }

一、期望輸出結果為____________________________________

二、實際輸出結果為____________________________________

使用工具逐步操作,並回答下列問題:

三、程式第一次執行到第4行時,i的值為?i>5運算的結果是?

四、續上題,第4行程式要如何修改才能符合需求?請說明。

五、續上題,程式執行到第5行時,輸出結果符合預期嗎?如果不符合,程式要 如何修改,並說明導致不符需求的原因。

附錄六

Java 程式語言課程成就測驗(A)

班級:_______________ 學號:_______________ 姓名:_______________

一、 寫出程式執行結果

1. _________________

int total = 0;

for(int j = 2; j < 6; j++){

total += j;

}

System.out.print(total);

2. _________________

for(int i = 2; i <= 8; i++){

System.out.print(i);

}

3. _________________

int a1 = 17;

4. _________________

int b1 = 5;

二、 請完成空格中的內容

5. 請完成空格使下列程式可列出 50 ~ 150 中(包含50與150),所有 11

5. 請完成空格使下列程式可列出 50 ~ 150 中(包含50與150),所有 11