Designing coding workshops for gifted and talented students

5 min read

“The cure for boredom is curiosity. There is no cure for curiosity.”

– Ellen Parr

This Summer Popfizz led coding workshops for gifted and talented youth programs — The Stanford x GATSVI (https://www.gatsvi.org/) and UC Irvine x BEAM (https://www.gatisummer.com/). Students with burning passion and curiosity from all over the world gathered to spend the summer of their lifetime on college campuses.

Image for post
Students creating a Magic 8-Ball program using Python and MicroBit

UC Irvine x BEAM

BEAM stands for Biotech Engineering AI Medicine. Students can focus on either Research or Innovation. The two tracks are designed to give students real-world experience in research and entrepreneurship taking advantage of the rich resources and mentorship offered by the University of California, Irvine.

Focus

Bio-medicine/ Entrepreneurship

Activities Overview

Goal — Students will develop algorithms and apply them to solve a real-world problem by creating a software program running on a hardware device.

Students worked in teams to create projects that could detect a fall and monitor heartbeats using Python programming language, MicroBit, and a pulse sensor. Then they participated in a competition where the peers voted for the best idea.

Structure

  1. Pre-hackathon (5–9 hrs, optional): Students are given access to the Popfizz online course created for the UCI BEAM program. The course covers the basics of Python programming to help students build skills for the hackathon.
  2. Hackathon (2 hrs)
    Warm-up: Getting familiar with the MicroBit (50 mins)
    For this session, students team up and complete mini-tasks using MicroBit and Python. This helps the students familiarize with MicroBit and build team dynamic.
    Hackathon: Creating a project (55 mins)
    The teams create their projects using Python programming language and MicroBit. Optionally, a pulse sensor is made available for students to collect live heartbeat data.
  3. Picking the best product (15 mins)
    Students get 3 minutes to showcase and pitch their product and everyone votes for the best product. A prize is awarded to the winning team.

Stanford x GATSVI

GATSVI stands for Gifted And Talented Silicon Valley Innovators. This program focuses on cultivating entrepreneurial skills and gives students opportunities to pitch in front of real investors. Some students already generated revenue from their current startup and most had brilliant ideas that were ready to be realized.

Image for post
Students pitching and presenting ideas

Focus

Entrepreneurship

Activities Overview

Goal — Students will develop a simple app for their business ideas.

Students in their teams learned to create a simple app using code.org’s App Lab and got feedback for improvement.

Structure

  1. Warm-up (30 mins): Complete the App Lab hour of code activities to learn the basic syntax and to familiarize with the tool.
  2. Prototyping (30 mins): Students pick the most important part of their idea and drew out a prototype of their minimum viable product (MVP) using pen and paper.
  3. Creating the product (50 mins): Students create 2–3 pages of their app — just enough to demonstrate the core idea.
  4. Pitching (15 mins): Teams go around and showcase their final product. Before the student gets to speak, the lead instructor and the rest of the group tries to figure out what the product does and navigate the app without any external guidance.

What do students say about the workshop?

Image for post

We’ve had a chance to hear what students had to say about the program. For most girls in the program, this was their first time coding and it was clear that they’ve really engaged in learning. Hear what Aude, an extraordinary and bright student from Burkina Faso has to say.

“When I came to the University of California, Irvine for the BEAM summer program, I did not have any prior coding experience.

I was kind of afraid of trying coding for the first time, mainly because I did not know what to do. However, the fact that I was collaborating with my other two teammates helped overcome that fear.

During the coding hackathon, I mostly enjoyed applying programming to sensors to measure the pulsation rates of the heart. I enjoyed the challenge of using our creativity, critical thinking, and programming to come up with a practical product.

I initially wanted to pursue either engineering or biology in college because I took AP Biology this year and I really liked it. However, my experience with the hackathon got me interested in programming. Now, I am planning to take courses in programming and engineering in college and major in one of those. I also started learning programming with Python on my own. So this experience really impacted me in a positive way.”

This is just one of the many stories students shared with us.

The Design Principles

Image for post
Students discuss the core features of the app

So how were the activities constructed? The activities are created on the following principles backed by research:

Give students the building blocks[1] — Teach students the underlying concepts and basic mechanisms of how things work. This allows students to flex their creativity and pursue their passion. It also gives them the knowledge and resources to test their ideas, troubleshoot and improve their projects. Avoid giving long instructions that don’t allow much flexibility.

So how is this applied to the activities?

  • Teach students how to read and find information from programming language documentation.
  • Discuss what makes up a computer — hardware and software
  • Discuss input/output, what it means to close a circuit and how sensors work

Start with bite-sized tasks[2] — Think of how you would train for running a marathon, playing a song for someone’s wedding, or painting a mural. It takes steps to build up your skills.

It’s best to teach one concept at a time and repeat it several times[2]. The cumulative experience of success is crucial in trying out more difficult challenges. It builds the confidence necessary to persist when students face hardship.

  • Start with a small project which is gradually upgraded as new topics are covered.
  • Give your students a starter code so they can focus on the main algorithm or the key concept.
  • Troubleshoot in bite-sizes. This means that instead of creating a large chunk of the program and testing afterward, test every step of the way. Validate as you develop the program. When there’s an overall design flaw, follow the flow of the program and check that each section works as intended by sending in test data. Also, instead of deleting codes, it may be wise to comment them out in case you need to revert back.

Design group dynamics[3] — When having students work in groups, guide them through the kinds of roles that each member can take. It helps ease the competition and anxiety. This horizontal distribution of roles may be most effective for simple projects.

  • The driver does the programming and sits at the keyboard.
  • The navigator gives guidance to the person at the keyboard.
  • The quality assurer thinks about exceptions, what kinds of problems it may cause and researches solutions.
  • The designer deals with user experience. The designer lays out the look and feel of the program, gathers image sources and researches best practices
  • Other roles may include a researcher and a marketer

Alone and Together[4] — When doing group work in class, it may not be easy to create an individual time where students can work solo. However, for some students, this time is a must. This may be the time where students can dig deeper into their inquiries, test their hypothesis and get valuable answers without feeling overwhelmed by the group. Once the individual session is over, then the group can reconvene and share their findings.

So if time allows, build in the individual time into the activities. However, make sure to have your students set goals on how best to use this time.

Contact us for inquiries on running workshops and curriculum consultations: team@popfizz.io

→ Check out Popfizz online courses here.

Sources:

[1] Kim, J.S. Asia Pacific Educ. Rev. (2005) 6: 7. https://doi.org/10.1007/BF03024963

[2] Rosenshine B., American Educator, v36 n1 p12–19, 39 (2012) https://files.eric.ed.gov/fulltext/EJ971753.pdf

[3] Pierre Dillenbourg. What do you mean by collaborative learning?. P. Dillenbourg. Collaborative learning: Cognitive and Computational Approaches., Oxford: Elsevier, pp.1–19, 1999. https://telearn.archives-ouvertes.fr/hal-00190240/document

[4] Pescosolido, A. T. (2003). Group Efficacy And Group Effectiveness: The Effects of Group Efficacy Over Time on Group Performance and Development. Small Group Research, 34(1), 20–42. https://doi.org/10.1177/1046496402239576

Related Links:

Leave a Reply

Get updates from Popfizz Computer Science in your inbox.

Discover more from Popfizz Geek-out Blog

Subscribe now to keep reading and get access to the full archive.

Continue reading