The acronym “STEM” is very common in the world of education, and it stands for Science, Technology, Engineering, and Math. It’s an important part of every child’s education, but it doesn’t only matter to children – it should matter to everyone. The more you understand STEM education, the better prepared you’ll be to make the right decisions regarding your child’s education.

Here are some reasons why we should encourage enrollment and development in these topics:

Innovation supports the economy.

We’re all observing the technology boom happening before us. New gadgets are popping up every week and keeping up with the trends has proved challenging for many. However, these trends are important because they help boost the economy and create jobs. We need talented and skillful STEM experts to develop the next vaccine, disease cure, or antibiotic. We also need developers and engineers in order to come up with the next generation of phones, cars, and computers.

Introducing girls to explore tech in school will help bridge the gender gap.

There is a disparity among men and women in the STEM industries like tech, development, engineering, and medicine. According to Fortune, women only make up about 1/3 of the workforce in the biggest tech companies (like Microsoft, Google, and Facebook).

That gap only gets wider if you evaluate the numbers regarding leadership positions. According to Deloitte, only about 25% of IT roles are led by women and only 17% of female college graduates are in IT-related fields. If we give girls more opportunities to explore STEM when they’re children, more will take interest and make careers out of their talents.

Studying STEM leads to the development of other important skills.

We’ve discussed the more long-term effects of STEM education initiatives, but we should talk about how this branch of education can directly help today’s youth. Mastering STEM skills will lead to the development of practical soft skills. For example, in STEM programming, students create their own research questions. They then follow an investigative process that encourages them to evaluate multiple perspectives and connect concepts in order to fix a problem.

There are many different processes kids can learn from studying STEM, and the best part is that they can learn to collaborate with their peers by comparing their in-class research and working together to solve problems presented to them.

While we do teach STEM in schools, taking initiatives to further encourage interest and passion will promote equality and innovation in our future. Plus, engaging in fun activities centered around STEM education is a great way to bond with your child.

By Mira B., Age 14

Many people use social media apps such as Instagram or Snapchat, which have face filters for people to take and post pictures of themselves. But many people do not realize how these filters are created and the technology behind how they fit people’s faces almost perfectly. The mechanics behind face filters was originally created by a Ukrainian company called Looksery; they used the technology to photoshop faces during video chats. Snapchat bought their algorithm, called the Viola-Jones algorithm, and created the face filters seen in many social media apps today.

Creating face filters is more difficult than you may think, so I’ll break it down into five key steps:

The first step is face detection. The image is initially viewed in ones and zeros, so the algorithm scans the image, looking specifically for color patterns. This can include finding that the cheek is lighter than the eye or that the nose bridge is lighter than surrounding areas. After detecting these patterns, a face can be distinguished in the camera.

The second step is the landmark extraction. Using specific algorithms in a 2D image, facial features such as the chin, nose, forehead, etc are determined.

The third step is face alignment. The coordinates of landmarks on people’s faces are taken to properly fit the filter to a particular face.

The fourth step is 3D mesh. Using the 2D image, a 3D model of the user’s face is built to fit the filter animation to a specific face.

The last step is face tracking, which approximates and locates the 3D mask in real time. This allows the user to move their face without the filter disappearing or moving to an incorrect location.

Another way to think of these steps is to imagine a human body. The landmarks identified in a 2D image serve as the skeleton for the future mask. Similar to how bodies differ in shape, so do people’s face structures. Using face alignment, the filter matches with the coordinates of landmarks from a certain face. People’s skin makes them look the way they are and 3D mesh step is like aligning the skin to the skeleton. Similar to how bodies move while keeping the skeleton, skin and muscle together, face tracking follows the face to make sure the filter stays on the right coordinates.

C++ was invented by Bjarne Stroustrup in the early 1980s as a general-purpose programming language. It is a similar language to C, which was invented by Dennis Ritchie in the early 1970s, but it is safer and includes modern programming techniques (like object-oriented programming).

The purpose of C++ is to precisely determine a sequence of operations that a computer can perform to accomplish an objective. Most of these involve manipulating text and numbers, but anything a computer can do physically can be programmed in C++.

We don’t think about this often, but computers have no intelligence – they have to be given instruction on how to perform a task. These instructions are defined by the programming language used. Once they are programmed, they can repeat the instructions very quickly as many times as the operator wishes.

Which computers have C++?

The better question is: “which computers don’t have C++?” The language is a widespread, almost universal tool and can be found on most computers, big and small alike. There are compilers for this language that are available to almost every type of operating system.

Use of C++

C++ is popular in software engineering, communications, and gaming, as well as other industries like finances, health care, and defense. The language is widely used across programming development and has been an influence on the creation of other programming languages like Java, C#, and PHP.

Learning C++

There are many places you can go to study C++. First, you’ll need a C++ compiler. There are a variety of these available, and many of them are free and include an IDE to make it easier for you to program, debug, and edit your applications.

Where does C++ stand in comparison to other programming languages?

While some code languages are written for a specific purpose, C++ is a great general-purpose language. It can work well for most programming tasks, but not for all. Other languages like Delphi, C#, and Visual Basic may work better in those situations.

Knowing how to use C++ is a foundational skill in learning how to program and code. Many jobs in a selection of fields require or prefer candidates with this skill, as there’s an immense amount of existing code that needs maintenance, updating, and (at times) rewriting. C++ also lends itself to the arts in its contributions to video game development. Needless to say, if you’re considering a job in our modern technological industry, knowing C++ will give you a leg up in your job search.

When the development of coding first started taking off in the 20th century, women were at the forefront of its progress. According to an article in Smithsonian Magazine, women were historically offered coding jobs because these positions were seen as easy “women’s work,” similar to secretarial and administrative duties, while men were more focused on the development of hardware. Here are a few women who helped spearhead the development of this all-important skill:

Ada Lovelace (1815-1852)

Ada’s place in coding takes place earlier than the 20th century, but her work is foundational to this field. Growing up, Ada was always interested in the inventions coming about during the Industrial Revolution. At age seventeen, Ada’s mentor (Charles Babbage) developed a machine called the “Analytical Engine.”

At one point, she translated an article that an Italian mathematician wrote about the machine. Babbage was impressed and asked her to expand on the article. In her work, she wrote on the potential uses of the Analytical Engine and wrote multiple computer programs.

Lois Haibt (1934-)

When Haibt began working for IBM, they were working on a computer language that would change the field completely. Haibt was a great problem-solver and had shown exceptional skills in math and science during her collegiate studies. The project she was hired for became known as FORTRAN and she eventually was assigned to build the flow analysis at the foundation of the FORTRAN computer. The language became known as a vital development in the field of computer coding and programming.

Margaret Hamilton (1936-)

Hamilton was working as a programmer at MIT during the 1960s. She is quoted as saying: “The very first languages I programmed were in hexadecimal and binary. There was no school to attend or field to learn what today is known as ‘software engineering’ or ‘systems engineering.’ When answers could not be found, we had to invent them.”

When NASA looked to MIT workers to help engineer the Apollo, Margaret’s duties involved developing onboard flight software. Her method involved punching holes in stacks of punch cards and having them processed by a large computer, simulating the Apollo. After a human error, Hamilton helped save the Apollo 8 flight and was awarded the NASA’s Exceptional Space Act Award.
Over the years, it has been made clear that computer coding and programming is much more than mundane and tedious work. It’s a skill that is vital to the technological development of our world, and women have played no small part in it. Apart from their scientific success, they also paved the way for the many women who do great work in this field today.

Do you have a big test coming up? It’s normal to feel nervous. After all, if test taking were a breeze, they wouldn’t call it a “test.” However, there are ways to increase your confidence… and your chances of scoring a good grade. The best part is that these ideas aren’t difficult to implement at all. Embrace the challenge ahead of you and seek to ace the next exam by following these 6 tips.


1.       Take short breaks regularly. Don’t overload your brain with too much information – cramming is not an effective technique if you want to ace a test. The secret to a successful test? Learn the information – and truly know the material. The only way to do so is to allow yourself time to process properly, which means you must account for regular breaks in between studying. Focus for 30 minutes, take a 10 minute break, and then repeat this pattern.

2.       That being said, don’t take too many unnecessary breaks. The mistake many make when giving themselves time for breaks is that it’s tempting to schedule breaks TOO often. Taking a break shouldn’t be an excuse to get away from the material, but rather to let it soak in and give yourself a moment to reflect. Breaks should be calm and connected to the study session – so, no video games and TV shows.

3.       Eat and hydrate. By now, you’re probably very familiar with the technical study tips for memorization (creating acronyms for terms, for example); however, this is only one piece of the puzzle. The biggest piece is to take care of yourself – eat a snack, drink water. Keep your mind in tip-top shape so you can feel good enough to learn and understand the material.


1.       If you don’t know an answer to a question, skip it and come back to it. This advice is tried and true; however, there is a very important exception to keep in mind. If you’re just skipping a question because you think you don’t know it, but haven’t taken the appropriate amount of to work the problem, you’re simply breaking your focus on a question you may have been able to solve. So, only skip a problem if you really don’t know it, rather than trying to find all of the easy questions first.

2.       Read every question and (if applicable) every possible solution in its entirety. This seems obvious, but – in the moment – it’s a tip that many neglect. Knowing what you’re getting into BEFORE you start attempting to solve the problem will help ensure you don’t have to redo a question after you thought you figured it out correctly.

3.       Implement self-care strategies to ease anxiety. Taking a test is a challenge – it’s meant to assess how much you have learned and retained. Along with these difficult questions comes a heaping amount of anxiety, even for the most confident test taker. Therefore, successful test taking comes down to the ability to calm yourself enough to remember what you already know. Find what works for you. Some examples include taking deep breaths, relaxing all muscles, rolling your shoulders and thinking positively.

The next time you have an exam on the horizon, don’t fret. Instead, take action. Study effectively, take care of yourself and keep calm through the process. With these tips as your guide, you’ll be well on your way to claiming an “A” on the test.

We’ve discussed the endless possibilities that arise from learning to code, and how fun it is to learn.  You’ve probably seen the power of coding every day on the internet, in the video games you play, and in the technology segments that play during the news, but maybe you’re still not quite clear of one thing.

What is coding, exactly?

To understand coding, you must first understand that computers don’t speak English, at least they haven’t always been able to. There was a time before Alexa and NPCs in a video game spoke directly to you, and it was a dark time.

Literally, electricity hadn’t even been invented yet.

It was 1843 when Ada Lovelace wrote the first official computer program for a machine invented by Charles Babbage called the “Analytical Engine.” That’s right, over 150 years ago coding was introduced into our world. The first official coding meant to give instructions to computers were wrote during the 1950s, mostly used for application in weapons and space technology. The onset of many of the languages we use today were developed in the 1960s and 70s, coinciding with the explosion of computational language efforts in universities and companies with government contracts.

Coding began to take form into what we recognize today as popular programming languages in the 1980s, and this led to companies like Microsoft and Apple introducing the power of the computer into homes around the world. Since then, programmers and computer enthusiasts have fully utilized the power of source code.

This is an example of source code:

<li>Chrome &ndash; CTRL + U. Or you can click on the weird-looking key with three horizontal lines in the upper right hand corner. Then click on &quot;Tools&quot; and select &quot;View Source.&quot;</li>

In its purest form, coding is a set of commands and processes that perform an overall task, what that task is purely depends on the will of the programmer. In the process of writing code for a program, device, or website, a coder will act as “King” of the code, telling it where to go, how to stand, and when to speak. While attempting to get the desired result, a programmer will need to manipulate, analyze, and pinpoint errors in the source code

Don’t let the “King” title go to your head, because being a coder also makes you the guy whose job it is to clean up the kingdom. If something doesn’t look right on a website, or a robot doesn’t react the way it should to a command, you, the coding custodian, must get into the source code and clean up the mess.

But, the magic of coding lies in “the mess,” because it’s there where there is the potential for basically anything your mind can imagine. Lines of source code are meticulously assembled for a reason, and when there’s a break in the chain, it shows. This means that any problem which can arise in coding, can also be fixed.

So what is coding? Coding is the problem, and the answer. It’s the language of a world that really has no boundaries, and once you learn it, the same will be true of you.

By Camille D., Age 17

Developed in 2009 and made available in 2012, Julia is one of the fastest-growing languages in the industry. As it routinely makes an appearance in language popularity rankings, there is a potentiality for the language to outshine languages such as Python in the realm of computational science and general programming.

Julia was created by Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and Alan Edelman, with a collective desire to unify the best amenities of all the big languages, from the “speed of C” to the  “dynamism of Ruby.” It was crafted with flexibility and versatility in mind – the language boasts the ability of its users to “write an algorithm … and apply it to an infinite lattice of types.”

No language is perfect; you are always making a trade-off when choosing a language to learn. A C++ pupil will enjoy the language’s high speed, but will miss out on the straightforwardness and garbage collection capabilities of Java. There will never be such thing as a language that will solve every issue or be free of any shortcomings whatsoever. Nonetheless, programming languages have evolved rapidly, and Julia exemplifies how far they have come. Here are a few reasons to choose Julia.

Julia is fast and high-performing. Applications created with Julia use the LLVM Compiler Infrastructure to efficiently compile the code to machine language for multiple different platforms. When writing code in a compiled language, you must explicitly define the types of variables you will use and the operations intended to be performed on them. Since the hardware will know exactly what to do as a result, the code will be executed quickly and efficiently. On the other hand, the CPU does not have a concept of the “variables” you use when writing in an interpreted language. The interpreter must provide instructions to the CPU about what the variables contain (i.e. int vs. float data type), forcing the CPU to wait. This is what makes interpreted languages slow relative to compiled languages such as C. Julia falls somewhere in the middle of the spectrum of compiled and interpreted languages. Julia’s compiler doesn’t have to have the information previously mentioned, but it is prepared for when a function is called and acquires all the material promptly. From the information provided, the compiler puts together fast and precise CPU instructions.

Julia is packed with immense capabilities in data science and numerical computing. When using Julia, it is evident that conventional mathematics become closely bound with programming. The Julia REPL (a programming environment in which a user types in a command and can easily see the result of their command) gives access to symbols often used in mathematics, including Greek letters and subscripts. The symbols are inserted by typing a backslash \, followed by a string corresponding to the character. For example, entering “\Gamma” will return the Gamma symbol Γ.

A rather unique feature that comes with Julia is function composition, which is achieved by the operator (∘). For example, writing (sqrt ∘ *)(5, 2) will multiply two numbers, 5 and 2, and then find the square root of the result. Julia is also packed with external call support, and can link with a throng of languages including Python, Java, C++, and R. Python applications can call Julia through PyJulia, and R applications can call it through through its interface, JuliaCall.

Julia is versatile, which is the principal reason why it is so ahead in the game. It provides a wealth of tools and frameworks for deep learning, data visualization, and graphs, and capabilities for clustering, trees, and generalized linear models. Even with a seemingly infinite capacity for mathematical transformations, however, Julia is excellent for general programming, as users can write UIs, statically compile code (even though it is generally dynamic – types of variables aren’t known until runtime), and deploy it on a webserver.

Learning about coding will give you the tools to make a video game, but did you know playing games can teach you to code?

It’s true!

While some may simply contain stories inspired by the world of coding, others teach players how to code with problem solving, critical thinking, and of course fun. Ever since the 1984 release of Lee Kristofferson’s video game System 1500, coding students and enthusiasts alike have been playing video games that trade in hit combos for sequences.

Want to play a game that challenges your knowledge of coding? Here are 10 video games about coding that we recommend you check out.

10. Shenzhen I/O

In this 2016 video game you play as an electronics engineer who takes a new role in Shenzhen, China. Those who also enjoy the world of electronics should play this game since it doesn’t only incorporate assembly language but real-life circuitry as well.

9. Codehunt

Developed my Microsoft Research, CodeHunt challenges players to solve puzzles using both C# and Java.

8. Human Resource Machine

For a fun introduction to the world of programming, the Tomorrow Corporation’s 2017 game Human Resource Machine is the game for you. The game is also available to play on the Nintendo Switch. That’s right, you can practice coding on your Nintendo.

7. 7 Billion Humans

When you’ve finally mastered Human Resource Machine, you can move on to a tougher challenge. 7 Billion Humans contains even more levels than its predecessor and requires managing whole groups of workers as opposed to one at a time.

6. SpaceChem

A game that teaches chemistry and programming, SpaceChem puts you inside a reactor and requires players to create visual programs that keep reactors running smoothly. This is a pretty difficult game, Homer Simpson need not apply.

5. Vim Adventures

Who knew you could save the world with a text editor? But in Vim Adventures you do just that, all while learning Vim.

4. Hack ‘N’ Slash

Most video games don’t lay its pieces out on the table for players to mix, match, and customize. Hack ‘N’ Slash takes inspiration from The Legend of Zelda series but differs in the way it allows a player to change their character’s attributes by accessing the game’s source code.

3. Exapunks

In 2018, Zachtronics released a game set in the apocalyptic world of 1997, not our 1997 of course but an alternate one. Players must hack into computer systems to complete missions given to them by an unknown A.I. The game is so in-depth it allows players from all over to compete and even contains its own fictional news publication.

2. Tis-1000

Completing puzzles with coding can be difficult enough but add in a late 1970’s computer and you’ve got quite a game on your hands.

1. Hacker

While System 1500 paved the way for games about coding, it was Activision’s 1985 game Hacker that proved games about programming could hook all types of gamers. The story is something about of a 1980’s film, with secret servers, international incidents, and security breaches that keep players entertained as they work at solving complex puzzles.

The games listed above are available on a variety of platforms including the Nintendo Switch, PC (through Steam), or as open source software you can play for free. You can’t learn everything you need to know about coding from a video game, but they can test your abilities and make you better at solving problems, which only helps you get to the next level in life.

Think of your brain as a storage unit. While it grows with every day that passes, it still can only contain so much information at once. When you’re working on something difficult, a lot is required from your brain. So, while you’re struggling to figure out an error you made in a sequence, you don’t want to constantly shift your attention to the mess around you.

You can avoid the hassles of a messy workspace by practicing good habits and putting in place a routine that works for you.

Get started on cleaning your workspace with these seven simple workspace organization tips.

Ditch the Sticky Notes

Sticky notes are bright so they can catch our eye and remind us of something important. Their strength, unfortunately, is also their weakness.

Sticky notes can be distracting, especially when they’re piled one on top of the other around the edges of the screen, only after they’ve fallen for the fiftieth time and are covered in the dog’s hair and dirt — you get the point.

Most computers offer some sort of notepad for your desktop that allows you to constantly display reminders off to the side, no paper needed.

Keep Necessary Items Close

The things you use for most for work should never be far enough that you give yourself excuses to not put them away.

Get a Paper Shredder

Since we’re on the topic of paper, you should get yourself a paper shredder. You can get one for as low as $20 in most places and they really help you get rid of excess, unnecessary paper. Plus, it’s just really satisfying to shred paper, trust us.

Adopt Hobby Methods

The same methods that have kept baseball and Pokemon cards of the world in mint condition can also be used for your work or school materials. If you have any literature or things like documents, manuals, or reviews, they should be kept in some sort of plastic sleeve or folder at least.

Take Note of Your Snack’s Packaging

There are times when you’ll get hungry while working on something, and you should always have a snack nearby for this reason. Make sure the snacks you eat don’t have excessive packaging and that you don’t eat a bunch of small snacks with individual wrappers. Also, chocolate can get everywhere, which brings us to our next point…

Clean Your Screen

If you’re working on a project for work or school, constantly noticing dirt and smudge marks on your screen will get on your nerves after a while. If you have a tablet or a laptop with touch screen capabilities a dirty screen will seriously slow down your work. Your websites and coding creations will look much better on a clean screen.

Time to Delete

As a coder, the mess inside your computer is just as important as the area around it. Every week or so make it a habit to clean up your unnecessary files and empty out your Recycle Bin. This cleans up your computer, makes it run faster, and reduces the risks of viruses and malware.

With a clean workspace, you can focus on the task at hand and not worry about a slow computer or roaches using your keyboard as a labyrinth.

The moment you begin your journey into the world of coding, you learn that the computer you use is your best friend. Sure, it can act up sometimes, and the occasional bug or two might make life hard for you, but programming languages are nothing without the machines we need to talk to.

That’s why you should treat your computer with the same attention as you would a pet. You don’t have to walk it, of course, but you do need to keep it clean.

Cleaning your computer is easy, and we’ve provided a few hacks to help make it even easier.

1. Purging Files

Duplicate and unnecessary files can slow down your computer, which in turn, slows down your work. Instead of sifting through every single file looking for ones to delete, you should utilize a trusted file cleanup program or the Windows Disk Cleanup already installed on Windows OS.

2. Cleaning Your Keyboard

It’s all too common for people to chow down at their computer, and there’s really no issue unless it gets in the way of your work. There shouldn’t be crumbs so big that they’re making it impossible to press the “F” key on your keyboard.

Compressed air cans work best, but you can use a small fan or hair dryer as well. If you really want to get creative, you can put the end of a condiment bottle on top of a vacuum hose and get the crumbs out that way.

After removing the crumbs from your keyboard, it’s a good idea to clean the keys with a Q-tip and rubbing alcohol. If you don’t have rubbing alcohol you can also use mouthwash.

3. DIY Screen Cleaner

Keeping your screen clean will make it easier to see your work and prevents you from getting distracted by dark smudges. You could buy screen cleaner or just make your own using one-half white vinegar and one-half water.

4. Wipes That Won’t Scratch

Once you have your solution, you’ll want to use a something to wipes your screen that isn’t too coarse since that can leave scratches. A coffee filter or dryer sheet can get the job done.

5. Cleaning Your Mousepad

A dirty mousepad slows down your mouse and can get gross looking after a while. You can hand wash it with soap but there’s an even easier solution: throw it in with your laundry. As long as it’s washed in cold water and left to air dry it will be fine.

6. Cleaning a Laptop

Laptops are typically more fragile than desktop computers, so care should be taken to ensure their safety when cleaning them. Using nail polish remover works well for laptops with brightly colored surfaces. Magic Eraser sponges also work, but they should be used lightly and on laptops that have a more heavy-duty construction.

Remember to always unplug your desktops and monitors before you clean them to avoid any permanent damage to the devices. You don’t have to clean your computer every day, or even every week, but a good cleaning is necessary every so often.

Computers give coders the power to make their ideas and projects come to life. A clean computer is a happy one, and happy computers mean happy coders.