Thursday, March 25, 2021

Teaching Coding in K-12: A Review

Experiential Learning

As this class draws to an end, there are many elements of it that I am still reflecting on and absorbing.   In particular, I've been thinking about my own experience and how helpful I found experiential learning to be.  Because of this, I have to consider how learning to code is an experiential form of learning for students.  According to Boakes (2019), "experiential learning, like a problem-based learning approach, allows students to learn science through authentic, real-life situations...Benefits of such an approach have been seen in research with learners showing more motivation, interest and gains..." (p. 245).

Motivation has been an interest of mine as we explored the different modules in this class.  I understand what motivates me as a learner, but was never confident in motivating students.  Learning about (and experiencing) experiential and hands-on learning has given me something to explore to encourage motivated learners.

Benefits of Digital Literacy and Different Processes

 One of my biggest takeaways this semester has been on the importance and versatility of teaching students digital literacy, computational thinking, and the design process.  As with an "literacy" (including information literacy, a favorite of mine), the importance of this skill is that it teaches students to think critically and explore many different avenues to find a solution.  

One study, which considers the teaching of young students to use computational thinking to be a pursuit of "21st century skills" says the following:

Designing and making digital games, this prior research suggests, can provide an ideal framework for operationalizing 21st century learning: creating digital artifacts entails technical, computational and aesthetic forms of activity whose success depends on bridging between arts and sciences -- an intersection increasingly characteristic of the contemporary job market and effective participation in social life. (Jenson & Droumeva, 2019, p. 111).
Not surprisingly, given the importance of critical thinking, studies like this show that using computational thinking can not only help students learn useful and necessary skills for future job opportunities, but also necessary skills for learning to socialize in a digital age.

Tools for Getting Started

Learning to teach students about coding can be as easy or difficult as a teacher wants to make it.  Depending on the age and skill level of both the students and the teacher, there are tools available.  There is no need to re-create the wheel!  Some of my favorite tools have been the different types of block coding we tried out.

Some tools or packages, like any number of robot packages, can even help students learn about how coding is scaffolded with many other fields, like different types of engineering and mechanics.  Especially once the students are in the work force, or even in college for some programs, they may be expected to write codes or programs and work in a multi-disciplinary team.  One interesting program I read about recently had computer science students working with students in fields we might consider unrelated, such as marketing management.  The assessment of the program suggested higher efficiency, more creativity, and even that students were invested in learning from each other (Tan & Vicente, 2019).  With tools already available, all that's needed is students with different backgrounds and interests to learn from each other!
 
"Robots..." by jeffedoe is licensed under CC BY-ND 2.0
 
Some other resources I have been exploring include eBooks available through my library, such as Python Projects for Kids.  Not only do teachers have tools at their fingertips, there are projects already available to get the ball rolling.

In the Future

With the fast pace of changes in technology, it's hard to imagine what the future will be like.  Altiok and Yukselturk (2018) suggest that "it is expected that today's children have the knowledge and skills about [modern and future] technologies and also use them effectively in their life."  It's not enough that students will be expected to use technologies that might not even exist yet "effectively," but there are also expectations that students are versatile and adaptable to these technologies and will have the ability to work with them.  It's a daunting task to plan to teach technology that doesn't exist yet!

In my own future, I plan on incorporating programs like Scratch for short student programs.  I am excited to try out a number of events, from helping students make changes to an initial program to watching them learn to build their own programs using block coding.

In my own work, with college students, I have already begun to incorporate elements of design thinking to help them understand the dynamic process of research.  We use engineering examples, and have even watched the taco party video (below) from our class.  

The message I give to kids -- including college "kids" -- is that coding, like research, is dynamic.  There isn't always a right or wrong answer which means you can think about it as creatively as you would like and your first answer doesn't have to be your final answer.

References

Altiok, S., & Yukselturk, E. (2018). Pre-service information technologies teachers' views on computer programming tools for K-12 level. International Journal of COmputer Science Education in Schools, 2(3). https://doi.org/10.21585/ijcses.v2i3.28

Boakes, N. (2019) Engaging diverse youth in experiential STEM learning: A university and high school district partnership.  International Online Journal of Education and Teaching, 6(2), 245-258.

Jenson, J., & Droumeva, M. (2016). Exploring media literacy and computational thinking: A game maker curriculum study. Electronic Journal of e-Learning, 14(2), 111-121.

Tan, T. A. G., & Vicente, A. J. (2019). An innovative experiential and collaborative learning approach to an undergraduate marketing management course: A case of the Philippines. The International Journal of Management Education, 17(3). https://doi.org/10.1016/j.ijme.2013.100309


Codio Review

 This week, we worked with a trial of Codio to create a course and assignment.

On reflection, I did not find Codio to be intuitive as a teacher, even after watching a few videos and creating an assignment of my own.  However, I liked the format for creating code with the lines already numbered and the colored sets to help complete the syntax. 

While I think with further exploration Codio could be a great tool, I worried that it would be intimidating to a "beginner" student.  As such, I designed my assignment as an editing assignment rather than full creation.  However, I could easily see more advanced high school or college students being comfortable with assignments in Codio.  At this time, I would not recommend it for any of my programs but would keep it in mind for future opportunities.

Wednesday, March 17, 2021

Motivated HTML Learning with Young Students

Maybe it's a little cheesy, or maybe it's a product of my age, but one of the things I thought while we studied teaching HTML this last week is what would motivate students to learn it?  Back when I was younger, we picked up little bits and pieces of HTML to do things like make our MySpace pages a particular color, or to do interesting things to blog posts.  What drives students to learn HTML now?  So many sites allow you to use HTML but also have tools ready so you don't have to.  My curiosity on this topic drove me back to a time where students were learning HTML before MySpace, among other times and projects.

This interest in the motivation of students learning HTML brought me back to 1995 where Nancy Barkhouse and her students embarked on a journey to learn about websites and how to make them.  Back then, internet sites were still pretty new for most students and teachers.  Barkhouse (1997) describes the many considerations she had to make at a time that teaching young students to write HTML code hadn't been done -- at least not to the extent that she could easily find materials and information on it.  The class was self-motivated to surf the web to find different sites they liked while they planned a site for their school. Although the teacher did most of the HTML coding (since there weren't kid-friendly HTML editors readily available), the students had a say and did some of the work also, not just the designing.  Barkhouse's experience was a really heartwarming project with her students that rewarded the students for their efforts; at the end of their design and coding, once their page was hosted and public, people sent them emails from around the world to say they had seen their site.

Another school, still pretty early in the internet game, tried something different.  They made an interactive intranet so that student images and reports could be linked with what they were learning in class (Pitt, 2000).  This project was meant to connect students to the topics they learned about in history, but it led the teacher in an unexpected direction given the enthusiasm of his students.  He made plans to change his instruction in the future in order to develop his students' ICT (information and communication technology) skills by having the students learn to put their own work into the intranet and design the styles, links, and connections on the intranet.  It was thought that this project could be expanded even further by moving from intranet to internet in order to connect learning in different subjects with students around the world.

Although the motivation of students to learn HTML is very interesting to me, it's also important to know how to effectively teach them.  Organization is a very important aspect of HTML and not all students understand or organize things the same way.  According to Merdivan and Ozdener (2011), there are several common metaphors used to teach students how to organize their HTML writing including: book, map, village, house, classroom, and travel.  Some of these, such as the book metaphor, may be too linear for students to fully understand the HTML structure, whereas others may facilitate better learning (and others may be too non-linear).  At the end of the study, Merdivan and Ozdener conclude that using a city metaphor to help students learn about the structure of HTML was the best for student success.   This metaphor was structured and something that students were probably already familiar with, and it also led them to think about structuring their HTML and sites without becoming too linear or disorganized.  

Of course, motivation and organization aren't the only parts of teaching (or learning) HTML.  Luckily, in this day and age, there are plenty of resources available to get ideas, or tips and help, for both the student and the teacher!

Barkhouse (1997) leaves us with this thought about teaching students to write HTML:

Computer technology has the power to motivate children in unique ways.  Their attention is actively engaged for longer periods of time and often at a higher level than many other activities in the classroom.  This useful tool and motivator is solidly integrated into my classroom.  Computers will not replace teachers, but they certainly will continue to change the ways many of us teach and learn.

 References

 Barkhouse, N. (1997). Grasping the thread: Web page development in the elementary classroom. Emergency Librarian, 24(3).

 Merdivan, E., & Ozdener, N. (2011). Effects of different metaphor usage on hypertext learning. Behavior & Information Technology, 30(2).

Pitt, J. (2000). Computing on a shoestring: Extending pupils' historical vision with limited resources. Teaching History, 101.

 

Saturday, March 13, 2021

Block-based vs. Text-based Coding in K-12

 

This last week, I have been participating in the Electronic Resources & Librarians conference.  Not surprisingly, several of the sessions did have me thinking of this program and the cross-over between the fields of librarianship, computer engineering, and education!

Hopefully, the last few weeks of blog posts have been convincing about the overall benefits of teaching students to code and use computational thinking skills.  This week, my focus is on choosing the right kind of coding (block-based or text-based) for students, and the pros and cons of each.  The fact of the matter is that this is not a one-size-fits-all type of lesson.

Pros and Cons of Block-based Coding

One of the pros to teaching block-based coding is that it is very visual and easy for students to grasp.  In my research, I encountered a particular population that could benefit from learning block-based coding: individuals with ASD or other developmental disabilities.  Although the sample size of the study performed by Knight, Wright, Wilson and Hooper (2019) was small, including only three individuals, they selected these individuals based on very strict criteria.  These students were diagnosed with ASD, non-verbal communication, and challenging behavior including violence and aggression.  Most importantly, though, they were identified as already having an interest in robots and technology.  The findings of this study suggested that while these students may in most cases become frustrated when encountering tasks with errors, they were engaged and more inclined to try with block-based coding since it was more motivating for them.

The pros of using block-based coding are not limited to being engaging to students with ASD.  Block-based coding can also be used to introduce students to using computational thinking skills without introducing the complication of learning a text-based language before they are ready.  One study used pre-tests and post-tests to observe the positive perceptions and actual benefits of teaching visual programming (Saez-Lopez, Roman-Gonzalez & Vasquez-Cano, 2016).  The benefits included student motivation, enthusiasm and commitment, as well as improved learning of programming concepts, logic and other computational practices.

The cons of block-based coding are pretty simple – it can be limited by available block commands and while it teaches students the foundations of coding, it doesn’t teach them how to actually write the code itself, in whichever chosen language they choose.  In that way, it is twice-limited.   Some studies show that it may also introduce and reinforce bad coding habits (Price & Price-Mohr, 2018).

Pros and Cons of Text-based Coding

One of the pros of text-based coding is that it can still be a visual or graphical programming environment (Price & Price-Mohr, 2018).  It also helps students learn the syntax and structure of their programming language, in this case, Java.  While it may also help teach students the foundations of coding, it also introduces many different elements at the same time.  However, it can also be taught “unplugged” which may help students focus on the foundations and syntax without taking on the entirety of coding all at once.

One of the cons of text-based coding, also approached by Price and Price-Mohr (2018) is that it is very structured and students may have a harder time implementing their codes.

"The Questioning Roboto" by Matt Hutchinson is licensed under CC BY 2.0

 

How to Approach Skill Levels

Based on my research, it makes sense to me that students could potentially start with block-based coding and move to text-based coding in small increments, perhaps starting with unplugged assignments and moving to more complicated assignments as their confidence builds.  This would allow them to experience the “fun” of coding with block-based coding to build their enthusiasm and motivation, and then lead them to the skills that they are more likely to need in the workforce.  There are studies, contradictory to what Price and Price-Mohr suggested, that show students who learn block-based programming first do not experience differences in achievement when learning Java compared to students who did not learn block-based programming first (Weintrop & Wilensky, 2019).  In fact, there are programs mentioned by Weintrop and Wilensky, like Pencil Code, that allow students to switch back and forth between block-based coding and text-based coding.  This could be extremely valuable for students who are building confidence with text-based coding as they transition from block-based.

In the end, my research did lead me to the conclusion that there is no right answer!  In my personal opinion, however, I think starting with block-based coding could be very useful for bringing in populations who might have an interest but are discouraged by errors.  Then, it is easy enough for a teacher to help students transition at a pace they are comfortable with.

 References

Knight, V. F., Wright, J., Wilson, K., & Hooper, A. (2019). Teaching digital, block-based coding of robots to high school students with autism spectrum disorder and challenging behavior. Journal of Autism & Developmental Disorders, 49(8). https://doi.org/10.1007/s10803-019-04033-w

Price, C. B., & Price-Mohr, R. M. (2018). An evaluation of primary school children coding using a text-based language (Java). Computers in School, 35(4), 284-301.

Saez-Lopez, J.-M., Roman-Gonzalez, M., & Vazquez-Cano, E. (2016). Visual programming languages integrated across the curriculum in elementary school: A two year case studying using “Scratch” in five schools. Computers & Education, 97, 129-141. https://doi.org/10.1016/j.compedu.2016.03.003

Weintrop, D., & Wilensky, U. (2019). Transitioning from introductory block-based and text-based environments to professional programming languages in high school computer science classrooms. Computers & Education, 142. https://doi.org/10.1016/j.compedu.2019.103646

Wednesday, March 3, 2021

Teaching and Learning with Robotics

Why Robotics?

There are multiple reasons to teach with robotics in different subjects, not just in computer or programming classes.  For one thing, learning to design, program, and use robots can give students a competitive lead in the future as robotics are becoming more commonplace in many different fields.  Perhaps more important, "...it has the power to motivate young students, either as a field of knowledge in itself to learn complex notions in an almost play-like environment, or as a tool to present technology and other subjects to those students in an attractive and motivating manner" (Amo, Fonesca & Poyatos, 2021). Amo, Fonesca, and Poyatos found that many teachers and researchers who implemented robotics in their curriculum were combining the engineering and programming aspects of it with different subjects, such as physics.  

So why robotics? Because robotics give students the opportunity to bring learning from one subject into another with hands-on experience while they learn.

What to Teach?

I may not be alone (but maybe I am!) in not knowing where to start with teaching robotics.  The fact of the matter is that it isn't a programming skill alone.  Building robots it's very hands-on and includes many different skills, programming including.  Students can also learn engineering skills, including electrical and mechanical engineering (Rihtarsic, Avsec, & Kocijancic, 2015).  While younger students, especially in elementary school, may not be ready for some of the more complex engineering skills, but they can still learn to work creatively with both the computer and physical components.  Rihtarsic, Avsec and Kocijancic do note several middle schools in their studies who had success teaching their students the different components.

There are also a ton of online resources with ideas for teaching students with robotics.  We explored some of these in class this week.  Some of the benefits of these are that students can use block coding and pre-designed activities.  Some of the activities even include tips to help them troubleshoot on their own if they get stuck.

Takeaway

My own take away from learning to code robots using a simulator this week is that it is a great way to practice using the design process.  A study by Kalothi-Hallak, Armoni and Ben-Ari (2019) discusses this in more detail using middle-school students who participated in the FIRST LEGO League competition as an example.  Not only did participating in this competition help students learn to use the engineering design process, it also showed that competitions promote teamwork.  If teaching robotics in the classroom could incorporate some low-stakes competitions, students would benefit from working together to find problems, brainstorm, research, create robots and programs, test and reassess together.  
 
And so my research has suggested that there are a multitude of reasons to teach with robotics in K-12, and that it engages many skills and learning opportunities beyond computer programming alone.  It gives teachers the opportunity to help students tie subjects and ideas together and it gives students the opportunity to work hands-on with creative and complex projects as they develop the needed skills. 

 References

Amo, D., Fonesca, D., & Poyatos, C. (2021). Systematic review on which analytics and learning methodologies are applied in primary and secondary education in the learning of robotics sensors. Sensors, 21(153). https://doi.org/10.3390/s21010153

Kalothi-Hallak, F., Armoni, M., Ben-Ari, M. (2019). The effect of robotics activities on learning the engineering design process.  Information Education, 18(1), 105-129. https://doi.org/10.15388/infedu.2019.05

Rihtarsic, D., Avsec, S., & Kocijancic, S. (2015). Experiential learning of electronics subject matter in middle school robotics courses. International Journal of Technology & Design Eductation, (26), 205-224. https://doi.org/10.1007/s10798-015-9310-7