Our Mission

Our mission is to empower people to tackle challenges independently through learning to code.

We aim to develop the following qualities in our students:

  1. Problem-Solving, Critical Thinking, and Learning Skills

  1. Confidence, Attitudes, and Growth Mindset

One of the biggest differences between a good problem-solver and a bad one is their beliefs and attitudes. What’s the use of learning strategies if the learner believes themselves to be inherently “bad at math?” Or how can we expect our students to think critically if they don’t think it’s fun?

Below we list the confidence and attitudes that we wish our students to discover to be true about themselves:

Growth Mindset



Why Coding?

  1. Coding innately teaches many of the important beliefs, attitudes, and mental models for good learning, problem solving, and critical thinking.

Learning to code is the perfect medium for teaching all of the intangible skills and attitudes we aim to develop here at The Coding Space. It requires the use of mental modeling -- designing thinking, systems thinking, symbolic thinking, functional thinking, etc.--and teaches problem solving strategies that can be extended to non-coding arenas.

Additionally, inherent in the “hacker ethos” are the ideas that learning and building is fun. Debugging programs teaches students that “wrong” is merely a stepping stone to right, and students develop a growth mindset and sense of grit, as they are empowered to stay with problems and solve them themselves.

  1. Coding is overtly engaging, interactive, and gratifying.

Students love computers, video games, and the prospect of making those games that they love. These games are easy to share with family and friends inside and outside the classroom. Adding to the appeal is coding’s instant and interactive feedback loop, making working through challenges instantly gratifying.

Contrast this with the typical subjects students learn in school. In coding classes we never hear, “why are we learning this?” because everything feels relevant.

  1. Coding is an economically valuable skill.

Code.org reports that Comptuer Science majors attract 40% higher salaries than their non-coding peers. They predict that by 2020, there will be one million open jobs in computing, driving wages up even higher. As Marc Andreessen likes to say, “software is eating the world,” so no matter what career a student pursues, a background in software will always come in handy. And that’s not to mention the possibility of starting the billion dollar tech startup in your 20s ;)

Our Classroom Strategies

“The medium is the message.” - Marshall McLuhan

Many of the biggest lessons students learn are those accidentally transmitted through the way students are taught.

In a traditional classroom, students learn that the teacher is the ultimate authority, their peers contain little knowledge worth seeking, there is a “right answer” to every question, there are hard lines between Math and English, some people are better at math and some better at English, and learning is mostly boring. These “lessons” are ultimately quite harmful, as they take away students’ agency and ability to take control of their learning.

In contrast, at The Coding Space, we have designed our classroom to be as student-centered as possible. Here, students learn that they are the center of their learning experience and the teacher is a mere resource; their peers represent a wealth of knowledge; there is no such thing as a “wrong answer”, only a stepping stone to a better one; there are very blurry lines between Math and English; there’s no such thing as being “bad at math” or any other subject; and learning is quite fun.

Additionally, in our self-paced classroom, a student’s progress is not affected by the progress of others. As a result, students don’t have to learn at the “pace of the class,” but at exactly the pace that is right for them. In a Coding Space classroom, nobody is advanced or behind for their age. Everyone is learning at exactly the right place and pace for them.

“Learning is most effective when part of an activity the learner experiences as constructing a meaningful product.” - Seymour Papert

Most traditional schooling is pre-loaded in nature. Textbooks start from first principles and build their way up to more complex concepts. While this is a very logical way to present material, it isolates students from a meaningful context to apply their learning.

We take the opposite tactic, presenting students with problems that they can only solve by self-discovering new concepts and methods that will directly help them with their immediate challenges. The project-based, “learning-by-making” classroom style used at The Coding Space provides a space for students to develop and practice real-life learning strategies by building meaningful projects.

In this way, learning is highly motivated, relevant, and memorable. Most important, it gives students the confidence that they can learn as they go. This way, we don’t need to worry about teaching our children everything they need to know. We can rest assured that they’re in a position where they can find what they need to know when they need to know it.

Our “learning-by-making” system reinforces in students that there are no wrong answers, but only stepping stones towards better ones.  While working on their projects, students must try many different things out in order to figure out what works.  Often times, it’s impossible to make something work perfectly on the first try.  Instead of teaching students that there is only one right answer for each question and that a second attempt equates with failure, we train our students to fearlessly iterate and tinker with their problems.  If their first attempt doesn’t work, no problem.  It just means they’re one step closer to finding something that does.

One of the most important things that our students learn through our class format is that learning can be ridiculously fun!  Because our students aren’t afraid to be wrong, get to jam on projects with their peers, and work with their teachers but not under them, they are very likely to genuinely enjoy their education.

Our project based model teaches also teaches that there are no hard lines between different subjects. Our students certainly learn a great deal about coding and game design, but every project that they work on demands them to think beyond these two elements. Students learn about English by making a bot that talks to them, answers their questions, and reacts to what they say. They learn principles of physics by modeling gravity in games. They learn math by using functions, variables, and algorithms. They practice their art, design, and creative thinking skills by making backdrops and characters.  Every project stretches them to think interdisciplinarily, often requiring the use of every single traditional school subject. This not only gives them access to a variety of material, but also instills in them the important belief that all the different parts of their education truly do work together.

“I cannot teach anybody anything. I can only make them think.” - Socrates

Students are naturally curious. However, rather than playing to this curiosity, traditional teaching (such as lecturing or PowerPoints) often involves pelting students with content that they haven’t asked for or expressed interest in. This is much like saying the punchline without telling the joke, or administering a prophylactic appendectomy. These are valuable things when the context demands them, but painful to endure when they haven’t been asked for.

At traditional schools, children are taught by the “I do, we do, you do” method, whereby a teacher explains the lesson, it’s practiced as a class, and then it’s continued to be practiced alone for for homework. There is an implicit assumption here: learning is handed directly from a teacher to a student. Learning happens when, where, how, and why the teachers says so, and all students can do is try to keep up. In this classroom style, students are totally disempowered as learners.

Thus, at The Coding Space, our classrooms have no lectures, PowerPoint presentations, or any formal “teaching.” In fact, (to the confusion of some of our new parents and students) we pride ourselves on not directly teaching our students anything! That would ruin the experience entirely.

Instead we have crafted a Socratic-based teaching method, in which teachers ask effective questions so that students are led to solve their own problems by making discoveries instead of having things explained to them. Rather than simply giving hints or answers, our instructors draw ideas from students through leading questions and modeling strategies of how good learners, critical thinkers and problems solvers would find answers for themselves.
Would Google be helpful in this scenario? What keywords would you use?

New students are sometimes confused by this methodology. Because of the traditional education system to which they’ve become accustomed, they often come to us with no conception of figuring things out for themselves, especially in “educational” settings.  They are so used to learning solely from a teacher that they don’t understand their own innate resourcefulness.

Thus, the goal of this methodology as a medium is to teach students that they contain valuable wisdom and intuition about the world. It teaches students that they have what it takes to figure things out for themselves. Moreover, it provides sufficient space and time for students to practice self-directed learning strategies with the guidance of our mentors.

If you want to experience the power of the Socratic method for yourself, we highly recommend Rick Garlikov’s transcript of teaching binary code to a 3rd grade class by only asking questions.

“Children learn as they play. Most importantly, in play children learn how to learn.” – O. Fred Donaldson

Inspired by Seymour Papert’s concept of “microworlds”, we have designed our classroom around the idea of what we call a “virtual playground”, in which (1) there are no prerequisites, so students can jump right in; (2) powerful ideas hide in fun activities; and (3) engaging with the playground is meaningful, relevant, and innately fun.

At The Coding Space, we use Scratch as our main “virtual playground”.* In Scratch, a student can jump in with no prior programming knowledge and in just a few hours build an incredible understanding of events, variables, loops, and sequential evaluation. Best of all, students often don’t even realize how much they’re learning -- to them, it’s just fun!

*For students who advance beyond Scratch, we use Scheme and Web languages as virtual playgrounds. (HTML, CSS, JavaScript).

“The goal of a flying instructor is to impart enough in dual mode to enable the student to fly alone successfully in solo mode.” - T. A. Dwyer

Our ultimate goal is to create self-sufficient learners, critical thinkers, and problem-solvers. However, our classes offer a variety of scaffolds, or temporary instructional support, that allow students to develop their skills in “dual mode” with the eventual goal of graduating them to “solo mode,” where they need less and less of our curricular guide rails.

Untutorials are one of our main “dual mode” scaffolds for teaching students who are new to coding. Untutorials list the high-level tasks or features students need to complete the project, but leave out how to do them. Students figure out the rest via tinkering, googling, asking a friend, and iterating towards a solution, all while developing deep insights and intuition of high-level concepts.

This is an example of one of our beginner untutorials. You can start by playing the game in the first “card” to see the finished product. Then you can open Scratch in another window and figure out how to make each feature. Don’t worry if you have questions or get stuck! That’s why we offer classes with trained teachers :-)

“The best time to learn anything is when whatever is to be learned is immediately useful to us.” - Goodwin Watson

After a number of untutorials in “dual mode,” students are given the opportunity to participate in Creative Projects in “solo mode.” These are open-ended projects that allow students to combine all the skills they’ve learned throughout a sequence of untutorials.

Students are encouraged to pair up for Creative Projects, even with students not necessarily at their same level. This provides an authentic team setting for students to collaborate and pair-program on software projects of their creation.

“Age mixing is [a school]’s secret weapon.” - Daniel Greenberg

Since the death of the one-room schoolhouse and the introduction of large public schools, there has been little reason to combine students of different ages (and often, abilities) into the same classroom. The standard practice is to have homogenized classes so that there’s no need to “teach to the middle,” which theoretically slows down the top and goes too fast for the bottom.

However, in a self-paced classroom, having mixed-aged and mixed-abilities is a not an issue. In fact, classrooms diverse in age and skill provide the perfect opportunity for leadership, mentorship, peer-to-peer learning, and deeper friendships. Our classes often feature a 9-year-old girl sitting next to a 16-year-old boy, the girl helping the boy understand advanced concepts and techniques because she’s further ahead in the curriculum. This setting more closely mirrors real-life work environments where everyone knows all sorts of different things, and it’s critical to find ways to work together and learn from each other.

Reading List

Room For Improvement

  1. We could foster more authenticity while we use the Socratic Method. We must remember that “the medium is the message.” Our teachers are almost “pretending” not to know certain things to give students the opportunity to figure things out for themselves. While a powerful method in many respects, the underlying message could be negative. Can we make this more authentic and less didactic and annoying? We must not forget what happened to the inventor of the Socratic method for being overtly annoying during his own trial.

  1. Students want to build apps for their iPhones, Androids, and Pebble watches. Because these are platforms that don’t lend themselves well to learning, we often discourage students from pursuing these projects. However, as we value developing our learners’ self-images over what we actually teach them, we should constantly struggle to aid students in building projects that are most meaningful to them, despite potentially lacking in educational content.

  1. We could do better facilitating peer interactions.

  1. We could better incorporate classroom ritual, having a procedure for starting class, midway through class and ending class.

  1. We could have more student demos.

  1. We could better serve students that don’t immediately take to our style.

  1. We could do a better job placing students in the curriculum.

  1. We could do a better job teaching advanced coding skills, such as formatting/indentation, breaking down tasks into subtasks, debugging procedures, precise wording and question asking, what to do when overwhelmed, refactoring, functional abstraction.