My Coding Place logo

The Source Code

A Blog on Learning Coding and STEM skills

Getting Started There are several reasons why every kid should learn to code — for instance, coding fosters creativity and enhances problem-solving skills. Fortunately, teaching kids to code doesn’t have to be difficult, and you don’t need any coding experience.

Step 1: Find Their Passion Connecting coding to what kids are passionate about helps them stay engaged and interested.

Kids love learning how things work — especially things they’re passionate about! You can use this to make coding a fun and engaging experience for any age group. Take the hobbies and interests that they already have, combine it with their natural curiosity, and find a way to connect it to a coding project. These hobbies provide a familiar pathway for connecting computer science to the real world.

Are they...

Step 2: Pick a Visual Coding Language

Once you know what interests your student, you’re ready to take the next step and pick a programming language for them to learn with. We offer an extensive look at the best programming languages for kids that will help with this process.

The primary point from that article that is worth reiterating here is this: pick a language that offers a visual component. Most children don’t learn purely from words on a page or screen, which is why the best textbooks include visuals. Visual learning is also a critical part of coding for kids. Fortunately, computer programming is no longer just about looking at lines of code. A Pac-Man game created in Scratch coding. Scratch allows kids to visually create their favorite games, and use colorful code blocks to control characters!

Not only can kids see the output on their favorite Apple (iPad, iPhone) or Android device — even the coding process itself can be made visual! Coding becomes much more concrete when your student can see the effect of a change they make playing out on the screen in front of them (a turtle moving forward or the color of a background changing).

For younger kids (8-11 year-old), block-based coding languages like MIT’s Scratch platform have great visual appeal, introducing coding much the same way as legos introduce engineering. For older kids 11+, you can add visual elements to the Python language using the Turtle library.

Step 3: Choose a Simple Starter Project

A child’s first painting won’t be the Mona Lisa, and their first coding project won’t be a state-of-the-art video game. And that’s okay. When teaching coding, use simple projects as a starting point and progressively build to more and more complicated tasks as their coding skills advance.

A kid may want to make the next great Minecraft add-on, and that is a great goal to have! Let this motivate them, but don’t let the inability to do it on day one dismay them. Start them off with learning basic design and problem-solving and help them understand how this will lead to their eventual goal. Simple projects let an hour of code a day be enough programming for kids to continuously enhance their skills.

▶ Explore: Discover creative and fun coding projects by star Juni students.

Juni Learning has several resources to help you find a good starter project. If your student is ready to work with Python, our Intro to Python for kids is an excellent place to start. For other ideas, check out our step-by-step coding projects.

Step 4: Use Failures to Develop Resilience Facing new problems while coding and learning to solve them helps kids develop resilience. Failures are a chance for growth. Your student will inevitably become frustrated with coding at times, as they will with most subjects. Coding is a particularly great subject in which to introduce your student to coping with failure. The immediate feedback when code doesn’t work the first time — combined with the readily available resources via Google and other online resources — make problem-solving for a coding bug much

less frustrating than dealing with failures in most other fields.

Step 5: Build on Successes

Once your student’s dipped their toes into the water with a starter project, it’s time to build on that success. Each project a child completes is both an accomplishment and a stepping stone.

Celebrate the achievement, and then look for ways to extend the project further.

This can be done, for instance, by expanding the scope of a project. If a child made a timer to countdown to their birthday, it could be expanded to include all of their friends’ birthdays as well. Sometimes the enhancement can even be as simple as taking a generic project and including a personalized logo. This Python with Turtle coding project was expanded from simple fireworks animations,

to coding challenging fireworks of multiple shapes and sizes against a starry night sky background.

▶ Learn More: Check out these kids coding tutorials for inspiration on adding creative and extra challenges to coding projects.

Eventually, this can also involve moving to more complicated programming languages. A project originally created in Python may eventually be transformed into a Java project. This opens up new project possibilities (Minecraft mods are written in Java) while simultaneously introducing more advanced coding concepts required in these other languages. Expanding programming tools over time encourages a child toward critical thinking ("am I using the right tool for this job?") and other skills that will benefit them in high school, college, and beyond.

This article originally appeared on

We all want to gain life skills to achieve academic, personal, and career success no matter what age we are. But with so many important skills for kids and adults to learn, it can be hard to know what to prioritize.

Coding is one skill that stands out in the modern era. It offers anyone a boost in important life skills, socialization, and learning — as well as advancing future careers.

Here are our top 8 reasons why everyone should learn to code.

1. Coding gives a new way to look at the world

Computer code is a way to describe reality — similar to English or any other language. A programming language, just like any natural language, has its own grammar and syntactic rules. Thus, learning to code is very much like learning a second language and provides many of the same advantages.

Each new language gives us a new perspective that is uniquely attuned to a certain environment. In the 21st century, fluency in coding languages like Javascript, Python, or Scratch gives people an excellent vocabulary for interacting with the world around them. It’s no wonder that programming has been described as the new literacy!

2. Coding fosters creativity

Taking a mental image and giving it form in the real world is the very heart of creativity. Even at an early age, people can harness their creative abilities to make animated graphics, websites, and interactive video games with their coding skills.

Coding is one of the few creative venues that results in truly interactive works — and there is nothing more exciting for people than interacting with your own creations. This serves as an excellent supplement to other creative venues, giving students another way to bring their artistic ideas to life.

3. Coding improves math and logic skills

Learning code teaches students computational thinking — the process of breaking down complicated tasks into individual steps (like loops, conditionals, etc.) that a computer can understand. This is the same process used to break down complex arguments, and is a pillar of logical thinking. The more kids and adults practice coding, the better their logic skills will become.

4. Coding helps with problem-solving

Simple coding projects offer an excellent introduction to problem-solving skills even at a young age. Coders learn how to break down complex problems into simpler ones. This is one of the most crucial and rewarding parts of problem-solving.

With coding, students can test solutions to make sure they work. Few other problem-solving experiences offer this benefit. When all else fails, they improve their Google research skills while seeking solutions, and who wouldn’t benefit from being better at independent research?

5. Coding projects helps develop resilience

The ability to cope with failure is a vital life skill. Through coding, everyone learns that failure is a stepping stone, not an ending. Recovering from a misstep happens quickly with coding. The process is less frustrating because students can try several solutions quickly. This makes it much easier to develop resilience without feeling overwhelmed.

Even just an hour of code a day through hands-on coding projects can teach students the importance of persistence and resilience.

6. Coding makes learning fun

Computer programming projects give exciting results, that you can see right in front of your eyes. You or your student can build stand-alone projects like Tic Tac Toe, an animated animal face drawing, or even their own video game design from their imagination.

They can also bring their coding skills into their current favorite toys and games. Minecraft add-ons are an amazing example. Everyone can use code to enhance activities that they already know and love!

7. Coding is a social activity

Remember all those coding projects we already talked about? You can also show off what you built to your friends! Sharing how you built your favorite game reinforces what you have learned and improves your confidence. When you show off that new Minecraft add-on or video game you built, your friends are sure to be impressed.

And there’s another way to turn coding into a social activity: Hackathons! These virtual competitions give people a chance to work on collaborative problem-solving and building with a goal in mind. It’s hard to find better preparation for teamwork skills in school or work!

8. Coding prepares students for the careers of the future

Finally, we can’t end this list without mentioning careers. Coding skills are indicators of digital literacy — a necessity in this digital age! Nearly 50% of all jobs require some coding skills.

Of course, these skills are especially crucial for coding and computer science careers. Further, coders are proven problem solvers and logical thinkers, skills that are valuable in any career field.

Ready to get started learning code?

Individually, each of these is a strong reason for you or your student to learn coding. When combined, they make coding one of the most valuable skills in the 21st century!

Finding resources to help people become computer programmers used to be hard. Over the past several years, the advent of online courses and guided coding projects has made the process much easier.

Nationally and internationally, there are also many coding schools set up to teach kids and adults to code, with live training from knowledgable instructors. For children and teens, reach out to My Coding Place or Juni Learning, two options that will help support and advance your students' coding skills! Both offer a range of private and group online coding courses for kids ages 8-18 that gives students solid foundations in computer science, logical thinking, and even creative subjects like website design. In addition, My Coding Place offers tutoring to adults 18+ as well as teaching chess, digital art, and robotics to all ages to encourage critical thinking and advance problem-solving skills!

Most of this article originally appeared on

A common term people use in computer science and coding is 'algorithm.' What is it and why is it important for coding? In partnership with Juni Learning, we share their article here to define this important concept.

What Is An Algorithm?

An algorithm is a set of step-by-step procedures, or a set of rules to follow, for completing a specific task or solving a particular problem. Algorithms are all around us. The recipe for baking a cake, the method we use to solve a long division problem, and the process of doing laundry are all examples of an algorithm. Here’s what baking a cake might look like, written out as a list of instructions, just like an algorithm:

  1. Preheat the oven

  2. Gather the ingredients

  3. Measure out the ingredients

  4. Mix together the ingredients to make the batter

  5. Grease a pan

  6. Pour the batter into the pan

  7. Put the pan in the oven

  8. Set a timer

  9. When the timer goes off, take the pan out of the oven

  10. Enjoy!

Algorithmic programming is all about writing a set of rules that instruct the computer how to perform a task. A computer program is essentially an algorithm that tells the computer what specific steps to execute, in what specific order, in order to carry out a specific task. Algorithms are written using particular syntax, depending on the programming language being used.

Types of Algorithms

Algorithms are classified based on the concepts that they use to accomplish a task. While there are many types of algorithms, the most fundamental types of computer science algorithms are:

  1. Divide and conquer algorithms – divide the problem into smaller subproblems of the same type; solve those smaller problems, and combine those solutions to solve the original problem.

  2. Brute force algorithms – try all possible solutions until a satisfactory solution is found.

  3. Randomized algorithms – use a random number at least once during the computation to find a solution to the problem.

  4. Greedy algorithms – find an optimal solution at the local level with the intent of finding an optimal solution for the whole problem.

  5. Recursive algorithms – solve the lowest and simplest version of a problem to then solve increasingly larger versions of the problem until the solution to the original problem is found.

  6. Backtracking algorithms – divide the problem into subproblems, each which can be attempted to be solved; however, if the desired solution is not reached, move backwards in the problem until a path is found that moves it forward.

  7. Dynamic programming algorithms – break a complex problem into a collection of simpler subproblems, then solve each of those subproblems only once, storing their solution for future use instead of re-computing their solutions.

Example of an Algorithm

Solving a Rubik’s Cube

There are a number of different algorithms, from simple to very complicated, that exist for solving a Rubik’s cube. Below is just one simple algorithm. First, let’s specify a notation to use (similar to picking a programming language).

Each of the six faces of a Rubik’s cube can be represented by the first letter of their name:

  • U - up

  • D - down

  • L - left

  • R - right

  • F - front

  • B - back

Each face can be turned in three different ways/directions. Using U as an example, these are represented as:

  • U - clockwise quarter-turn of the upper face

  • U' - counter-clockwise quarter-turn of the upper face

  • U2 - half turn in either direction of the upper face

Now, let’s go through the steps in the algorithm to solve a Rubik’s Cube. Feel free to grab one of your own and follow along!

Step 1: The Cross

  1. First, flip some edges so that there is a white cross on the upper face.

  2. Apply the following turns: F, R’, D’, R, F2, R’, U, R, U’, R’, R2, L2, U2, R2, L2.

  3. The cross is now solved.

Step 2: The White Corners

  1. The edges on the white face are now complete, but the corners remain.

  2. Depending on where the white-orange-green corner is in the puzzle, apply one of the following series of turns:

  3. Bottom: R’, D’, R, D (repeat until the corner moves to its correct place)

  4. Top: R’, D’, R, D (this moves the corner to the bottom; then, follow the above instructions)

Step 3: Middle Layer Edges

  1. Flip the cube so that the white is on the bottom.

  2. Look for an edge that is on the top face and doesn’t have yellow on it.

  3. Perform a U-turn so that the color on the front face of the edge matches with the center.

  4. Depending on the direction that the edge could go, apply one of the following series of turns:

  5. Left: U’, L’, U, L, U, F, U’, F’

  6. Right: U, R, U’, R’, U’, F’, U, F)

Step 4: Yellow Cross

  1. Apply the following turns, until a yellow cross on the face appears with the yellow center: F, R, U, R’, U’, F’.

  2. If there is an “L” shape, where the two yellow pieces showing are adjacent to each other, apply the following turns: F, U, R, U’, R’, F’.

  3. If there is a “Line” shape, which is horizontal, apply the following turns: F, R, U, R’, U’, F’.

Step 5: Sune and Antisune

  1. Look at the face with the yellow center.

  2. Depending on the below contingencies, apply one of the following series of turns:

  3. If there is only one oriented corner: R, U, R’, U, R, U2, R’ (repeat until the desired position is attained)

  4. There is one oriented corner and one right-facing corner: U2, R, U2, R’, U’, R, U’, R’

Step 6: Finishing the puzzle

  1. Look for sets of “headlights” (two stickers of the same color in the same row, separated by a sticker of a different color).

  2. Depending on how many there are, apply one of the following series of turns:

  3. If there are a set of headlights on each side: R, U’, R, U, R, U, R, U’, R’, U’, R2

  4. Otherwise: R’, F, R’, B2, R, F’, R’, B2, R2

Sorting Algorithms

A sorting algorithm is an algorithm that puts elements of a list in a certain order, usually in numerical or lexicographical order. Sorting is often an important first step in algorithms that solves more complex problems. There are a large number of sorting algorithms, each with their own benefits and costs. Below, we will focus on some of the more famous sorting algorithms.

  1. Linear sort: Find the smallest element in the list to be sorted, add it to a new list, and remove it from the original list. Repeat this until the original list is empty.

  2. Bubble sort: Compare the first two elements in the list, and if the first is greater than the second, swap them. Repeat this with every pair of adjacent elements in the list. Then, repeat this process until the list is fully sorted.

  3. Insertion sort: Compare each element in the list to all the prior elements until a smaller element is found. Swap these two elements. Repeat this process until the list is fully sorted.

Where are Algorithms Used in Computer Science?

Algorithms are used in every part of computer science. They form the field's backbone. In computer science, an algorithm gives the computer a specific set of instructions, which allows the computer to do everything, be it running a calculator or running a rocket. Computer programs are, at their core, algorithms written in programming languages that the computer can understand. Computer algorithms play a big role in how social media works: which posts show up, which ads are seen, and so on. These decisions are all made by algorithms. Google’s programmers use algorithms to optimize searches, predict what users are going to type, and more. In problem-solving, a big part of computer programming is knowing how to formulate an algorithm.

Why are Algorithms Important to Understand?

Algorithmic thinking, or the ability to define clear steps to solve a problem, is crucial in many different fields. Even if we’re not conscious of it, we use algorithms and algorithmic thinking all the time. Algorithmic thinking allows students to break down problems and conceptualize solutions in terms of discrete steps. Being able to understand and implement an algorithm requires students to practice structured thinking and reasoning abilities.

This article originally appeared on