Coding Education Based on Experiential Learning (ExL) and Coaching Model for Undergraduate Students
Natakorn Pramayan1*
1 Computer Education Program, Faculty of Education, Khon Kaen Univesity, Thailand
*Corresponding Author: [email protected]
Accepted: 15 May 2021 | Published: 1 June 2021
_________________________________________________________________________________________
Abstract: This paper is prepared for to find a programming teaching model that is suitable for students with no prior programming experience. By teaching Python programming using experiential learning (ExL) management theory and Coaching. For undergraduate students in the first year during the fall semester of 2018-2020 academic years. The research was designed in accordance with the exploratory sequential design from mixed research designs.
Information obtained from observations, interviews, job submissions, projects submitted, programming capabilities. Application And program explanation. The results of the research showed that in the academic year 2018, lecture teaching in class gives the problem to programming homework and submit for examination in the next week. Most students copy the code from each other and send it to make it through, without the ability to apply a set of programming instructions. Academic year 2019, lecture instruction with classroom programming. The instructor assigns the students to try writing a program to solve problems that are consistent with the subject matter learned. Some students still copied the code from others and made little changes. Received knowledge but still not getting the understanding as they should Affect the application in programming. Academic Year 2020 provides lecture- based instruction with a program sample that is consistent with the subject matter, as well as an explanation and allows students to try to write a sample program (copy not allowed) to provide students with a programming experience that is consistent with the content being studied. The instructor then assigns students to try writing a program to solve problems that are consistent with the subject matter and are similar to the examples given. So that students can apply them in programming. If students still do not understand, there will be mentors available through social media such as Discord, Facebook.
Keywords: Coding Education, programming, python, Experiential learning (ExL), Coaching _________________________________________________________________________
1. Introduction
Instructional programming class for first year undergraduate students in Computer Education, Faculty of Education, Khon Kaen University, northeast of Thailand field that Which has no programming background before and has never been studying any subject such as Operating System, Computer Architecture, Data structure, System Analysis and Design, Databased etc.
The instructor must strive to enter specific areas of the above multidisciplinary knowledge, which must be incorporated into actual programming to the students. In addition, students will need to try to gain additional knowledge from those gained. Along with the knowledge of programming from high school graduates. However, preferences and intentions in each field of study are not the same, resulting in difficulty in managing programming class.
The second semester of the first-year undergraduate students receive a clean code programming in Python, which helps train students to master programming discipline. Because Python uses indentation instead of Block Code ({}).
In the previous two years, the management of Python programming was not as successful. This is due to the use of Lecture Method teaching and Assignment training there are not many problems and programming activities to solve problems in the classroom that are consistent with the content taught. The learners do not understand and have a bad attitude to programming, Affect learning in programming class.
Management of Python programming with an emphasis on Experiential Learning (ExL). By providing problems that are consistent with the content taught Helping learners achieve their goal-based learning by giving learners a hands-on experience. Necessary to learn programming Students observe different programming methods and ponder them together with their classmates until they can create ideas or programming methods in order to achieve results or programming for Good, concise, not redundant, easy to understand, Clean Code and able to apply the acquired knowledge to programming to solve new problems in the future. In addition, Coaching mentors are senior and real programmers working in the private sector to assist in programming and application advice. As a result, learners are confident and understand the subject matter until they can apply programming to solving real problems.
For the above reason the researcher aims to find a programming teaching model that is suitable for students who have no programming experience. By teaching programming using Experiential Learning (ExL) theory and having a Coaching to assist and advice for first year undergraduate students.
2. Literature Review
Experiential Learning (ExL)
Experience is the source of learning and is the cornerstone of thoughts, knowledge and actions.
Kolb (1984) presents a cycle of experiential learning. Which consists of 4 main steps:
Concreate Experience (CE), Reflective Observation (RO), Abstract Conceptualization (AC) and Active Experimentation (AE)
Definition of experiential learning means Actions that will help learners achieve their goals by giving learners the experience they need to learn on the subject they have learned before. And let the students observe Review what happened and reflect on what happened until the learner can form different ideas or assumptions. In the things that have been learned or those assumptions to continue to experiment or apply in new situations
Indicator of Experiential Learning (ExL)
1) Teachers organize a learning experience that is concrete in the subject to learn for the learners to experience by themselves.
2) Learners reflect and discuss what they have experienced or happened in the learning situation.
3) Learners create concepts, principles, assumptions based on their experience.
4) Learners have to experiment with concepts, principles, assumptions and apply new situations.
5) The instructor will follow up. And provide opportunities for students to exchange experimental results, application of knowledge to expand the scope of learning or modify ideas, principles, assumptions as appropriate.
6) Teachers have evaluation results. Using self-assessment of learning of the learners, together with the evaluation of the teachers.
Programming is the process of using computer programming languages to structure data and to define algorithms to accurately solve problems as they are designed based on principles of each language.
Skill are the ability to work accurately and demonstrate recognized expertise.
Programming skills are the ability to use computer programming language to structure data and to define algorithms to accurately solve problems as they are designed based on principles of each language, and demonstrate recognized expertise.
Experience is knowledge or skill in a particular field that is accumulated from practice and gained over a period of time. it is considered valuable in all areas of learning.
Programming Experience are knowledge or skill in a particular field of using computer programming languages to structure data and to define algorithms to accurately solve problems as they are designed based on principles of each language that is accumulated from practice and gained over a period of time
Python is a scripting language that was created by Guido van Rossum in 1990. Currently, this language is under the supervision of Python Software Foundation (PSF). It has a simple command structure, easy to understand, able to test the execution of commands and check the results immediately, and can also be applied to more complex programming in the real situation.
Software is A set of instructions that instruct a computer to perform the desired functions by converting instructions into electronic signals to control the hardware.
Experiential Teaching is an operation that will help learners achieve their goals by giving students the experience they need to learn about the subject they have learned before. And let the students observe Review what happened and take what happened to think and reflect together until the students can form ideas or assumptions. In the learned subject, those ideas or assumptions can then be tried or applied in new situations.
Coaching System is A collaborative process between teachers and learners where the teacher poses questions or assists in the answer process with the students. By trying to get learners to solve problems with their own ideas, aptitude and abilities Questioning creates a process of thinking, analyzing, identifying and finding answers. Asking is thought provoking. When asked, students will have to try to think and find solutions for themselves.
Attitude towards Programming is the opinions, beliefs and feelings of people with emotional components or the inclination to manifest themselves in the process of researching the facts It has a certain aim and uses a well-established methodology to acquire reliable knowledge.
Factors contributing to programming is included the knowledge and experience a person already has in programming. Programming aptitude. Programming inclination. Logic-math ability. Ability to search for information using the keyword in the query. Coaching.
Enthusiasm. Resources and learning resources. Learning society between teachers. Learners and coaches.
3. Methodology
Research Design Teaching model design
Academic Year 2018, lecture-based teaching, assigning problems for students to write a Python program for homework, and bring them to be examined in the next week.
Academic year 2019, lectures are taught in conjunction with classroom Python programming where the instructor assigns students to experiment with writing programs to solve problems that are relevant to the subject matter learned that need to be completed within the class.
Academic year 2020, Lecture instruction provides sample Python programs that are consistent with the subject matter, and provide students with sample programming practice. (Copy is not allowed) to provide students with a programming experience that is consistent with the content they study. The instructor will then assign students to write a program to solve problems that are consistent with the subject matter and are similar to the examples given earlier, with mentors available through various channels such as Discord, Facebook, IG, etc.
Research Group
The sample group used a Purposive sampling. The research group of the study consisted of 72 people who are first-year students in Computer Education, Faculty of Education, Khon Kaen University, Thailand. Academic year 2018-2020.
Teaching Model Application Process for Coding Education
The instructional model for coding education, which was established within the scope of the study, was designed and implemented based on Experiential learning (ExL) The application process is detailed in below.
Table 1: Practical Procedures about Implementation
Practical Procedure
Duration Teaching Model for Coding Education Descriptions
Week 1
- Learning Method - Lecturer Method - Coaching
- Instruction media
- Visual Studio code IDE - Python programming - Microsoft power point - google classroom
- Facebook Group - Discord
1. Introduction
1.1 Scope of learning and teaching schedule
1.2 Learning method 1.3 Methods for measuring and evaluating learning outcomes
1.4 Preliminary agreement 2. Download and setting 3. introduction to Python programming
Practical Procedure
Duration Teaching Model for Coding Education Descriptions
Week 2
(Week 2-6)
- Experiential learning (ExL) - Lecturer Method
- Problem Solving Method - Critical Thinking
- Think pare share - Coaching
- Instruction media - Visual Studio code IDE - Python programming - Microsoft power point - google classroom - Facebook Group - Discord
- GitHub
1. Finding Truth value
2. Expressions and Operators 3. Data collection
3.1 Access data 3.2 Update data 3.3 Add data 3.4 Delete data
Week 3
1. if statement 1.1 2 condition 1.2 if else 1.3 Nested if 2. Loop statement 2.1 for
2.2 while
Week 4
1. function 2. parameter
Week 5
1. Class and Object 2. Try - Except – Finally
Week 6
1. SQLite 1.1 Add 1.2 Update 1.3 Delete
Week 7-8
- Project-based Learning - present
- Instruction media
- Visual Studio code IDE - Python programming - SQLite
- google classrooms - GitHub
Comprehensive Examination Python programming
Figure 1: IPSC project by Python programming GUI with SQLite
The image show IPSC project by Python programming Represents program development in Python programming base on function tkinter GUI, Students explain source code of the program for Comprehensive Examination.
4. Discussion and Conclusion
Academic year 2018, lecture teaching in class gives the problem to programming homework and submit for examination in the next week. Most students copy the code from each other and send it to make it through, without the ability to apply a set of programming instructions.
Academic year 2019, lectures are taught in conjunction with classroom programming where the teacher assigns students to write programs to solve problems that are relevant to the subject.
Some students still copy code from others and make some adjustments. Gaining knowledge but not gaining as much understanding as it should affect application in programming.
Academic year 2020 uses a Python programming based on the theory of experiential learning management with mentors. For first-year undergraduate students, which is suitable for learners who have no programming experience. Teaching by giving examples of programs that are consistent with the subject matter, along with explanations and giving students a test of writing a sample program (Copy not allowed) to provide students with programming experience that is consistent with the content of the study. The instructor will then assign students to write a program to solve problems that are consistent with their subject matter and are similar to the examples given. This allows students to apply what has been applied in programming.
Based on the knowledge of Python programming by doing individual projects, Project-Based Learning with the objective of: Studying the students' ability to apply the content they learned to solve real problems, it was found that students could write programs based on their learning experience and can build on their knowledge from programming experience gained. By searching for more information in the submission that you are interested in effectively.
To develop software according to the students' interest, it was found that when students have programming experience, students will have knowledge and understanding and can apply programming knowledge to solve real problems. For example, the project Gun Shooting for IPSC shotgun competition in Thailand. Student can explain their own program and gain ability to presenting difficult things easy.
References
Bass, R. (2012, March/April). Disrupting ourselves: The problem of learning in higher education. EDUCAUSE Review, 47(2).
Elliot Soloway (1986). Learning to Program = Learning to Construct Mechanisms and Explanations. Communications of the ACM, Volume 29, No. 9, 850-858.
Giansalvatore, M. & Donatello, S. & Nazzareno, S. (2021). Diogene‑CT: tools and methodologies for teaching and learning coding. International of Educational Technology in Higher Education. Retrieved 24 March 2021from
https://doi.org/10.1186/s41239-021-00246-1.
Gokhan Guven & Nevin Kozcu Cakir (2020). Investigation of the Opinions of Teachers Who Received In-Service Training for Arduino-Assisted Robotic Coding Applications.
Educational Policy Analysis and Strategic Research. Vol.15, 1, 253-274.
Gozde Okal, Bekir Yildirim & Serkan Timur (2020). The Effect of Coding ducation on 5th, 6th and 7th Grade Students'Programming Self-Efficacy and Attitudes About
Technology. Volume 15, Issue 2 June 2020,
Gregory Samsa (2020). Using Coding Interviews as an Organizational and Evaluative Framework for a Graduate Course in Programming. Journal of Curriculum and Teaching. Vol. 9, No. 3, 107-140.
Kolb, D. A. (1984). Experiential learning: Experience as the source of learning and development. Englewood Cliffs, NJ: Prentice-Hall.
Kuanchin, C. &Alan, R. (2018), Do Pair Programming Approaches Transcend Coding?
Measuring Agile Attitudes in Diverse Information Systems.Journal of Information Systems Education, Vol. 29(2), 53-65.
Lave, J., & Wenger, E. (1991). Situated learning: Legitimate peripheral participation. New York: Cambridge University.
Linn, P. L., Howard, A., and Miller, E. (Eds). (2004). The handbook for research in
cooperative education and internships. Mahwah, NJ: Lawrence Erlbaum Associates.
Moore, D. T. (2010). Forms and issues in experiential learning. In D. M. Qualters (Ed.) New Directions for Teaching and Learning (pp. 3-13). New York City, NY: Wiley.
Philip Guo (2013). Teaching Programming the Way It Works Outside the Classroom.
Retrieved 24 March 2021from http://cacm.acm.org/blogs/blog-cacm.
Ronny, S. &Fazilat, S. &Babarbara, S. (2020). A meta-analysis of teaching and learning computer programming: Effective instructional approaches and conditions.
Computers in Human Behavior 109 (2020), 1-18.
SĂłnia Rolland Sobral (2021). Bloom's Taxonomy to Improve Teaching-Learning in Introduction to Programming. International Journal of Information and Education Technology, Vol. 11, No. 3; 148-153.