Effective learning experiences in computer science

The International Society for Technology in Education (ISTE) defines a set of standards for educational coaches.  The coaching standard includes the requirement of designing relevant and effective lesson plans.  In computer science, educators often interpret the ‘relevant and effective’ part of this requirement as teaching the latest programming languages on the latest development environments.  While learning these technologies is certainly relevant, the goal of an effective, relevant lesson plan has to do more to prepare students for jobs in the fast-paced computer industry.  Computer science students will likely face new programming languages using development environments that have not yet been invented.  The goal of a relevant and effective lesson plan has to be about learning fundamental concepts as well as using engaging and real world learning activities.

Once a computer science student understands the concepts of functions, variables, loops, classes, methods, etc, found in most programming languages, picking up a new programming language becomes a mapping exercise.  That is, to learn a new programming language, the student simply maps the concepts of functions, variables, loops, classes, methods, etc. to corresponding concepts in the new programming language, and all of the other programming skills learned with the another programming language carry forward.

The same case can be made for development environments.  The core concepts behind all programming development environments is to make writing, building, and debugging computer programs as simple as possible.  Once a student understands the purpose of syntax highlighting, code completion, breakpoints, variable inspection, and stepping through code, the student is able to pick up a new development environment by simply mapping these common tasks to the corresponding tasks in the new development environment.

This is not a recommendation that computer science educators stick with lesson plans using programming languages and development environments developed a decade in the past.  Quite the opposite, in order to make lesson plans engaging and meaningful to today’s computer science students, educators must be constantly updating and improving existing lesson plans.  That includes contemporary programming languages and development environments, as well as real world, engaging learning activities.  This is where the coach plays an important role – working with educators to figure out the best plan to update and improve a lesson plan.

The coach’s job is to work with the teacher to define what he or she wanted to focus on and use the appropriate resources and tools to help meet that goal. (Foltos, 2013)

Using modern programming languages and developing environments is a required, starting point.  The more challenging part for the coach and educator is picking a real world, meaningful learning activity.  For example, 10 years ago, most computer science curriculums did not include instruction on programming mobile devices as it was seen as a niche topic.  Today, given that most people are running applications and accessing the internet using only mobile devices, the topic is now mainstream.

Many different types of mobile applications
“Mobile Application Develop” by LogoPeople Australia is licensed under CC BY-NC 4.0

Mobile devices have introduced new programming concepts that were not present ten years ago.  For example, computer science students were not programming applications that changed the application user interface when a device is rotated.  The concept of rotating a device was not even a consideration in the past.  On mobile devices, students now have to consider how to use touch gestures, location information, accelerometers, and a variety of mobile device features to improve their applications.  These are all relevant topics for building contemporary, mobile applications.

In 21st century learning, a coach must work with the educator to cultivate four interrelated attributes of a learning activity in order to develop meaningful, relevant, and effective learning activities (Bransford et. al., 2000):

  1. Learner centered
  2. Knowledge centered
  3. Assessment centered
  4. Community centered

Fortunately for both computer science coaches and educators, there are an abundance of resources available online to simplify this task.  For mobile application development, there are many different sites that offer both Android and iOS mobile application examples.  One of my favorite sites for mobile application development on Android devices is Android Hive.  For example, Android Hive has an Activity Recognizer application that allows programmers to recognize when a device user is standing, walking, running, biking, driving, or simply tilting the mobile device.

An application to recognize a mobile user's activity: standing, walking, running, biking, driving, or tilting the device.

By using applications like the Activity Recognizer on mobile devices, a coach is helping the computer science educator make a learning activity learner, knowledge, assessment, and community centered.  In addition, a learning activity that teaches students how to program their mobile device to recognize such user activity will be more meaningful and relevant to today’s students than a building a traditional, desktop application.


  • Bransford, J., Brown, A., Cocking, R. (2000) How people learn: brain, mind, experience and school. The National Academics of Sciences, Engineering, and Medicine. Retrieved on 11/2/2019 from https://www.nap.edu/read/9853/chapter/3#23
  • Foltos, L. (2013). Peer Coaching : Unlocking the Power of Collaboration. Thousand Oaks, California: Corwin. Chapter 6.
  • ISTE | ISTE Standards for Coaches. (n.d.). Retrieved October 20, 2019, from https://www.iste.org/standards/for-coaches

Comments are closed.