Imagine: Build A Car

Image by Phalinn Ooi

One thing programmers do all day is imagine. When someone asks them to solve a problem with code, they start thinking and dreaming.

They imagine all the possible ways they could solve the problem. They imagine what else the code might do. They imagine what else might be needed to solve the problem. And they try to think about how different solutions might work not only today but also solve problems tomorrow.

The ability to imagine is a critical programming skill. You can practice this skill many ways.

For example, what if I asked you to build a car? What are some questions you would need to answer before you could build your car? Not only questions about shapes and colors, but also what you might need a car to do. For example, maybe your car also is a quiet place to study and get away from people. So your car might be big inside. Or small, cozy, and comfortable.

How many people need to fit into your car? What will you use for fuel? How about an engine, how would that work? If you built a two story car, like a two story house, would that meet your needs?

Or maybe your car simply gets you to school and back. You only need a frame, seats, wheels, a way to steer, and an engine.

Which raises another set of questions: what parts will your car need? Does your car need to go fast? And if you really want to be silly, could you turn a cow or your pet into a car? A cow (or pet) would give you your engine, frame, and wheels but how would you steer? And you’d need a place to store food so your animal could keep moving: where would food be stored?

If you have a pen or pencil and blank paper, write out and draw your questions and answers to define the problem of building your car. Think as deeply as you can about all the possible uses for your car, all possible problems you might encounter today and tomorrow with your car. Then work out solutions and test how well they solve the problems your car needs to solve.

The links below offer more ideas about how to imagine solutions to problems like building a car. There also are a few articles about how people design software programs.

Learn More

Design Thinking

Design Thinking for Educators

Design & Thinking (documentary)

IDEO Design Thinking Blog

How to Design a Computer Program

How to Become a Programmer: 8 Steps to Building an App from Scratch

Scroll down to see the full article.

Software Systems Development Life Cycle

Software Development Process


  • Tim Slavin

    Tim is an award-winning writer and technologist who enjoys teaching tech to non-technical people. He has many years experience with web sites and applications in business, technical, and creative roles. He and his wife have two kids, now teenagers, who are mad about video games.

Also In The October 2016 Issue

Virtual and augmented reality replace or add computing to our real world experience.

What would you build if you had 10 weeks and access to Microsoft HoloLens and HTC Vive equipment and developers?

With end of year holidays fast approaching, here are 35 of the more interesting ideas for holiday STEAM gifts that introduce STEAM concepts in fun ways.

If you work in a school or community library, or an after school group, STEAM events can be a way to offer technology events for kids.

A short history of virtual and augmented reality with lots of links to learn more.

One thing programmers do all day is imagine. When someone asks them to solve a problem with code, they start thinking and dreaming.

There are several key skills that I believe you need to have if you want to be a software programmer.

What makes a programmer lousy is a good way to identify what makes a programmer great.

Virtual reality has brought to the masses an old problem with flight simulators: what happens when our brain, ears, and eyes disagree?

The dots and lines used in graph theory can solve interesting problems.

Links from the bottom of all the October 2016 articles, collected in one place for you to print, share, or bookmark.

Interesting stories about computer science, software programming, and technology for October 2016.

Interested but not ready to subscribe? Sign-up for our free monthly email newsletter with curated site content and a new issue email announcement that we send every two months.

No, thanks!