Spark creativity with programming lessons that inspire students to develop original programs. You do not want everyone in the class coding the same cookie-cutter scripts. Instead, activities should allow a programmer to express their own ideas. This will make a coding unit more enjoyable and foster an interest in computer science. Moreover, this approach to designing a curriculum unit prepares students for their future careers. After all, creative expression is highly valued in the workplace. This fifth article in the soft skills blog series is about designing learning opportunities that inspire creativity when programming.
7 Essential Soft Skills Every Programmer Needs
A soft skill is different than a hard skill. A hard skill is a technical ability, such as the knowledge and skills required to write a program. These competencies are the focus when designing a programming unit. Teachers are drawn to learning objectives associated with developing code. Specifically, how to use strings, variables, conditionals, logical operators, and functions to build scripts. During the planning phase of a lesson, soft skills can be forgotten. However, they are an important part of training students to become programmers. In addition, soft skills are transferrable to other careers, school assignments, and daily life. For this reason, they are worth teaching.
Every programmer needs the following soft skills:
Creativity is the Catalyst to Everything New and Original
Creative expression is a sought-after skill in the workplace. It allows a person to use their imaginations to express original ideas. Creativity can be applied to discover new ways to complete a task, improve processes, or identify additional revenue streams. In terms of programming, it is instrumental in developing unique coded solutions. In other words, if a business wants a program that is inventive or innovative then they need a creative programmer!
The connection between creativity and a programmer’s job can easily be overlooked. This is likely because being creative is associated with artistic professions such as a graphic designer, photographer, musician, or interior decorator. In fact, when thinking about soft skills and programming, being logical immediately comes to mind. However, creativity should be high on the list of essential soft skills that every programmer needs. Ultimately, it is the catalyst to developing the next popular game, e-commerce site, trending phone app, or social media feature. Creative expression is where everything new begins.
A creative person:
- imagines what something could be
- thinks of new ideas or solutions
- invents original things or expresses unique thoughts
Spark Creativity with Programming Lessons for Beginners
Spark creativity with programming lessons specifically for beginners. Do not assume that creativity is inherent: either you are born with an imaginative mind or you are not. Instead, approach this soft skill as you would any hard skill. It is teachable. As such, design lessons that support creative thinking. This will allow your students to invent original programs – even if they have never coded before.
When students are new to programming they may not know what is possible. Often they do not have the framework for imaging what they can program. Below are three ideas that can spark students’ creativity and are ideal for beginners:
- Demonstrate a Program
- Provide Program Suggestions
- Explore Program Features and Commands
1. Demonstrate a Program to Help Students Envision Creative Possibilities
Creativity is a soft skill that allows a person to imagine what something could be. To support this way of thinking, show students a completed program. They can watch it run to notice the features. This is a great way to explore possibilities. The demonstration will help students envision what they can make.
DEMONSTRATION TIPS FOR YOUNGER STUDENTS:
If working with younger children, consider taking the demonstration one step further. Design a program as a class. In this scenario, the teacher builds the code and the students contribute ideas to the content. This activity not only teaches programming concepts, but it also encourages creative thinking.
DEMONSTRATION TIPS FOR OLDER STUDENTS:
If working with older children you should not provide them with the physical sample file. Instead of designing their own unique program, students may simply copy the code and modify it slightly before submitting the work as their own. To avoid this from happening, give a demonstration to the class using an overhead screen. Alternatively, screen capture the program running and then provide it to students as a video. Both ideas ignite the imagination, while eliminating the risk of students cutting corners when programming.
2. Provide Program Suggestions to Get Creativity Flowing
Another quality of a creative person is they think of new ideas or solutions. This ability can be a struggle if students lack knowledge. Beginners are often unfamiliar with an application, which can make it difficult to generate novel ideas. In this situation provide students with suggestions to jump start their creativity. They can select one of the programming ideas. Or the list may trigger a unique idea.
3. Explore Program Features and Commands to Understand Options
Yet another quality of a creative person is that they invent original things. This act requires a solid understanding of program features and commands. To support the creative process, provide opportunities for exploration. For example, if using Scratch to code games and animated scenes, encourage students to explore the background and sprite libraries. This will allow them to understand what is readily available when coding unique projects. Alternatively, if you are teaching text-based programming languages such as Python, have your students experiment with command values. This will give insight into the range of options available during program development.
Design Activities that Invite Creative Expression
As noted above, creativity must be paired with a solid understanding of programming concepts. While students shift from novice to expert there are several ways to invite creative expression. By allowing students to add their personal touches the program transforms into an original creation. Include each of these three options when designing a programming unit:
- Provide Creative Choices in a Practice Exercise
- Include Programming Challenges
- Design Open-Ended Tasks
1. Provide Creative Choices in a Practice Exercise
Creativity cannot be applied in absence of programming knowledge or skills. This is because even if students can imagine it often they do not know how to design it. To overcome this hurdle, students need practice exercises that introduce computer science concepts. This type of activity often includes step-by-step instructions with sample scripts that students copy. Even within this structured lesson there is room for creativity. Students can modify text, adjust a value, or reorder steps. These slight modifications give a program a personal touch. They are also a precursor towards more open-ended activities.
2. Include Programming Challenges
Once students have some foundation of basic programming skills they need to apply them in a practical way. The next step is to design a simple program that integrates their learning. The task might be an animated scene, puzzle, or game. These lessons are fairly structured as students need to learn how to build scripts and debug errors. However, when the task is complete, the creativity begins. At this point, everyone’s program looks relatively the same. Provide challenges that allow students to transfer their learning to modify or expand upon the code. It is best to include three levels of difficulty – easy, medium, and hard. This will differentiate instruction. Students can then pick one or a combination of challenges to personalize their work. When everyone is done, no one’s program should be the same.
3. Design Open-Ended Tasks
Now that students have solid understanding of how to build scripts to achieve a specific goal, they are ready for open-ended tasks. In this case, the requirements of the program is the same for every student. However, the design and content are unique. In some ways this is challenging for a teacher, as you cannot control what the overall program will look like. Instead, you only set how it must function. The students use their creativity to produce an original program.
For example, have students create a text-based adventure game that has players explore a strange land to earn coins and special objects. To complete the task every programmer must use the same elements. For example, they need to combine their knowledge of variables, functions, logical operators, loops, and conditionals to control game play. The parameters of the task results in everyone in the class having similar scripts. However, students choose the theme of the land, places for the player to visit, story narrative, and rewards. This results in one student creating a space adventure and another a medieval quest – using the same programming knowledge. Open-ended tasks are an excellent way to encourage creative expression.
Blend Creativity into a Programming Unit
Do you want to spark creativity with programming lessons? TechnoKids has technology projects with activities that teach coding skills with a strong emphasis on personal expression. Students express their creativity at the same time as they learn how to develop programs. Whether it is sequencing commands to create an animated scene in primary school, coding colorful spirographs in elementary school, developing a game with Scratch in middle school, or producing a text-based adventure quest in high school – programming is a creative endeavor. Discover how fun programming can be!
In TechnoWhiz students animate silly scenes, feed a pet monster, explore a magical land, invent a far away planet, and more. They learn how to sequence coding blocks to produce horizontal scripts using Scratch Jr.
In TechnoTurtle students produce colorful artwork and games using the Python Turtle library. They map coordinates and loop instructions to create line drawings and spirographs. Fun activities blend variables with creativity to design a Mad Lib and Carnival game.
In TechnoCode students design an Activity Studio full of one-of-a-kind creations. It includes games, puzzles, animations, art, and music. Using Scratch coding blocks they build scripts that control characters, trigger events, tally points, time events, and more!
In TechnoPython students develop original games using the Python programming language. They combine variables, logical operators, and conditional statements to produce Pet Monster Rescue, Guess It, and Adventure Quest. By completing challenges their programs become unique.
Spark creativity with programming!