SimplyCS — Bringing Computer Science to Early Education

With less than half of U.S. high schools offering courses related to Computer Science(edsource.org), exposure to software engineering topics is limited. Enter SimplyCS: an application for mobile and tablet-based platforms to introduce younger students to CS topics in a fun and engaging way. This post will run you through the development and motivation of SimplyCS, where we are in our journey, and what is to come next. Hopefully, you’ll gain some interest in our application, or even have ideas of your own on how to tackle CS in early education.

Beta Homepage for SimplyCS takes with GiphyCapture

Motivations

SimplyCS is the spawn of many factors from what I’ve personally experienced, along with what I see in practice. Computer Science wasn’t offered in school as I grew up. Having graduated high school in 2010, the first exposure to CS would have been either in college or through personal exploration. As I dug deeper into data structures and algorithms throughout my college education, I was enthralled by the use of problem-solving skills and unique thinking techniques needed to efficiently solve real-world problems. Learning to think like a programmer earlier on would have been greatly beneficial to my proficiency in computer science.

Curious about the state of CS in early education, I did some research to see if my personal experience was the norm or an outlier. Turns out that still in 2020, only 45% of high schools offer some sort of computer science courses or tech adjacent education. These mainly took the form of AP Computer Science courses offered at the Junior and Senior grade levels for college credit. This posed another question: who’s taking these courses? Just about half of all students taking the AP tests were white, with 70% of students taking the test being male. Although these are big improvements from previous years(see graphs below), the lack of diversity in Computer Science, even pre-college, is still staggering. Since AP courses held the spot for CS education in late-high school, I decided to look earlier in traditional education to see where we might be able to make an impact.

Much of my family works in tech and/or education. After a few interviews, it’s common to see children as young as 1st or 2nd grade having an assigned iPad or tablet for school use. This might be a tad early for CS education, but what about a game or some sort of interactive application that introduces some very basic problem-solving skills using examples from simple data structures and sorting algorithms? This was it. Getting SimplyCS onto electronics and into the hands of tech-hungry children could spark an interest in CS for individuals of any ethnic background or gender identity. This early exposure could help tip the scales on the AP exams/industry and open up possibilities. I think one of the main deterrents to joining CS is the intimidation of the unknown. I think many of our passions stem from activities we partake in from a young age. If creating, innovating, and exploring in the CS space happens earlier, we can see passions develop earlier as well. Let’s invite the younger generation to at least see if they enjoy it, as opposed to daring them to take the risk later in life.

Beta Algorithm Selection pane taken with GiphyCapture

Challenges

The challenges I faced with developing SimplyCS were many, but we’ll discuss just a few of the main ones here such as tech stack choices, how to go about user interviews/testing, and nailing down a target audience.

Much of my experience is in back-end development using technologies like Python/Flask, JavaScript/Node.js, etc. For this application, I didn’t want to just spin up a web page because of the prevalence iPads and smartphones in early education. My solution had to be mobile and to do this, I had to learn some Swift and UIKit. Unfortunately, I had not been exposed to these technologies prior to this project, so it was challenging to pick up a new programming language and learn as I went along programming.

Conducting user interviews and creating user journeys was tough. Realistically, I can’t think of a situation where a 10–13-year-old would be thinking “I want to learn about computer science, how should I do that?” Instead, I tried to take it through the lens of an instructor. Many early education courses now have time allocated to ‘free time’ with the use of tablets with educational software installed on them. This looked like a good spot to test SimplyCS. The real challenge was making it both educational and fun to grip the users into using the product, and enjoying what they were doing. More interviews revealed that I would need some animations/graphics to help visually teach the concepts. (Yet another challenge due to my lack of artistic skill)

What’s Next?

Currently, SimplyCS is a simple navigation-based app with static views. The proof of concept was very time-consuming for how simple of an application it is. With time and experience, I want to improve the UI/UX with the following features inspired by beta tester feedback:

  • Skill level selection on home page
  • Data structures tied to those skill level selections
  • Algorithms tied to those data structures
  • Animations on each page to illustrate how the data structure and algorithms work
  • Voice over/audio of the animations to explain audibly what’s happening.
  • Interactive exercises to solidify learning.

Many of these improvements will require research and input from instructors paired with UX testing with different age ranges.

SimplyCS is very early in its development, but this project has ignited a passion for spreading CS knowledge as far and wide as possible. If I can invoke the same love for problem-solving I have to just one other person, I would call this project a success. Many of my goals for this project don’t seem too realistic to start, but as a passion project, the main goal is to have fun with it(which is already happening).

Sources for data:

https://edsource.org/reports/less-than-half-of-americas-high-schools-teach-computer-science