Available online at www.sciencedirect.com
ScienceDirect Procedia - Social and Behavioral Sciences 116 (2014) 5188 – 5193
5th World Conference on Educational Sciences - WCES 2013
New Teaching Model for Java Programming Subjects Roman Horváth a, Stanislav Javorský b a b
Trnava University in Trnava, Faculty of Education, Priemyselná 4, Trnava 918 43, Slovakia Trnava University in Trnava, Faculty of Education, Priemyselná 4, Trnava 918 43, Slovakia
Abstract Proposed paper reports a project of dissertation thesis realized at Faculty of Education of Trnava University in Trnava (Slovak Republic). Research project of dissertation thesis is oriented towards a problem of didactics of education of programming at university, concretely by application of new teaching procedures in scope of introductory courses of programming in study field Teaching of Academic Subjects of programme combinations including Computer Science as one of subject. It concerns with application of new-developed class groups for Java, which is a part of micro-environment implementation, applying inter alia principles of Turtle graphics, well-known from programming language Logo. Problem of programming is for most of admitted students unknown at all. That causes their disorientation and involves teaching of essential fundaments required. That is a purpose of new procedure formation in scope of teaching of introductory courses of programming. Class groups of graphical robot aim to joint future-teacher of Computer Science preparation for programming by usage of graphical Logo principles with teaching of Java programming together. In research Design-Based Research as qualitative research method is used. In paper we describe prime phase of dissertation project (phase of analysis) and interpret findings and recommendations for following project phases, aimed to propose an innovative method applied within introductory courses of programming, to develop adequate device for its realization and to reflect their relevance. Outcome thesis will partially support Education Sciences development. © 2013 2013 The The Authors. Authors Published by Elsevier Ltd. Ltd. All rights reserved Selection and peer peer-review review under under the responsibility of Prof. Dr. Servet Bayram Selection and/or responsibility of Academic World Education and Research Center. Keywords: graphical robot, motivation, teaching change, introductory programming;
1. Introduction The research problem is connected to dissertation thesis which is focused on the introductory programming courses in the university environment. The research is realized with contribution of students studying in the field of study “teaching academic subjects” (with informatics as one of the two subjects combined) and it is in tight touch with the long-term aims of our workplace one of whose is the research of the quality of education. Informatics and informatics education are the subjects taught at primary and secondary grades of education in Slovakia. Programming is a part of the curriculum for those subjects, as well. The reason of this (or one of the reasons) is that the programming is creative and developing activity. Students (pupils) must divide the problem to smaller parts, solve the partial problems and then put them together into final solution. Programming is also about the “seeking for solutions.” Pupils may compare formal way of expressing the problem with the way of expressing it in native language. Learning programming may also result (as we hope) into deeper insight and deeper understanding of how technology around us works. We think there are good objective reasons for having the programming in the curriculum, but the area of “how to teach” is still open. Corresponding Author: Roman Horvath Tel: 7665728990 E-mail:
[email protected]
1877-0428 © 2013 The Authors. Published by Elsevier Ltd.
Selection and/or peer-review under responsibility of Academic World Education and Research Center. doi:10.1016/j.sbspro.2014.01.1098
Roman Horváth and Stanislav Javorský / Procedia - Social and Behavioral Sciences 116 (2014) 5188 – 5193
5189
The whole chain begins at tertiary grade of education, where we educate the future teachers. The basic requirement for teachers’ education applicants in Slovakia is to have a school leaving examination equivalent to “A” Levels finished. That results in that the Computer Science students at Faculties of Education (future informatics’ teachers) might not be properly prepared for further computer science education (with programming included)… The current situation is that we accept students with only small or no programming experience. They are supposed to learn everything from the beginning and that means they must take more time to study. The time offered by courses of programming is insufficient. We can only search and offer a better way of teaching programming for the beginners whose are going to teach the same (or similar) issue in the future. That means continuously seek new solutions and that is what we do building on experience from similar workplaces in Slovakia and the world. One of the first inspiration sources was the educational programming language Imagine Logo [16] developed at Department of Informatics Education, Faculty of Mathematics Physics and Informatics, Comenius University in Bratislava. [6] This language is (like many others) based on ideas of Papert’s Logo. [25], [29], [30], [37] Another significant sources of information (and inspiration) were analysis of CS courses’ syllabi at foreign world’s universities [2], [3], [4], [5], [10], [17], [22], [27], [28], [31], [34], [35], [36], [38], [41] and studying other sources [7], [8], [9], [11], [12], [18], [19] [20] [21], [23], [24], [32], [33], [39], [40]. Results of analysis are published in project to the dissertation thesis [14]. 2. Short Description of the Problem Mentioned above, we are trying to find, apply and validate new ways of teaching programming for future teachers; most of whose did not have any experience with programming before (reflected as current situation). They have significant problems to navigate through this for them newly open area. We are also responsible for education of new generation of informatics teachers. And that is why we seek for better ways of teaching programming. We describe the research problem as: designing, implementing and verification the contents, syllabus and methodology for teaching an introductory programming course. The research area of the project is: introductory programming in the first year of college. Main aim of the research is to design, implement and validate the concept of teaching introductory programming course that is taught in the first year of undergraduate study in the field of “teaching academic subjects” (namely programs for future informatics and informatics education teachers). This course is intended to introduce students into programming area, provide them basic knowledge about programming and algorithms, and finally teach them how to create basic algorithms. The main research questions are: How to proceed in setting and achieving the objectives of teaching introductory programming course? How to set output requirements for students of introductory programming course? How to evaluate success of introductory programming course? (There are also more sub-questions to solve included…) We prefer in this project qualitative research methodology, namely: design-based research. 3. Research Realisation Let us summarize results of analysis of interviews with students. These interviews provided starting points for several changes. Standard student of the samples (SS) in these courses meets the programming for the first time. Discussions touched basic problems from the student perspective and possible remedies. We came to a consensus that the key points of problems mentioned were: • Lack of time – two semesters of introductory courses, two hours of lectures and two hours of exercise per week, no mandatory homework… Students stated that they were in time pressure. Also, we think that this was for the curriculum too little. • The gap between teacher’s explanation and student’s understanding (and/or interpretation) – experienced students said that the explanation was simple enough. In contrast to that, the SS said that the terminology was too professional. Experienced students do not think that it was possible to explain the problem even easier (supposedly “there is no easier way”), but we have had to consider the opposite opinion and try to find the understandable way of explanation for the major part of the classroom.
5190
Roman Horváth and Stanislav Javorský / Procedia - Social and Behavioral Sciences 116 (2014) 5188 – 5193
• Motivation – this problem is partially connected to the way of teaching. Former programming introductory courses resembled math, algebra, or similar courses. The scheme of practical examples was following: getting the data, data processing, and outputting the results… mostly in numeric form (Figure 1.) This was not very motivating. Except that, there is another point of the motivation problem that we must complain to… Very often, students come to “study the informatics” (we intentionally do not say “computer science”) having very distorted concepts about what the study will be about, and what it includes exactly (the programming was surprising for them)… This is another (not less important) point that shaped their motivation. • The team – team building is crucial to the advancement of all members of the “team” (classroom). The best is if the class (or group) contains one or more “workhorses”, willing to help other students in their initial efforts. This is something that cannot be forced, nor guaranteed. However, students agreed that such a person can benefit the others significantly (and improve itself through explaining problems to the others). int number = (int)readLong("Enter integer: "); int digits = 0; do { ++digits; number /= 10; } while (number != 0); System.out.println("Number of digits: " + digits);
Enter integer: 1234 Number of digits: 4
Figure 1. Example of old way of teaching (the source code left; and the result right)
In addition, during other interviews we met more ideas that we present consequently (they were got from other interviews made with students studying the third year of study). We discussed miscellaneous factors (e.g. problems, obstacles, restrictions, etc.) they had encountered on lessons of programming in the first (and/or further) year of study. Students often said that the dominant factor was a “rush of information.” They were given too much information at once, and failed to process them sufficiently, rapidly, and efficiently… They had been overloaded what led to subsequent stagnation or decline. That was consistent with symptoms described in the literature as “cognitive overload.” [26] Another factor was considerable diversity of programming environments and languages. Students expressed themselves that: “it would be better to deal with (over the years of study) only one language in more detail than several languages flat.” Basically, they studied a different language and programming environment in each year of study. They were forced to start again over and over dealing with significant problems with adaptation (“refocusing”). 4. Research Results Considering the findings, changes have been performed. The first change was to align programming languages and environments. New programming language (Java) and programming environment (BlueJ [1]) were applied. Other changes were related to the teaching methods (adaptation of teacher’s explanation, the change of concept— application of “graphic” method of teaching…), time allocation, and so on. Other changes were made within several last years (2009 – 2012) gradually. They were differing in nature and scope. From theoretical viewpoint there were changes in sequence of themes (it is known that the sequence of themes matters); the exclusion of some topics of teaching; change of the way of teaching themes kept. The change of the way of teaching has been made also from practical viewpoint (described later). Changing the teaching took place in several different ways. At first, it was influenced by change of the order of topics considerably (students had the first touch with different knowledge in different order). This was a necessary change. In close connection with that, the teacher looked for a suitable way how to adopt the way of expressing itself during explanation,
Roman Horváth and Stanislav Javorský / Procedia - Social and Behavioral Sciences 116 (2014) 5188 – 5193
5191
because most of students (as we mentioned) were in a position of beginners. In opposite to that, the teacher tried to keep the professional level of the explanation. Finding such compromises requires longer collecting of experience. Practical examples used during lectures and exercises have been transformed markedly, as well. It was mainly connected to the change of way of teaching, i.e. transition to teaching through a graphical robot (Figure 2.) Some kinds of examples were clearly unsuitable for the use in the classroom by teaching using robot, but finding equivalents for algorithmic problems that we used before and translate them into a graphical form for teaching introductory programming using robot, takes as much time (and/or intellectual energy) that everything has not been transformed immediately. Several examples must be kept provisionally in the older (verified) form. Transformation from the computationally/algebraically (“mathematically”) based jobs to the visually/graphically (“geometrically”) based jobs is time-consuming task, which also requires a long-term collecting of experience and searching the information and inspiration in a broader context. However, our experience shows that the application of these changes in the introductory programming courses makes sense. circle(180); colour(pink); do { randomLocation(); fillCircle(3); } while (distanceFrom(0, 0) >= 180); colour(grey); while (distanceFrom(0, 0) < 180) { randomDirection(); forward(15); } Figure 2. Example of new way of teaching (the source code left; and the result right)
The method of teaching introductory programming where the results are not given numerically but visually, gives to the students a higher level of motivation. This was confirmed by random interviews with students. Ultimately, students have to deal with curriculum discussed, as well as their peers, whose did not learn the introductory programming in this way. But fall into the environment of a formal expressing and strict syntax is milder, when programming is though (at least in the very beginning) by use of graphical robot, where student can directly see the graphical results of his effort… Other changes are related to time range of teaching introductory programming. By opening the propaedeutic of programming course the weekly time allocation of introductory programming increases for two hours. Also the homework was declared mandatory. This encourages students to work more at home. 5. Conclusion The new model of introductory programming course teaching was designed before the start of the academic year 2011/2012. After first run, there were several changes made before the start of the academic year 2012/2013. Currently, the project is in final phase of the implementation and verification the new model. In the designed model, following changes were addressed as solutions for issues identified in the first introductory phase of the project:
5192
Roman Horváth and Stanislav Javorský / Procedia - Social and Behavioral Sciences 116 (2014) 5188 – 5193
• a change in the method of teaching, which included: simplification of the teacher’s interpretation, better visualization of the curriculum, giving more scope for the problem analysis presented to the class, • the curriculum revision (reduction and transformation of some areas), • development of the group of Java classes called Graphical Robot (described in [13] and [15]), • creation of electronic learning materials for the introductory programming course, • giving more emphasis on the homework, providing several programs for self-analysis and modification, • compulsory introduction quick quizzes at the start of (almost each) lesson, • constantly encouraging students to work together in learning programming. After finishing this phase, the project will still continue. The plan is to gradually prepare and then transform the introductory programming course to Object-First teaching. References [1] BlueJ – The interactive Java environment. URL: http://www.bluej.org/. Accessed: 16. March 2010. [2] Cooper, S.: CS106A Syllabus. Stanford University. URL: http://www.stanford.edu/class/cs106a/handouts/02-syllabus.pdf. Accessed: 11. November 2010. [3] CS106A Assignments. Stanford University. URL: http://www.stanford.edu/class/cs106a/links.html. Accessed: 11. November 2010. [4] CS106A Programming Methodology. Stanford University. URL: http://www.stanford.edu/class/cs106a/. Accessed: 11. November 2010. [5] CS1110. Lecture/lab summary. Cornell University. URL: http://www.cs.cornell.edu/Courses/CS1110/2010fa/handouts/courseOutline.html. Accessed: 11. November 2010. [6] Department of Informatics Education, FMPI, CU in Bratislava. URL: http://edi.fmph.uniba.sk/index.php/aktivity?lang=eng. Last Accessed: 30. November 2012. [7] Gries, D.: Teaching Programming (not programs). In International Conference on Informatics in Secondary Schools: Evolution and Perspectives. 2010. Prezentácia dostupná na: http://www.issep2010.org/slides/gries.pdf. Accessed: 28. February 2010. [8] Gries, D. – Lee, L.: CS 1110 Introduction to Computing using Java. Cornell University. URL: http://www.cs.cornell.edu/Courses/CS1110/2010fa/index.html. Accessed: 11. November 2010. [9] Guzdial, M.: How we teach Introductory Computer Science is wrong. In Blog at Communications of the ACM. Trusted insights for Computing’s Leading Professionals. 2009. URL: http://cacm.acm.org/blogs/blog-cacm/45725. Accessed: 28. February 2010. [10] Harvey, B.: CS 61A: Structure and Interpretation of Computer Programs – General Course Information. University of California, Berkley. URL: http://wla.berkeley.edu/~cs61a/fa10/0.pdf. Accessed: 11. November 2010. [11] Hoffman D. – Walsh P.: Teaching Programming With Minimal Examples. In Western Canadian Conference on Computing Education. Malaspina University College : Nanaimo, BC, 1997. URL: http://www.cs.ubc.ca/wccce/program97/walsh/walsh.html. Accessed: 20. March 2010. [12] Hong, J.: The Use of Java as an Introductory Programming Language. In Crossroads. The ACM Student Magazine. Georgia institute of Technology : 1998. URL: http://www.acm.org/crossroads/xrds4-4/introjava.html. Accessed: 28. February 2010. [13] Horváth, R.: Dokumentácia skupiny tried grafického robota pre Javu. [online]. Trnava : PdF TU, 2012. [20,55 AH]. – ISBN 978-80-8082537-9. URL: http://cec.truni.sk/horvath/Robot/. LastAccessed: 30. November 2012. [14] Horváth, R.: Hľadanie nových postupov vo výučbe informatiky na VŠ. Písomná práca k dizertačnej skúške. Školiteľ: doc. RNDr. Gabriela Andrejková, CSc. Bratislava : KZVI, FMFI, UK, 2011. [15] Horváth, R.: Teaching one Language in More Depth is better than Many Languages Superficially. In ICETA 2011. Budapest, Hungary : Óbuda University, 2011. pp.71-74. ISBN 978-1-4577-0050-7. [16] Imagine Logo. URL: http://imagine.input.sk/. Last Accessed: 30. November 2012. [17] Introduction to Programming in Java – Standard Libraries. Princeton University. URL: http://www.cs.princeton.edu/introcs/stdlib/. Accessed: 11. November 2010. [18] Kalaš, I.: Čo ponúkajú informačné a komunikačné technológie iným predmetom (1. časť). In Zborník konferencie Infovek 2001. Bratislava, 2001. s. 71 – 82. ISBN 80-7098-265-5. http://www.infovek.sk/archivwebu/konferencia/2000/prispevky/ikt.html. [19] Kalaš, I.: Čo ponúkajú informačné a komunikačné technológie iným predmetom (2. časť). In Zborník seminára Poškole 2001. PF UK : Praha, 2001. s. 23 – 28. ISBN 80-01-02364-8. [20] Kalaš, I.: Čo ponúkajú informačné a komunikačné technológie iným predmetom (3. časť). Informatika a informatizácia. In Infovek 2001. Zborník príspevkov 2. celoštátnej konferencie. Stará Turá, 2001. http://www.infovek.sk/archivwebu/konferencia/2001/zbornik/kalas.html. [21] Kalaš, I.: Pedagogický výskum v informatike a informatizácii (2. časť). In Zborník príspevkov konferencie DidInfo 2009. Banská Bystrica : Univerzita Mateja Bela, 2009. ISBN 978-80-8083-720-4. [22] Katz, R. H. – Patterson, D. A.: CS 61C: Great Ideas in Computer Architecture (Machine Structures). University of California, Berkley. URL: http://wla.berkeley.edu/~cs61c/. Accessed: 11. November 2010. [23] Kölling, M.: Quality-oriented teaching of programming. 2009. URL: http://blogs.kent.ac.uk/mik/2009/09/04/quality-oriented-teaching-ofprogramming/. Accessed: 20. March 2010.
Roman Horváth and Stanislav Javorský / Procedia - Social and Behavioral Sciences 116 (2014) 5188 – 5193
5193
[24] Kubincová, Z.: Prvácke programovanie v novom šate? URL: http://zuz.blog.matfyz.sk/p12507-prvacke-programovanie-v-novom-sate. Accessed: 29. February 2010. [25] LCSI. URL: http://www.microworlds.com/. Last Accessed: 30. November 2012. [26] Lewis, D.: Cognitive Load Theory – a brief introduction to Cognitive load theory. 7’th revision. 2008. URL: http://knol.google.com/k/cognitive-load-theory#. Accessed: 28. February 2010. [27] Malan, D. J.: Introduction to Computer Science I / OpenCourseWare. Harvard College. URL: http://cs50.tv/2009/fall/. Accessed: 11. November 2010. [28] Mazák, J.: Programovanie 3. FMFI UK. http://www.dcs.fmph.uniba.sk/~mazak/programovanie3/. Accessed: 1. April 2010. [29] Papert, S.: Constructionism vs. Instructionism. 1984. URL: http://www.papert.org/articles/const_inst/, Accessed 10. April 2010. [30] Papert, S.: Mindstorms: children, computers and powerful ideas. Basic Books, 1980. ISBN 0-465-04627-4. [31] Porubän, J. – Václavík, P.: Technológie Java. TU FEI Košice, http://www.kiv.zcu.cz/~ledvina/vyuka/poruban/index.html. Accessed: 1. April 2010. [32] Robertson, J.: Introductory Computer Science Lessons – Take Heart! In In Blog at Communications of the ACM. Trusted insights for Computing’s Leading Professionals. 2009. URL: http://cacm.acm.org/blogs/blog-cacm/46781. Accessed: 28. February 2010. [33] Pratt, D. Ch.: The Construction of Meanings in and for a Stochastic Domain of Abstraction. University of London, Institute of Education, 1998. URL: http://people.ioe.ac.uk/dave_pratt/Dave_Pratt/Doctoral_thesis_files/thesis.pdf, Accessed 15. March 2011. [34] Sedgewick, B.: Computer Science 126 – General Computer Science. Princeton University. URL: http://www.cs.princeton.edu/courses/archive/fall10/cos126/info.html. Accessed: 11. November 2010. [35] Sedgewick, R. – Wayne, K.: Computer Science 126 – General Computer Science. Princeton University. URL: http://www.cs.princeton.edu/courses/archive/fall10/cos126/lectures.php. Accessed: 11. November 2010. [36] Sedgewick, R. – Wayne, K.: Introduction to Programming in Java. Princeton University. URL: http://www.cs.princeton.edu/introcs/home/. Accessed: 11. November 2010. [37] Seymour Papert. URL: http://www.papert.org/. Last Accessed: 30. November 2012. [38] Shewchuk, J.: CS 61B: Data Structures. University of California, Berkley. URL: http://www.cs.berkeley.edu/~jrs/61b/. Accessed: 11. November 2010. [39] Spolsky, J.: The Perils of JavaSchools. 2005. URL: http://joelonsoftware.com/articles/ThePerilsofJavaSchools.html. Accessed: 28. February 2010. [40] Spolsky, J. and others: How best to teach programming to non-programmers? 2004. URL: http://discuss.fogcreek.com/newyork/default.asp?cmd=show&ixPost=1671. Accessed: 20. March 2010. [41] UC Berkeley Webcasts, Video and Podcasts: Computer Science 61A, 001 – The Structure and Interpretation of Computer Programs. University of California, Berkley. URL: http://webcast.berkeley.edu/course_details_new.php?seriesid=2010-D-26275&semesterid=2010-D. Accessed: 11. November 2010.