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
http://www.forbes.com/2010/01/14/tim-brown-ideo-leadership-managing-design.html
http://designthinkingmovie.com/
http://designthinking.ideo.com/?p=409
https://en.wikipedia.org/wiki/Design_thinking
http://www.creativityatwork.com/design-thinking-strategy-for-innovation/
Design Thinking for Educators
http://www.designthinkingforeducators.com/
Design & Thinking (documentary)
http://designthinkingmovie.com/
https://www.youtube.com/watch?v=uilcaXYnluU
IDEO Design Thinking Blog
http://designthinking.ideo.com/
How to Design a Computer Program
http://www.yacoset.com/Home/how-to-design-a-computer-program
http://www.yacoset.com/Home/your-first-programming-assignment
How to Become a Programmer: 8 Steps to Building an App from Scratch
Scroll down to see the full article.
https://www.codementor.io/learn-programming/how-to-build-app-from-scratch-beginner-programmer
Software Systems Development Life Cycle
https://en.m.wikipedia.org/wiki/Systems_development_life_cycle
Software Development Process
https://en.m.wikipedia.org/wiki/Software_development_process
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?

If clouds are not digital, what is cloud computing?

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?

Why would a musician learn to code?

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.