Tools for a flipped computer programming classroom

The traditional method for teaching a computer programming course is to have the instructor present language syntax and semantics in a classroom lecture and have the students work on programming exercises as homework.  In a flipped classroom, the students learn about programming language syntax and semantics at home through online lessons and courses and come to class to work on programming exercises. Students are then able to learn the computer programming language at their own speed – seeking out other sources and media types for any material that is confusing or unclear.  This provides a wonderful opportunity to individualize learning and leverage technology to improve the learning experience.

However, this does beg the question on how best to use classroom time.  Allowing students to work on programming problems at their own pace will mean that students will soon not be working on the same problems.  How does the instructor provide the best support and environment for all students? How does the instructor evaluate and assess the progress that students are making on a class exercise?  Providing a constructive place where all students can learn is a key first step.

The noise of this digital information can be overwhelming. It can create a numbness to the outside world and limit the ability to retain and reflect on essential learning. Because of this, places of learning must be places of listening that allow time and space for the speed of life to be digested in a meaningful way.

(Dillon, 2014)

In addition to providing a productive place for learning, I want my students to be able to share their solutions with other students.  I want my students to become creative communicators, as described in the ISTE Standard for Students.  This includes allowing students to select the programming tool that works best for them and then use technology to present their solution to the classroom.  Students can then explain how they solved the problem and what challenges they faced in building their solution.

My classrooms provide a computer for each student enrolled in a class.  Students have accounts on these machines that allow for customization and personalization.  Although the students cannot install any software on the machines, they are provided several alternatives environments and tools for building their programming solutions.  Students can also customize these tools to fit their needs.

An important piece to make this all come together is the classroom management software used by the instructor to manage the learning environment.  Fortunately, I have found software to help instructors with this problem – the Vision Pro class management software.  

An instructor can use the Vision Pro software to see the screens of all of the student’s computers at the same time.  The instructor can even visit one of the students machines, and provide tutoring and other assistance. The instructor can also display a student’s machine to the classroom, allowing the student to become the teacher, and instruct the class on how to solve a particular programming exercise.  This is a tremendous tool to get each and every student to participate in the learning process – similar to what happens when students use blogs to share opinions.

By creating an online place where people feel comfortable and relaxed, a place that affords communication and interaction at different levels and while using a variety of tools, both tutors and students develop a strong sense of presence that can help participants gain confidence in both their learning and teaching.

(Kop, 2010)

With Vision Pro, instructors can provide a safe, individualized place for students to build and share their programming assignments.  But there are still challenges that remain. The approach described above allows the instructor to keep the class together for small programming exercises (i.e., a few lines of code), but does not provide a solution for medium to large programming exercises.  

Fortunately, there is an approach an instructor can take to leverage the classroom management software for even medium to large class exercises.  By breaking down a larger exercise in to multiple pieces, the instructor can assign the smaller pieces to different students. If one student finishes a piece early, the instructor can have that student work on one of the other pieces.  When all of the pieces have a solution from at least one student, the instructor can have each of these students present to the class their piece of the problem.

In the end, the instructor can pull the solutions for all of the pieces together to show a complete solution to the classroom – or even better – have a student own pulling the pieces together and present to the class.  The last step is to use the Vision Pro software to work with other classrooms around the world to collaborate on solving computer programming exercises together, turning the students into global collaborators!

References


2 comments / Add your comment below

  1. I love they way you described how to take the larger projects and break them down in order to use the process that was used for the smaller projects – Great job problem solving for the many layers of need within your classroom. It is so meaningful for students to be able to work on something and then show others the process and/or end result – it seems that the Vision Pro resource is perfect for this. What a purpose tool to use within your class.

  2. Nat, I like how you identify the use of Vision Pro to support students at their own pace. Use of this system is a nice example working from a growth-mindset. Many of my students who take programming courses at the college level express a need for more intentional and learner-focused pacing in the class. I appreciate how you identify the need for pacing the lesson. This would allow for regular checks for understanding that can help you modify instruction when needed.

Leave a Reply to Liz Buffington Cancel reply

Your email address will not be published. Required fields are marked *