How I saved 120 hours and $600 on Xero with Python Automation and Zapier

Codomo Singapore

Money can’t buy you time, but Python can (for free).

xkcd comic on saving time

Let's cut to the chase:

Automation of forex conversion: Saved 20 hours

Not using the multi-currency feature in Xero: Saved $600 💰💰

Automating receipts attachments: 100 hours ⏰⏰⏰⏰⏰

Background Story:

I have been running a small preschool business in Jakarta, Indonesia for the past 5 years, and have been using Xero as my primary accounting tool. The main currency is Indonesia Rupiah, but I make several purchases through Singapore dollars from time to time as well. To handle this multi-currency, I have to subscribe to Xero’s most expensive package — which costs me $40/month.

Xero packages

I’ll let Steve Carell replay my reaction.

Here are my three objectives:

Objective 1: Convert 🇸🇬 SGD to 🇮🇩 IDR based on the exchange rate of the day of purchase

Objective 2: Lowest price possible (Hey, we’re running a business here) 💸

Objective 3: Attach receipts for every transaction in the quickest possible way 📌


OBJECTIVE 1: CONVERT SGD TO IDR USING THE EXCHANGE RATE OF THE DAY OF PURCHASE

Tool used: Python 3

Transactions tabulated on a spreadsheet

Time-wasting-soul-numbing way: For each transaction, I get the forex-of-the-day from any forex website, multiply that with the SGD to get the corresponding IDR. Assuming I take 1 minute for each row, it will take me 20 minutes for 20 transactions.

Quick Math:

1 min x 20 transactions x 12 months x 5 years = 1200 minutes (20 hours)

Using Python: I would rather spend the 20 hours watching the entire Harry Potter series, so I pulled up my Python script and started coding, which took me an hour to complete. I am not going to explain my code in too much detail here as it requires certain basic understanding of programming on your end. If you are a geek like me, you can find the full documentation and code here.

Python automation code

Basically, the flow of the code is simple.

  1. Get Forex information from European Central Bank
  2. Read the CSV file
  3. For every row, get the date to find the currency rate
  4. IDR = currency rate * SGD
  5. Save it > Import it to Xero (done!)

How long does it take? Well, let’s take a look at the following GIF:

It only took me 20 seconds! That’s 3 times faster than any Nas Daily video!

OBJECTIVE 2: LOWEST PRICE POSSIBLE

Now that I can convert multiple currencies by myself (I mean Python), I can use the $30/month subscription plan instead. This means I have saved $600 in the past 5 years time and counting.

Quick Math:

$10 x 12 months x 5 years = $600 (but still cannot buy an iPhone 11)

Xero packages

OBJECTIVE 3: ATTACH RECEIPTS FOR EVERY TRANSACTION IN THE QUICKEST WAY POSSIBLE

Tool used: Zapier

It’s always a good accounting practice to attach receipts for every transaction you’ve made, even if it pisses some people off in the organisation. However, searching for those receipts is still a pain in the ass.

FAQs that I have in my mind whenever I search for those receipts:

  1. Which email address was the receipt sent to? Was it to email1@gmail.com or email2@gmail.com?
  2. What?! I need to login to get my receipt?! Can’t you just attach it to the email?
  3. What’s the username and password for this account again?
  4. Where the hell should I click to get my receipt?
  5. Hold on.. is this receipt for this payment period or the previous one? Both have the same amount.

It took me about 5 to 10 minutes to find one single receipt. Let’s do the math again…

Quick Math of the best-case scenario:

5 minutes x 20 transactions x 12 months x 5 years = 100 hours

So I used Zapier to do this. Zapier is an incredible tool to automate things without Python. One downside: Zapier is a freemium software and it costs $20/month if your automation process requires more than 2 steps (but for the time it saves, I don’t mind 🤷‍♂)

This is how a typical workflow in my Zapier account looks like:

Zapier workflow

In plain English, these are the steps:

1. When I receive an email from my gmail

2. Only continue if the email’s subject head is <a_subject_head_that_you_need_to_figure_it_out>

3. Save the screenshot (technically the HTML) of the email and save it to a Google Drive folder.(Yes, saving the HTML is equivalent to saving the entire screenshot of the email view)

4. Locate that image in that Google Drive folder mentioned in step 3

5. Create a Bill in Xero that attaches the file mentioned in step 4

6. Move the file to an archive folder in Google Drive (Cleanliness is important ☝🏻)

Future Improvements

  1. If you are a programmer yourself, chances are, you would have probably noticed that I could have written a few lines of code that adds the converted currency directly to the CSV; there is no need to copy and paste it from the terminal. You’re absolutely right, I was being lazy at that time. 😅
  2. I’ll see if I can write a Python program to remove the reliance on Zapier. That’ll probably take a bit of work.

That’s it. That’s how I saved my money and time — the world’s most scarce resource.


Free stuff for you:

Now if you’ll excuse me, I’m going to watch the Chamber of Secrets.

Read more →

How To Improve Executive Functioning Skills Of Children With Games

Codomo Singapore
Playing These Games Can Actually Help Children Of All Ages Develop Some Great & Useful Skills

 

There has been lots of talk about something called "executive functioning" and how important it is. Take this 2019 Stanford-led study by Stanford Graduate School of Education Professor Jelena Obradović for example. The study identified what factors keep kids resilient.

According to Obradović, “We chose to study executive functions because they’re an important set of skills that promote adaptation and resilience. They’ve become a good marker for children’s capacities.”

Since everyone is talking about it now, you're probably wondering what executive functioning actually means.

What Is Executive Functioning

Even though it sounds like something related to a chief executive officer, it is not about being a CEO. Well, unless the company we are talking about is just you, making you your own CEO. The word executive refers to having the power to put plans into effect and it is a key part of what executive functioning stands for.

Here's the definition of executive functioning as per the most trusted resource out there (and certainly not the most prone to random people editing information online), Wikipedia:

Executive functions are a set of cognitive processes that are necessary for the cognitive control of behavior: selecting and successfully monitoring behaviors that facilitate the attainment of chosen goals.​

Executive functioning lets us be disciplined enough to work towards a certain goal without getting side-tracked. For example, if we were studying for a test and aiming for a grade A, we would make sure to have enough self-control and focus to keep studying instead of getting distracted.

When we break down executive functioning, we get some specific skills that Harvard highlights as "the mental processes that enable us to plan, focus attention, remember instructions, and juggle multiple tasks successfully". Namely skills like, planning, working memory, self-control, self-awareness, attention, flexibility, and drive. These skills build up the core of what helps us function effectively and progress in today's world.

Can you recall coming across any of the following situations?

  • Forcing yourself to get through a task even though you want to watch the latest new episode of your favorite show?
  • Listening to someone talk even though what they are saying is boring you to death?
  • Failing to do something but decided to try again?
  • Remembering a large amount of information without noting it down?

Well, guess what? These situations all rely on executive functioning!

We would all probably agree that this is a core capability, not just in the context of studies but for all the endeavors we have in life. So how do we develop it?

Would you believe me if I told you that playing games can help one improve their executive functions? Well you better, because they do!

Executive Functioning at Different Ages

Harvard published a list of activities and games that can positively impact someone's executive functioning. But the list is different for different age groups. We will be looking at three groups - 5 to 7 years old, 7 to 12 years old kids and adolescents.

These groups have very different focuses. Think back to when you were 7 years old, were your goals in life the same as when you became a teenager? Most probably not. Since our priorities keep shifting as we grow older, we need different approaches for each age group.

In order to decide what kind of games suit each age group, we need to understand what the focus for each age group is.

infographic on what skills children need to develop by different age groups

>Source: Potato Pirates

Even though there are overlaps in which skills matter for each age-group, there is a trend in terms of the kind of skills that are developed at each age. As we grow older, we learn how to improve ourselves and how to solve or adapt to problems. This prepares us for situations we will come across as we start making more independent decisions and interacting with more people.

In fact, Carol S. Dweck, Ph.D., one of the world’s leading researchers in the field of motivation and a Professor of Psychology at Stanford University, mentioned the importance of the right mindset in having a successful life. She mentions the power of a "Growth Mindset" and how one can get this mindset.

She is not the only one who thinks such a mindset leads to success. Countless academics and professionals have expressed why they think a growth mindset is better compared to a fixed mindset.

Take a look at this recreation of a graphic by brainpickings based on Dweck's book "Mindset: The New Psychology of Success" which highlights the differences between the two mindsets.

Infographic on the characteristics on 2 different mindsets, Fixed and Growth

>Source: Recreation of Infographic by Nigel Holmes on brainpickings

While a fixed mindset holds one back from learning and improving their skills, the growth mindset allows one to, like the name says, grow and learn from challenges.

It's easy, however, for one to claim that they already have a growth mindset or that their executive functioning is great. But here's the catch, if you think you already have all the skills you need, you are leaning towards the fixed mindset! Did that blow your mind? Of course, it did.

Games for Executive Functioning

A lot of people would assume that learning these skills would be a boring or tiring task but here's the thing, executive functions can be built on fun activities such as sports and learning music. Although we associate games with leisure or health, it can also be useful in teaching life skills and lessons, especially to kids.

That is why if you search up activities to teach kids executive functioning, you would find that there are quite a number of games mentioned.

Take the board game "Battleship" for example. The game allows for players to carefully plan and direct their attention to different areas of their map in order to prevent their ships from getting destroyed. It also lets them develop selective attention as they need to keep track of where the enemy ships might be located.

It is not just board games that teach skills either. Sports is another great way to develop certain skills. To find out what games are best for which skills, I have put together a list for you here arranged based on the three age groups we are looking at - 5 to 7 years old, 7 to 12 years old, and adolescents. The skills that the games teach are shown by the very cool spider diagrams.

Games for 5 to 7 Years Old  

At this age, a challenge can help children develop skills, so we choose games that are hard but not too difficult for each child.
Proportion of Selective Attention, Attention, Decision Making, Cognitive Flexibility and Inhibitory Control required for Battleships game
Battleship makes players think of and remember their opponent's set up, while simultaneously taking note of the new information coming in. Alongside this, they also need to pay attention to their opponent.

Concentration

Proportion of Selective Attention, Attention, Decision Making, Cognitive Flexibility and Inhibitory Control required for Concentration game
Concentration is a simple game that relies on memory as well as making choices as to which cards might match. The great part of this game is that it has such an easy framework that we can adapt it to be more educational as well. Take this great idea by 'education world' for example!

Rush Hour

Proportion of Selective Attention, Attention, Decision Making, Cognitive Flexibility and Inhibitory Control required for Rush Hour game

Left image Source: Wikipedia - Rush Hour (puzzle)

This ThinkFun game uses a lot of strategic thinking and cognitive flexibility. The idea behind it is simple - get the car out of the traffic jam. But the puzzles that the game provides really challenge players into thinking of different ways to solve them.

What Time Is It Mr Fox?

 Proportion of Selective Attention, Attention, Decision Making, Cognitive Flexibility and Inhibitory Control required for What Time Is It Mr Fox? game
Left image source: What Time Is It Mr. Fox? Game - YouTube
This classic game is not just fun to play for all ages but it also teaches some great skills. A major part of the game is counting while also having to pay attention to what time "Mr Fox" is trying to say. Players also have to decide on strategies such as when to take smaller steps and when to take longer steps.

Simon Says

 Proportion of Selective Attention, Attention, Decision Making, Cognitive Flexibility and Inhibitory Control required for Simon Says game
Left image source: Wikipedia - Simon Says
Who would have thought that Simon Says is a game that could teach us skills? Well, turns out that this is a great way to teach attention, inhibition and cognitive flexibility. That's not all - it can also be made educational! This activity uses Simon Says to teach kids coding.

Games for 7 to 12 Years Old  

At this age, we steadily increase the difficulty of games and activities.
Dungeons & Dragons
Proportion of Selective Attention, Attention, Decision Making, Cognitive Flexibility and Inhibitory Control required for Dungeons and Dragons game
Left image source: Polygon Looks like the kids from Stranger Things were onto something when they were playing some D&D. While this game might have been called nerdy or other names, it is a great way to improve working memory and quite a few other skills.

Potato Pirates

Proportion of Selective Attention, Attention, Decision Making, Cognitive Flexibility and Inhibitory Control required for Potato Pirates game
Board games can be very educational. Potato Pirates is able to teach coding concepts through a fun card game and these kind of games are great because they allow for players to strategize attacks while also having to pay attention to the other players' moves.  

Constellations

Proportion of Selective Attention, Attention, Decision Making, Cognitive Flexibility and Inhibitory Control required for Constellations game

Left image source: xtronaut
Did you know that Mensa awards board games every year that they think are original, challenging, and well-designed? In 2018, they picked 'Constellations' which is a game that requires players to solve puzzles and form constellations. This is a great game to not just learn about the stars but to also train players' cognitive flexibility.

Ghost In The GraveyardProportion of Selective Attention, Attention, Decision Making, Cognitive Flexibility and Inhibitory Control required for Ghost In The Graveyard game

Don't worry, it's not as spooky as it sounds. The game is a blend between hide-and-seek and tag. Overall, it is a fun yet great way to teach selective attention, monitoring, and inhibition.  

Laser Tag Proportion of Selective Attention, Attention, Decision Making, Cognitive Flexibility and Inhibitory Control required for Laser Tag game

Left image source: Lazgam Laser Games
Laser Tag is a lot of fun and very exciting for all ages, which is what makes it awesome. While having to stay alert, players are also forced to think of how to survive while simultaneously working alongside their team.
Adolescent

Chess

Proportion of Selective Attention, Attention, Decision Making, Cognitive Flexibility and Inhibitory Control required for Chess game
Chess is a classic board game and it is a great way to train players' planning through coming up with tactics to win as well as attention as they have to pay attention to their opponent's moves.

Raiders of the North SeaProportion of Selective Attention, Attention, Decision Making, Cognitive Flexibility and Inhibitory Control required for Raiders of the North Sea game

Left image source: Renegade Game Studios
Plundering may not sound like the best way to teach skills but this Mensa Select Winner is a really fun game that can improve planning and attention. Players can't just make moves but have to be careful how they plunder as well.

Imagine

Proportion of Selective Attention, Attention, Decision Making, Cognitive Flexibility and Inhibitory Control required for Imagine game
Left image source: Gamewright
Creativity is really important and 'Imagine' is a game that allows players to explore just that. With everyone having to come up with ideas and guess other players' ideas, this game is able to teach attention and problem-solving.
 
The Legend of Zelda: Skyward Sword
Proportion of Selective Attention, Attention, Decision Making, Cognitive Flexibility and Inhibitory Control required for The Legend of Zelda: Skyward Sword game
Left image source: Nintendo
Turns out video games aren't as bad as people make them out to be. 'Legend of Zelda' is a game that challenges selective attention, monitoring, working memory, and inhibition as players navigate through new surroundings while having to react quickly.   

Basketball

Proportion of Selective Attention, Attention, Decision Making, Cognitive Flexibility and Inhibitory Control required for Basketball game
Left image source: MN Girls' Basketball Hub
Sports is a great way to teach skills since it is fun but at the same time requires cooperation, decision-making, as well as quickly responding to situations during the game. Basketball is a fast-paced game that makes those playing develop a spirit of teamwork and improve attention.
Subscribe for more awesome content​.

 

Read more →

How To Bridge The Gender Gap In STEM

Codomo Singapore
Activities to get your girls started with their STEM journey


March marks Women's History Month and as such, we would like to dedicate a post to honour all the ladies and powerful females that have a significant impact on your life. This month not only celebrates women's achievements but also raises awareness against bias. The last 5 years have seen major changes in the tech space where powerhouses like Linda Liukas and Susan Wojcicki, some of the many famous women in tech emerged. These women have not only made their marks in tech but have also set the benchmark for female domination in years to come. They have also given women a voice and a platform in the industry to showcase their achievements.

According to computerscience.org, women now represent 47% of the workforce as compared to 38% in the early 1970s however, only 12% of engineers are females. Two-thirds of elementary-aged children indicate an interest in science, however as they enter middle school, the percentage of interested girls falls significantly. This is possibly due to the stereotype that tech is portrayed as being a "very geeky male" industry.

Research has shown that diverse teams tend to perform better and that individuals from different genders bring a different perspective to the table that can lead to more innovative solutions. Having some diversity in the thought process also leads to better problem-solving as a female's point of view increases the capability to understand the pain points of your target demographic. A study by Credit Suisse also shows that organisations with at least 1 female team member brought it a higher return on equity and net income growth in comparison to teams that only consisted of males. Computer Science is a growing field and one where women definitely cannot be left behind. This is why more needs to be done in terms of encouraging more female participation in the world of tech. Here's a great guide on the importance of empowering women in tech.

 

If women don’t participate in tech, with its massive prominence in our lives and society, we risk losing many of the economic, political and social gains we have made over the decades.

 

This quote by Susan Wojcicki, the CEO of YouTube, holds a great deal of power in saying that if females do not take the opportunity to participate in this technological shift that the world is going through, all the effort from the women in the past is going to go to waste. With technology holding such a prominent place in our lives, it is only essential that we grow along with it.

With the passing of International Women's Day, what better way could there be to highlight some of the amazing women in the industry and the success they have achieved. Aside from that, we would also like to provide some useful tips on how your little girls can kickstart their journey in the STEM world.

 

Hello Ruby, Ages 4-6

Hello Rube, a children's picture book about the world of computers, technology and programming.

Hello Ruby, written by Linda Luikas is children’s picture book about the world of computers, technology and programming. It now also has a range of apps, exercises, games and even curriculum for children aged 4-6. The platform's FREE exercises provide a great way for your child to introduce themselves to computational thinking concepts in a fun and engaging manner. This includes a combination of unplugged and on-screen activities. Here's how you can get started:

1. My First Computer

This unplugged activity is a great introductory step into the world of technology and computers. Through this exercise, kids will be able to design and personalise their very own computers. This helps them understand the different components that make a computer unit and realise that it consists of very small elements. In addition, they will also learn about personalization in terms of designing and creating their own types of computers in different ways, motor coordination and collaboration skills. Documenting the entire process would be great for reflection as well. You can check out the activity here.

2. Ruby With Scratch

Scratch is a block-based programming interface where kids can create stories, animations and games. With Ruby's downloadable sprite package, you can now add a Ruby twist to your creations! Scratch fosters creativity, systematic reasoning and collaboration amongst users. Definitely a great way to introduce your child to the online world of programming in a really fun and colourful manner. Get started with Scratch here.

littleBits, Ages 6-16

littleBits, a system of colourful electronic blocks for kids to experiment with circuit building

littleBits, founded by Ayah Bdeir, best described as electronic legos, is a system of colourful electronic blocks that snap together to turn ideas into inventions. This comprises of several circuit building kits designed for music lovers, families, coders and many more to encourage kids to invent, create and share anything.

1. 21st-Century Skills

A mind-map showing how the 21st Century Skills are all linked to computers and technology use

The kits are designed around real-world problem solving using technology by practicing collaboration, critical thinking, communication, and creativity which are amongst the top skills required in the 21st century. For example, the Energy Awareness Design Challenge helps kids understand the importance of conserving energy. Through this process, kids will be required to identify the ways energy could potentially be wasted in their daily lives and how they could use the kits to come up with a solution. One solution to this problem was to create a daylight reminder for people to conserve energy.

2. Design Thinking

the LittleBits invention cycle

Design Thinkingdefined by The Interactive Design Foundation, is an iterative process in which we seek to understand the user, challenge assumptions and redefine problems in an attempt to identify alternative strategies and solutions that might not be apparent with our initial level of understanding. littleBits requires kids to come up with solutions to real-world problems by implementing design solutions. Once they have come up with a prototype, they will be required to iterate on their design based on feedback provided. This is a key step in the Design Thinking methodology. Being able to come up with prototypes based on what users need helps them ideate and be extrinsically influenced without their own bias of what can and cannot be done. You could check out this guide on how littleBits was incorporated into a STEAM program in schools.

 

Adafruit, Ages 9 & above

Adafruit Industries - platform for learning electronics and designing Printing Circuit Board (PCB)

Adafruit Industries, founded by Limor Fried, is the most versatile online platform for learning electronics and making the best-designed products for makers of all ages. The platform covers a large variety of mechanics from designing a Printing Circuit Board (PCB) to printing, soldering and testing. The platform also launched its very own YouTube channel to teach and inspire inventors all over the world to create with thousands of open-sourced projects.

1. Circuit Playground Classic

This device is designed to be used with Arduino IDE and Code.org and is one of the best ways to learn to programme on real hardware without the hassle of soldering and sewing. Simply plug it into your computer and start coding! From beginners to experts, Circuit Playground has loads to offer. Begin the Arduino journey here.

2. Circuit Python

Circuit Python is a programming language designed to experiment and learn to programme on low-cost microcontroller boards. Python is one of the fastest growing programming languages and one of the easiest to read and understand if you're new to coding. It also has a built-in interpreter which simplifies the entire process. All you need is a computer, a USB cable and your microcontroller to get started.

What Can You Do To Encourage More Girls To Join Tech?

Women joining tech, teamwork, support, women in STEM

Start young

Expose your children to computational thinking games at an early age. Learning these concepts in a fun, engaging, and relevant manner might just be enough to spark their interest in the subject. Code.org and Computer Science Education Week provide great resources for them to get started.

Here are some great unplugged activities you could try with your kids:

1. Potato King Says If-Else [Ages 3-6]

This is a great way to introduce conditions in programming as well as a way to encourage parent-child communication through an activity. Conditional statements contain either true or false values. In the case of an If-Else statement, it will execute a block of code if true and it will execute another block of code if it is false. This is really similar to Simon Says and teaches kids logical thinking. You can download the activity here.

2. Real Life Algorithms [Ages 5-7]

An algorithm is really similar to a recipe. It gives instructions to your computer in order to solve a problem or reach a goal. This activity requires players to help each other make paper airplanes using algorithmic thinking. This helps kids come up with solutions based on clear definitions of the steps required in comparison to coming up with a single solution to a problem. You can check out the activity here.

3. Turing Tumble [Ages 8 & up]

Turing Tumble is a game built and powered by marbles to solve logic puzzles. It teaches kids the value of creativity and logic when it comes to figuring out how computers work. The game does not require any coding syntax to play, which makes it really simple to learn and is completely offline. Its endless puzzles to solve will definitely keep you and your kids busy for hours! You can find out more here.

Encourage a growth mindset

Having a growth mindset suggest that your skills and abilities are constantly changing and not pre-determined. Children with this mindset know and believe that they can achieve anything they want if they put their mind to it with dedication and hard work. This plays a key role in complex problem-solving at a later stage when learning computational thinking concepts. A growth mindset can be achieved through grit and resilience. Grit, championed by Angela Duckworth's research, is the motivational drive that keeps you going while going through a difficult task while resilience is the optimism to continue despite experiencing some roadblocks. This can be inculcated by adopting flexible thinking patterns which allow kids to be more flexible in their thought processes and by setting small goals that align with their purpose that results in a higher success rate and increases their speed of accomplishing goals.

Combat stereotypes on gender

We strongly believe girls should never be limited by the traditional takes on gender stereotypes. Encourage them to pursue what catches their attention and passion and refrain from saying certain toys or activities are meant for males. Try not to set any boundaries when it comes to their imagination to help them understand that the possibilities are endless. We are often unaware that we may be encouraging these type of stereotypes and realizing it is a great first step to give them the opportunities they deserve.

Teach the value of failure

This ties in along with inculcating a growth mindset to look at failure as a learning opportunity instead of a setback and can be done by focusing on the learning process; finding out where the mistake was made and what could have been done to prevent it. Failure is inevitable when learning something new; be it Computer Science or picking up a new skill. This is a crucial part of the learning process as it fosters persistence. Chances are no matter how well you have thought out a solution, it will almost never work the first time you try it and it is through this iteration of ideas, where kids really learn from their mistakes. The learning point is vital in the process as it helps kids develop the right mindset when approaching problems in the future.

The benefits of having more females in the tech space definitely cannot be contained in a single blog post, just thinking about what this diversity can do in reaching new levels of value creation is truly inspiring. Having such amazing role models in the space such as Reshma Saujani, Kimberly Bryant and Rebecca Kantar only means the younger generation of females have more relatable professionals to look up to. My Degree Guide, one of many initiatives out there, also has a great compilation of scholarships available for females in STEM, Business, Arts & Humanities, Medicine, Social Sciences, Teaching, and more to support and encourage females, regardless of their backgrounds to succeed. As an educational technology startup who is also passionate about making a change in the way children are educated, we too fully support and commit to the movement. Join in to change the way our kids learn.

Read more →

Fundamentals Of Binary You Need To Know

Codomo Singapore
Binary made really easy to understand for anyone

Binary at first glance can be very confusing. And why won't it be? A long string of ones and zeros isn't the easiest to decipher. But what if I told you that binary is actually really easy to understand, even for kids?

Importance of Binary

We have all probably heard by now how computer science is a really up-and-coming industry. Even The New York Times mentioned that the College Board had recently stated that coding is one of the 2 most important skills for young people to have today. Of course, it is debatable whether the College Board is right about it being one of the most crucial skills to have. But one thing is for certain, computer science is majorly increasing in demand. Hence, on that note, we need to start exposing more young people to computer science concepts.

However knowing how broad computer science is, it can be really hard to know where to start. That's why I decided to start making concise guides for topics in computer science, starting with binary. You may remember binary as the lines of ones and zeros that show up on a hacker's computer screen in a movie. Well, these ones and zeros are actually really important for a computer because without it, the computer won't be able to do anything.

Although we keep hearing people call computers smart, computers are actually limited by the fact that they can only differentiate between 2 different inputs, they understand true vs false, which is a Boolean logic. We will talk more about this in future guides. They also understand on vs off or one vs zero. Hence, the ones and zeros of the binary are actually what the computer uses to decipher information. Considering the dilemma of only being able to input 2 things into a computer, the binary system is a truly amazing creation.

The Birth of Binary

Every great creation has a story behind it, and even binary has quite an interesting history. I've created a short summary below.

Timeline and history of Binary used by humans

Timeline Made by Potato Pirates

 

 These are only a few of the historical events that brought binary to where it is today. Binary has been there for a very long time, but it wasn't until the 20th century that it finally started being used for computers. The Z1, for example, was the first programmable computer made during 1936-1938 by Konrad Zuse. The best part of this invention is that it was built in his parents' living room. I can't imagine what they were thinking about the gigantic computer in their house at that point in time, but many others like him made history with their different ideas for the first computers.

The Z1 Konrad Zuse - the first programmable computer made during 1936-1938

The Z1 by Konrad Zuse 

 

The Electronic Numerical Integrator And Computer, ENIAC for short, was invented by J. Presper Eckert and John Mauchly during 1943-1946 at the University of Pennsylvania. It was a huge machine, weighing about 50 tons. Luckily, thanks to the advancements in technology, our computers are getting lighter and lighter. Other than the size, the ENIAC was an excellent first computer because it was able to function fully.

The Electronic Numerical Integrator And Computer, ENIAC for short

The ENIAC

 

 

How Does Binary Work?

Now, let's get to the good part. What exactly do these ones and zeros mean, and how do we read them? This short and sweet video will explain to you all the basics of binary, getting you started on the road to becoming a binary genius.

 

 

So now that we know how to convert decimal to binary and how a computer gets these ones and zeros in the first place, the question on our minds is probably how do they form alphabets then? No matter what you do, it's impossible to get an alphabet from summation of numbers. And, you're not wrong.

This is why each alphabet is actually allocated a specific number. So in American Standard Code for Information Interchange (ASCII), for example, an uppercase A is 65, while a lowercase a is 97. Based on the context of the situation, the computer will either display letters or numbers.

Table for conversion from binary to ASCII

Table for conversion from binary to ASCII

 

For example, if I was trying to call someone on my phone, the numbers will not suddenly change to alphabets because the phone knows that in terms of the context, I only want numbers to show up. This is important since some of the binary numbers are the same for numbers and alphabets or other symbols.

Next week, we will explore more on what binary is used for, how to convert it to different systems like the hexadecimal system and it's different applications. Did you know that your images and videos are all made by binary as well? There are a lot of functions for these ones and zeros, so you can look forward to a lot more great content coming your way!

 

Read more →

Fundamentals of Binary You Need to Know - Part 2

Codomo Singapore
How binary is used for data representation and how to convert it to hex, ascii and unicode

 

 

In the previous guide we learnt that binary is a base 2 system and how the idea of it even came about. But have you ever looked at your computer screen and wondered, how does binary even let us type out words or play videos? I know I have.

Here are some good news, I have an explanation for this question. We know that computers think in binary so it is useful for us to understand what goes on behind the scenes when we input something into the computer. Which is why in this guide, we will explore how basic mathematical functions are carried out in binary, how to shorten binary code using hexadecimal, how our screens are able to display different colors, as well as binary conversion to ASCII and Unicode.

 

Addition & Subtraction In Binary

Here is a problem someone might face when looking at addition in binary for the first time. Since binary only has the numbers 1 and 0, what do we do when we add 1 with another 1. We can't write 2 right? Also, how do we subtract in binary if we can't have a negative sign? In this video, we will explain how these problems are solved.

 

Multiplication & Hexadecimal

After addition and subtraction, we need to know how to carry out multiplications in binary. It is actually pretty straightforward once you know how it is carried out. But other than mathematical functions, we have an issue with the length of binary code.

While the long strings of 1s and 0s carry crucial information, it takes up a lot of space. Using hexadecimal however, we can shorten the number of bits used by four times! This saves up a lot of space and this video explains how this conversion works.

 

Colors, Images & Videos

Have you ever wondered, how does a video play on the screen? We have all probably guessed by now that there are numerous tiny LEDs that allow different colors to appear on the screen but how do these LEDs show all these different colors?

Images are quite confusing as well. When we ask a computer to store images, there are no words or numbers on the image so how does it even convert it into binary? All these questions are answered in this video. But wait a second, how does this video get stored in terms of binary if it is not just a still image? Don't worry, we will answer that as well.

 

ASCII & Unicode
The world has a total of approximately 6500 spoken languages as of today but so far we have only explored binary representation for numbers. No one communicates in just numbers, we need to have binary representation for the different characters in different languages. Also, how can we forget the most widely spoken language? That's right, I am talking about good old emojis. These can also be represented by binary, the only question remaining is how? The answers to this lies in this video.
Now that we know about binary conversion, as well as how it is used in representing numbers, words, images and videos let's do a little quiz to see if you've mastered the art of binary. Feel free to challenge someone else to see who does better!

Read more →

What Is Computer Science And How To Make Kids Love It

Potato Pirates

Wondering how to start? Try our free assessment tool

As a student, I always wondered whether what I was learning in school was going to matter tomorrow. Will knowing about the deeper meaning behind “The Lord of The Flies” help me in any way in life? I haven’t had the privilege to be stuck on an Island with no adults at any point yet, so I wouldn’t count on it. There are, however, a few things I realized regarding what is going to matter in the future.

I have scoured the web and have some crucial news to share with you. Coding is in.

According to Code.org, more girls and underrepresented minorities are getting into computer science. Not only that, more than 800,000 teachers have taken steps to introduce coding into the classrooms. These numbers are truly inspiring, but you’re probably wondering, what exactly is the benefit of learning to code?         

Why Kids Need To Learn How To Code

Whenever we think about coding, most people picture a scene out of something like ‘Mission Impossible’, with someone hacking into a computer to get ‘Top Secret Data’. I can’t promise any grappling hooks or helicopters but coding is in reality everywhere around us. The apps on our phones, the games that we play, and even the blenders in our kitchens all use programming. Now if you travelled to a foreign country where people spoke a different language, you would try to learn and communicate. So why not look at programming the same way?

Many educators have realized the importance of coding as well and more K-12 schools are starting to offer Introduction to Computer Science modules to their students. There has been a huge 415% jump from 2010 to 2018 of students taking the Advanced Placement Computer Science exam. There has clearly been a spike in interest in learning computer science.

The future regarding employment for computer science majors also looks bright. Recent analysis of employment projections from the Bureau of Labour Statistics also shows that by 2024, 73% of STEM job growth will be in computer occupations. To add on to this already astounding number, a computer science major can earn up to 40% more than the average college graduate according research done by the Hamilton Project. Of course, exploring computer science is not easy. You have to start somewhere and have to know how to start.

Computer Science Fundamentals

Before we start exploring ideas for ways to start teaching coding, we need to at least understand what it is all about. Now we all love videos, they make it easy to understand ideas and visuals are very helpful when learning something complex. Hence, I have made a list of some short videos that explain certain concepts and can help give you a better idea of what these concepts are about.

Variables, Functions, Conditionals, Loops 

We have all probably heard of the YouTube channel Crash Course, and understandably so. They have a very informative series on computer science and this video does a great job explaining the different concepts. By using a game as an example, Crash Course has made it easier to understand variables, functions, loops and conditionals through showing what these statements do in terms of the video game.

They explain how a function can be looked at as a procedure and can be used to either return a value or perform an operation without returning any value. Meanwhile, a variable is a value that changes, depending on conditions in the program.

As for loops, the video shows that it works by using a condition and by counting through the number of repeats. Conditionals are explained as statements which perform different computations or actions depending on whether a Boolean condition evaluates to true or false. All-in-all, this video is not just educational, but very entertaining to watch as well. You can also learn these fundamental concepts through a fun and sociable manner with our very own Potato Pirates, the tastiest coding card game! And do stay tuned as the Potato Pirates team is developing more exciting games to cover all the other fundamentals concepts mentioned below.

Binary and Data Representation 

Binary is a key foundation in computer science and this video explains it very well. They use visual aid to show how binary numbers work and make it simpler to understand by using real-life examples. They answer questions such as how does binary represent different numbers and letters, and why it is such an important concept. 

It doesn't end there of course. They go on to share the uses of binary in images, videos and sounds. Isn't it interesting - how does a chain of 1s and 0s even become a picture, let alone a video? Well, after watching this video, these numbers will definitely start to make more sense.

Sorting Algorithms

All the different sorting algorithms can be very confusing but this video by Computerphile is able to make it more digestible by using cards to show how they work. They have a series of videos to explain algorithms such as merge sort, bubble sort and quick sort. For merge sort, they show how each of the two smaller lists are sorted, and then merged together. When merging, the smallest items in the two lists are compared first, and the smaller of the 2 is put into the merged list first. Then the same comparison repeats with the next items in line. This continues till the new merged list is formed. 

As for bubble sort, they show how sets of two cards are swapped in order to arrange the numbers in a line. This continues repeating till all are in order and no changes are made in a pass.

The quick sort algorithm is explained in a different video. They do a great job at explaining how it works considering how confusing quick sort can be to understand. The algorithm involves getting a random number from the line, and then arranging the remaining cards on either side based on whether they are bigger or smaller than the random card that was picked. The whole process then repeats on either side. It's confusing to just read what it is about, isn't it? Hence, the visual explanations in the video are very helpful in understanding what these algorithms are talking about.

Cryptography - Caeser Cipher 

Privacy is a big thing when it comes to computers and in order to protect this privacy, computers use a lot of different algorithms to keep data safe. One of these is the Caesar Cipher. There is some history to the Caesar Cipher and this video shares how and why it was used over the years. They also explain how it works, such is what is the key used for, how is the plain text encrypted and how it can then be decoded.

A.I. - Turing Test

How did the Turing Test come about? What is its purpose? TED Ed is able to explain how the test works and also shares some past cases where some computers passed the test, such as one that took the role of a psychiatrist, which highlighted some weaknesses in the test. It also explores different ways that AI communicate and learn. For example, 'Alice the Chatterbot' follows patterns that are in its program while Google's 'Cleverbot' is a robot that learns from conversing with humans. Overall, it is a very interesting topic and it raises a lot of questions such as what exactly defines intelligence?

Data Compression

Computerphile is able to explain the benefits of compression, and how it works for text and images in this video. A phrase or character that's repeatedly mentioned gets compressed into just storing the positions at which that same phrase/character is repeated. While for pictures, the colors can be stored based on how many of the same colors there are and where they are. They also explain concepts such as lossy and how JPEG works. The video also highlights the shortcomings of data compression. After all, nothing is perfect right?

Related: Fundamentals of Binary You Need to Know

Other Resources: The Beginner's Coding Guide

 

Learning To Code Offline

I know what you’re thinking and yes, it is actually possible. There are tons of games that are fun and engaging that can introduce coding to kids and do so with no screens attached. There is constant worry about children spending too much time in front of their screens, and there are reasons to be. Had I listened to my mother when she scolded me for using my phone for too long, I might have had 20/20 vision today.

These activities are all easy to set up and make learning computer science a whole lot of fun. To help you decide which one to pick, I have also added in which concepts each activity targets.

Read more →

How to design and create a card game?

Codomo Singapore1 comment
A detailed guide to getting you started on designing your own card game.

Read more →