Creativity in Computer Science - Ellipsis Education

⭐ Texas educators: our K-5 Tech Apps curriculum is a state-approved instructional material. Learn More.

Creativity in Computer Science

August 26, 2021

Sandy Dibble
Curriculum Development Specialist

Katie Baird
Content Marketing Specialist

Creativity isn’t just for artists; it’s for anyone. Let’s dive into the definition of creativity then explore examples and benefits of creative thinking in computer science.

What is Creativity?

First, let’s define creativity. Creativity is the ability to develop new ideas to solve problems and communicate with others. Those who are creative can turn imagination into reality; they are doers, not just thinkers. They can come up with ideas and implement them in their everyday life. Many times, people conflate being “creative” and being “artistic”. In reality, musicians, thespians, and artists are not the only ones who benefit from creativity. With our definition of creativity above, you can apply creativity in ANY career, hobby, or practice in your life.


According to Arne Dietrich, professor of cognitive neuroscience, there are four types of creativity. In the Psychonomic Bulletin & Review (2004), Dietrich established a quadrant system based on where creativity resides in the brain. Each square in the matrix reveals the different ways humans can be creative and gives an example.

  1. Deliberate and Cognitive: Combining existing knowledge in new ways. Much like Thomas Edison and the lightbulb, those who employ this type of creativity have a lot of knowledge about a particular topic and are curious to innovate.   
  2. Deliberate and Emotional: Generally comes out of personal, impactful moments. These instances of creativity help you realize something important about yourself or life.
  3. Spontaneous and Cognitive: Also known as the Eureka moment. Much like Greek scholar Archimedes, who allegedly shouted “Eureka” when a solution to a math problem came to him in the bath, this creativity is inspired and seemingly comes out of nowhere.
  4. Spontaneous and Emotional: Frequently associated with artists and musicians. They use a skill to create a powerful, moving moment.


Now that we’ve defined creativity, you may ask, why is creativity important? First, being creative helps us deal with uncertainty. It gives us confidence going into new situations, knowing you can solve problems. Next, it helps us see the big picture. When we are creative, we are not getting bogged down in details; we can take a step back and assess the larger situation. Finally, creativity encourages us to learn and interact with others.The more knowledge we share with one another, the more we can draw upon to develop new ideas.

To continue the discussion of ideas with your students, download a free lesson for K-2 called Idea Generation. In this unplugged activity, students learn different ways to communicate an idea and will practice generating ideas with a visualization activity.

Does computer science require creativity?

While most people do not immediately associate creativity with computer science, creativity skills are not only beneficial to developers, but oftentimes critical during the development process. When developers begin coding a program, they define the problem and imagine potential solutions. Unlike in math class where there may only be one correct answer to a problem, computer scientists benefit from endless possibilities and solution paths, where any solution is valid. This is where creative problem solving and originality come into play.

At first, developers may not know the path they will take to solve a problem. They experiment and put their thoughts and ideas into action using code as their medium just as writers begin by putting pen to paper to create something new. Then, they iterate and debug until they discover a solution that works. Once they have a workable program, they iterate some more to refine their creation, such as making the code more concise or improving readability. Hear about how a software engineer that develops the Halo video game series uses this process in her job.

Similar to how a painter might continuously fine-tune a piece of art or a writer might revise an article many times, a developer is always reworking their code and developing their own style. Learning to code requires developers to be creative, especially because they may be solving problems that have not been solved before.

Definition of Creativity in Education

As an educator, you already know the importance of giving students ownership of their work. This opens the door to endless creative possibilities, especially in computer science. Students are more proud of their work and feel a greater sense of accomplishment when they plan, design, and create a program themselves.  

This, however, does not come without challenges. The definition of creativity in education is deeply intertwined with failure. That is not a bad thing, though! As students are learning coding languages or computing concepts and applying them to new, creative ideas, things are bound to go wrong. Computer science opens the door for students to get creative with their problem solving skills. Teachers act as guides and advocates through this process, offering help and insights when appropriate. Here are three common challenges students may face when tackling a creative idea and strategies for how to help them overcome the obstacle:

  1. Writer’s block: This happens not only in language arts, but also in computer science! Students may encounter days where ideas aren’t flowing. A good way to combat this is to have students move on to a different section of code. After they get the opportunity to flex a different brain muscle, they can circle back to the original challenge. Ideas may flow more freely! 
  2. Endless Errors: Students may have days where it just seems like nothing is working. Every line of code has a bug, and they can’t figure out how to fix it. To find new strategies, students can turn to their fellow developers. The student next to them may have a debugging technique that will help.  
  3. Lack of Inspiration: Students may have days where they have no idea what they want to create. The inspiration isn’t coming from within. Luckily, the internet is full of helpful and talented developers that share some amazing resources. Github, Stack Overflow, and Codementor have plenty of open source projects that showcase programming strategies. Scratch also has community sharing features and a “Featured Projects” and “What the Community is Loving” sections where selected works are highlighted. These resources together inspire students to reach new heights.

Benefits of incorporating creativity into computer science curriculum

Regardless of the career students choose to pursue later in life, all students can benefit from understanding how technology works and how to harness it to create something original. A recent study performed by Dr. Shalini Kesar of Southern Utah University found that 91 percent of young girls in grades 5-12 identify as creative. Despite this, many young girls do not connect their career aspirations or interests to computer science.

By repositioning computer science as a tool for students to express themselves, more students will be able to see themselves as computer scientists and align coding with creating. Giving students the freedom and support to develop projects that fit their diverse passions, while incorporating CS fundamentals, can lead to increased self-confidence, independence, problem-solving, and other 21st century skills. Students are also more engaged when they can incorporate their unique interests and make choices about how to apply computer science concepts.You can help by integrating student-driven coding projects into your classroom and encouraging students to showcase their creativity. When we reframe coding as a creative process, we can reach more students who may not have connected with computer science. 

“More students will

be able to see

themselves as

computer scientists

and align coding

with creating.”

Examples of Creative Thinking Activities

Now that we’ve explored some different aspects of creativity in computer science, let’s dive into some examples of creative thinking activities. Ellipsis Education computer science curriculum provides open-ended projects for teachers that include many opportunities for self-expression.

Students have the opportunity to demonstrate their creativity in the lesson, “It’s a Goal” from Computer Science Fundamentals 3rd grade. In this lesson, students are challenged to program a character to move across the screen to score a goal. They are given the freedom to decide which sport and visuals to include in their project and how they will accomplish this task. While students may use similar methods and programming constructs, the end result is different for every student. An example project is pictured below. Download another free coding lesson for the grade band 3-5.

Scratch is developed by the Lifelong Kindergarten Group at the MIT Media Lab. See 

Let’s take a look at another lesson from Computer Science Applications JavaScript 7th Grade. This coding lesson is called, “Daily Schedule Maker.” In it, students explore and analyze possible solutions for a website that creates a daily schedule, and then develop their own solution. Afterwards, they compare websites to determine the best solution paths. There are endless possibilities for coding this project. While their end results (pictured below and shown here) look more or less the same, based on their experience and expertise, students may take very different paths to fulfill the project objectives. This lesson depicts another, more nuanced way that computer science requires creativity. Download a free JavaScript lesson from Ellipsis Education.

Creativity in Your Classroom

If you are interested in introducing computer science in your classroom, download a free lesson below. In Treasure Map Coordinates, students will code Scratchy to move across the stage using the coordinate plane. Create a foundation for students to use their creativity to build full games and stories using Scratch!

Related Links