What middle school students need to know about computer science and software engineering job

I got an opportunity to do a computer science workshop at Community Montessori School, Tampa. In this article, I will share what I taught about computer science and software engineering job to the 7 to 9th grade students.

How I prepared?

I did the workshop in multiple sessions.

I believe that if we can get kids excited and inspired, they will learn anything.

So for the first session, I designed content to make them curious about computers, and to enlighten them on fascinating things about software engineering job and future of computer science.

In the second session I introduced them algorithms and in the third session I taught programming using python. This would help them go through the complete process of figuring out a algorithm for the problem and then writing a program for it.

This article only covers the first session of the presentation. You can read about second session and third session in follow up articles.

Presentation

I used lot of pictures and analogies to make them easily understand the concepts. I found awesome presentation tool gitpitch to create my slides.

To make presentation engaging, I asked quizzes. Quizzes also helped me to check their understanding and increased their confidence as there were able to answer it correctly. I used slide fragment feature to show just the questions, waited for student’s response and then revealed the answers.

The slides are embedded below.

Presentation Slides

Transcript

Here is the complete transcript of the talk.

Are Computers Smart?

Computers are really stupid. But it is very fast.
Humans are smart, but slow.

Computers can tirelessly do repetitive tasks whereas humans will get exhausted .

In fact, the hardware inside the computer doesn’t know anything other than 0’s and 1’s. All the videos, music and textual information you see in computers are stored as just 0’s and 1’s.

Why the Digital World has only 0 & 1 ?

All the hardware is made from wonderful semiconductor material silicon.

It can easily change state between stop conducting ( 0 ) and start conducting ( 1 ) electricity through them.

Silicon is used to make a tiny device called transistor which stores one bit of 0 or 1 — referred as binary.

What’s inside Computers?

Computers are made of billions of tiny transistors which can be programmed to flip states between 0 and 1 using electrical signals.

Just like billions of neurons fire in our Human brain based on visual, auditory or sensory signal, Transistors inside computers switches states depending on input signals.

Why computes is a Genius Invention?

It will be super expensive, if we had to build a new computer for every different thing we want to do. Instead, we invented a general purpose computer containing a assembly of transistors that can do different things, depending on which transistors are switched on and off.

Quiz: Say True or False

  1. Computers can understand only English — false
  2. Computers could do anything from adding two numbers to flying an airplane — true

What is a Computer?

Computer is a electronic machine that can be programmed to do zillions of different tasks.

Components of a Computer

A computer CPU has two major components, the processor which does all the computational work and the memory which stores all the information. Processor is like a heart in our human body which keeps beating all the time and memory is like our brain that remembers everything.

Input devices are used to feed information to computer and output devices help computers to communicate back to us. Eyes and Ears in our body are examples of input devices as they take in visual and auditory information. Our hands and legs are like output devices since they can produce actions based on input.

Can you tell some examples Input and Output devices?

Can same device be used for both Input and Output?

Like our mouth for example it can take food in and as well used to speak information out.

Yes! A touch screen is good example of same device used as input and output. That’s whey touch screen devices are very easy to use.

What Does GB or MB Mean in Phone or Computers?

Bytes or Gigabytes is unit for measuring memory just like pounds for weight, ounces for liquid etc.

Quiz: Say True or False

Computers can do everything by itself — False.

How Do you tell Computers to do something?

We need to provide a sequence of instructions telling a computer to what to do which is called as Algorithms

Example Algorithm to tell if temperature is Below or Above the Freezing Point.

How Transistors Execute Algorithms?

Transistors are combined to create logic gates that can perform logical operations like AND, OR, NOT.

Every algorithm, no matter how complex, can be reduced to just these three operations: AND, OR, and NOT.

Algorithm logic gates example — if a fever can be caused by influenza or malaria, and you should take Tylenol for a fever and a headache.

Algorithms can solve complex problems

Algorithms can be combined together to solve complex problems.

Just like simple mathematical operations are combined to produce complex mathematical formulas.

Algorithms fly the airplanes, forecast weather, play games, tell us driving directions and so on.

Quiz: Match Profession to Work

Answers: Match Profession to Work

What is Programming?

Programming is the act of taking complicated human ideas and breaking them down into simple algorithms that computers can understand and follow.

A Programmer creates algorithms and codes them up in human friendly language like Java or Python.

What is Software?

Software is collection of programs that are written in language humans can understand and then they are converted into binary that computers can execute them.

Software run every device — computers, smart phones, XBox, Billing Machines

Quiz: Say True or False

Without Software the hardware devices would be idle — true.

Why Software Industry is at Rise Today?

Six decades into the computer revolution, four decades since the invention of the microprocessor, and two decades into the rise of the modern Internet, all of the technology required to transform industries through software finally works and can be widely delivered at global scale.

Every industry is Revolutionized by Software

Quiz: Say True or False

If you learn programming, you can apply the skills in any domain you choose. — True

Why Being A Software Developer is Great?

Drives Creativity and Innovation

It’s very creative profession as much like a musician or a painter.

Programming is fundamentally about creating solutions to problems.

Make People’s Life Better

You will solve problems to make people’s life better.

For eg. It was very frustrating and also expensive to book a taxi cab for a ride. Uber made it easy using software solution. So now using Uber is not only easier, its even cheaper to use Uber than owning a car in some cities like SFO.

Impact Millions of People quickly

Telephone took 75 years, Internet took 4 years, however Angry Birds took only days! to reach 50 Million users.

Collaborative

Software engineering is a team sport and you work together to build amazing things.

Future Proof

As per US-BLS projections, computing will be the safest STEM career options for the foreseeable future.

Pays Well

Because of high demand, Software engineers are paid well.

Software engineers can create lot of value with no cost of raw materials.

All you need is your time and a computer.

Work from Anywhere

With the internet, you can literally work from any where in the world.

Quiz: Which one of these a Software Engineer Doesn’t Do?

a. Makes people’s life better.

b. Solves complex problems.

c. Sells computers to customers.

d. Works together in a team.

Answer: c

What Traits should I have to become Software Engineer?

Software Engineering is not for every one, you should have some specific traits or mindset to be a good software engineer. Here are some:

Love Making things for Other People to Use

You Feel happy when people use the product you created

Enjoy Solving Puzzles

You are passionate about solving complex problems.

I love the process of getting from a unknown state of a problem to a final solution. The Ah-ha moment I get while figuring out a solution to a problem is what keeps me working.

Like Experimenting and Research

You won’t always get it working in first try. You will try something, if it doesn’t work you have to scratch that off and try different approach. So you should love experimenting

All the information to solve your problem won’t be in front of you. You search the web, read the documentation, refer the books to come up with a solution. So you should like doing research.

You want to make things easier in life

Microsoft’s founder Bill Gates said

He would always “hire a lazy person to do a difficult job” . Because A lazy person will find an easy way to do it.

If you hate doing boring or mundane tasks and can come up with smart solutions to make things easier, you will be welcomed in Software Industry.

You Have Interest in Both Arts and Engineering

Software engineering utilizes right mix of both Artistic and Engineering skills.

Writing a program is an art like writing a poem at the same time it needs applying logical skills to solve the problem. Like in Poem you have to adhere to the constraints of language like grammar, vocabulary, you have to conform to the constraints of programming language in programming.

According to Steve Jobs:

The greatest innovations come from the intersection of technology and arts.

To emphasize this, Steve Jobs during his product launches would conclude with a slide, projected on the screen behind him, of street signs showing the intersection of the Liberal Arts and Technology.

You are a curious learner

Last but not the least, You need to continuously learn new things and keep up ever changing technology.

Quiz: Say True or False

A Software engineer can stop learning after college. — False

Learning Arts will help in Software engineering job. — True

What’s Fascinating about computers Today?

Before first industrial revolution, Humans had to do everything manually and solely rely their physical strength. After invention of steam, first industrial revolution helped us automate difficult jobs. Still working with and distributing steam is hard. After invention of Electricity, the second industrial revolution simplified lot of the laborious work.

After invention of computers, the third industrial revolution automated lot of the work and made most of the things possible with click of the button. Now we are going through forth industrial revolution in which we are heading towards making machines to learn and creating artificial intelligent systems.

What is Machine learning?

Machine learning makes computers to learn skills that humans can’t explain.

It figures out Algorithm by analyzing large set of sample data.

With machine learning, computers write their own programs, so we don’t have to.

Difference Between Traditional Programming and Machine learning

We can think of machine learning as inverse of programming just like Square root is inverse of Square.

Quiz: Say True or False

Can Computer learn human skills? — True

Applications of Machine Learning

Computers have learned to recognize our face, our voice, handwriting , etc.

AutoDraw uses the magic of machine learning with drawings from talented artists to help everyone create anything visual, fast.

( I demoed AutoDraw to show how I can easily draw hard pictures, It was fun)

Robots are Becoming our Assistants

iRobot can find it’s way through your home and clean. It is smart enough to sense the surroundings for eg. it doesn’t fall when it finds stairs.

Siri , Alexa, Google Now are able to answer our questions just like humans.

Computers beat world chess champion

IBM’s Chess computer Deep Blue beat world Chess Champion Garry Kasparov in 1997. So we are able to program computers to beat us!

AlphaGo Beats World Go Champion Lee Sedol

Programming chess is easy because it’s completely based on logic. But Go is very complex game as it need to learn millions of board positions. It won’t be possible without machine learning.

The Supercomputer IBM Watson

Watson won the first prize against former winners Brad Rutter and Ken Jennings in Jeopardy TV contest

Watson can understand human’s natural language and answer questions.

Watson has got all the knowledge of encyclopedias, dictionaries, newswire articles, and literary works.

Watson can process about million books, per second.

How will future look like?

Self driving cars will become common on the road.

Bots will become part of our daily life.

All devices around us will be a smart device like smart phones.

You will be helped by Chat Bots and Virtual assistants on the internet.

We will able to cure deadly diseases like Cancer using Machine learning.

Math Trick to Teach binary numbers

I wanted to end the session with a fun game. So I played a mind reading game based on binary numbers. I wrote about the game in my personal blog.

Credits

Here are links to articles that helped me to prepare this presentation.

The Master Algorithm: How the Quest for the Ultimate Learning Machine will Remake our world