You can improve logical thinking with programming activities that engage learners. Being logical is a trademark of programmers and is one of the most valued soft skills they can possess. Unlike hard skills which are technical abilities such as how to write code, soft skills are traits that describe a person’s work habits. They are important because they influence how a person approaches a task, solves problems, interacts with others, and resolves conflicts. Not only are soft skills beneficial in the workplace, but they are also valuable in daily life. This second article in the soft skills blog series is about designing programming activities that improve logical thinking.
7 Essential Soft Skills Every Programmer Needs
As mentioned in the previous blog post, programmers need to do more than write and debug code. In fact, their job is so diverse that aside from knowledge of programming, they need seven essential soft skills to be successful. These include:
- curious
- logical
- meticulous
- persistent
- creative
- team player
- communicator
Qualities of a Logical Thinker
Logical thinking is an important trait in a programmer. It is also referred to as analytical reasoning, abstract thinking, or critical thinking. People that can think logically are able to analyze problems and devise solutions. This is not only valuable when developing programs but is vital to any situation that requires rational thought. People who are logical:
- analyze information or resources related to a task
- carefully observe what is happening
- study information objectively to determine if it is relevant or true
- focus on facts not emotions
- develop solutions to problems based on facts
- outline ideas clearly by breaking them down into parts
- pay attention to details
- test the effectiveness of a solution and make revisions
Improve Logical Thinking with Programming Activities
Programming includes logic. In fact, logic is what allows a program to make decisions and perform calculations. It can trigger an action, repeat a series of steps, or end a process. The ability to write a program that can control output and manipulate data are the hard skills or mechanics of programming. A programmer must know how to apply logic to sequence code, write if and else statements, direct events using logical operators, and create formulas. This knowledge is essential.
However, the soft skills of logical thinking are different than the logic in physical code. When it comes to work habits and personality traits, being logical is how the programmer approaches the programming task. It is how they analyze data, form decisions, devise a plan, implement a solution, evaluate outcomes, and justify their actions. They do not go with their gut or respond to their emotions. Instead, they work towards a coded solution rationally. Being logical is a soft skill you can develop in your students with programming activities.
5 Ways to Develop Logical Thinking in a Programming Unit
A programming unit should not be comprised solely of copying lines of code to make a perfect program. That teaches keyboarding, not coding. Instead, student need to build original programs. This can be a challenge if they have limited knowledge of a programming language. However, by using this 5 step approach your students will not only develop the ability to independently write and edit code, but they will also become logical thinkers.
- Analyze the Problem
- Formulate a Plan
- Develop Code to Solve the Problem
- Evaluate the Solution and Revise the Code
- Justify Decisions
Analyze the Problem
Since the main objective of a programming unit is to have students develop original programs, the first step is to have them analyze the problem. They need to understand the programming task and program requirements. This is an active process that applies logical thinking. It includes gathering information, examining resources, and determining gaps in skills or knowledge. There are several teaching methods you can use to help students be logical.
Create an Authentic Programming Task
It is best to create an authentic programming task, as this makes learning meaningful. The problem could be designing an educational tool to learn math facts, helping a company perform a job duty, creating an informative website, animating a story for children, or entertaining teens with a fun game. Once this is established, have students read a description about the purpose of the program and the intended user. They should record important details about the function or features as this will shape the design of the completed program.
Demonstrate a Completed Program
Show students an example of the program they will be required to design. It does not need to be an exact replica, but it should include many of the requirements. This will build comprehension of the task. Students should carefully observe what is happening to notice the components, as this is one of the habits of a logical thinker. The demonstration can be done as part of a class discussion or as a video students watch independently.
Make a Code Connection
After the demonstration highlight key pieces of code that make it work. This can be done by highlighting lines of code in the program or by providing a table with relevant code snippets. This summary will allow students to focus on vital information for task completion, which is another habit of a logical thinker. It also enables them to make a connection between the output of a program and the mechanics that trigger each action.
Provide Practice Exercises
Once students have a firm understanding of the problem they need to analyze gaps in their skills. At this time, they may need to learn new code or review existing knowledge. You can provide simple practice exercises that have students build their skillset so that have enough information to develop a coded solution. Emphasize that although the assignments may seem boring in comparison to coding a game or designing a website, they provide the foundation for the next step – formulating a plan. After all, a logical person does not focus on emotions such as excitement or boredom, rather all their concentration is on task completion.
Formulate a Plan
Now that students have analyzed the problem they are ready to devise a solution. In this step, students brainstorm ideas and organize their thoughts into a plan. To save time, you may prefer to have students start coding right away. However, resist this urge. Formulating a plan demonstrates an in-depth understanding of the task. Moreover, this step provides an opportunity to identify students that may require assistance. For those that are struggling the good news is that logical thinking is teachable, especially when it relates to problem solving and programming. Below are three ways to support learners and develop this important soft skill.
Brainstorm Ideas
Brainstorming is a way to generate ideas for solving a problem. The focus of the assignment differs depending on the programming task. If it is game development, the ideas might be about the prizes, characters, or challenges. Whereas, if it is website design, the emphasis might be on topic ideas or content. No matter the program, have students record their ideas. Afterwards, they must study the options to select the best one(s). This is an ideal time to draw attention back to the purpose, audience, and requirements of the program. After all, a logical person pays attention to the details!
Planning Sheet
Another way to help learners formulate a plan is to provide a planning sheet related to program development. Questions guide students through their decision making. Each one targets a different element such as content, design, or code. This strategy is ideal for beginners that are new to programming and need assistance organizing their ideas.
Flowchart
Still another method to develop logical thinking is to build a flowchart that sequences each step in a program. The flowchart can be designed from scratch or it could be an existing outline that requires completion. Either approach helps students divide their ideas into parts and structure them into a tangible plan.
Develop Code to Solve the Problem
With a plan in place, students are now ready to code. In this step, hard skills such as knowledge of programming commands and syntax, are essential. However, logical thinking remains a priority. Students must pay attention to details to make sure the output matches the program requirements. Well-designed assessment tools can strengthen logical thinking.
Task List
Design a task list that divides program development into smaller manageable chunks. It may include dates for completion. Students can check off each item on their to-do list. Not only does this tool help with time management, it also monitors progress. Later as students improve their work habits, they will be able to apply logic to develop their own task lists.
Program Checklist
Provide students with a checklist that outlines program requirements. This could include design, content, functionality, or code specifications. This can be used to verify that each component is complete. Since logical thinkers are good at analysis it makes sense to promote this skill using a simple approach.
Marking Sheet
Another option that is ideal for improving logical thinking in older students is to provide the grading criteria. This could be a marking sheet or a rubric. Students can then compare their completed work to confirm it meets expectations. This is an excellent way to remove emotion from a task and practice being objective.
Evaluate the Solution and Revise the Code
The program is done. However, the programming task is not yet complete. This is because the solution needs to be reviewed to determine areas for improvement. This step is where logical thinking is a necessity. It is understandable to have an emotional attachment to a piece of work that has taken hours to create. People feel pride from their accomplishments and can sometimes become defensive when shortcomings are highlighted. When teaching a programming unit, you need to help students think logically not emotionally so that they can evaluate their work objectively. Below are activities that make testing code and soliciting feedback enjoyable.
Peer Review
Everyone wants to share their program with a friend. Who doesn’t want to play a game, view a website, or watch an animated story? Peer reviews are a great way to solicit feedback. After using the program, the peer can provide either verbal or written comments. If your students are younger, a question sheet is a great way to focus attention on different components and provide a framework for recommending improvements.
Game Test
A game test is an ideal way to develop logical thinking skills as it has a research focus. The students become researchers. During the game test, the researchers do not talk. Instead, they observe players, recording both their behavior and emotions. Later, they conduct an interview to identify like or dislikes. Afterwards, the researchers analyze the findings to identify how to improve the program.
Justify Decisions
The final step in a programming unit is to reflect upon the experience and justify decisions. To complete this task, student must present evidence that explains why the program is an acceptable solution. In addition, they need to highlight its strengths and weaknesses. At this time, recommendations for future development may be outlined. Two methods that facilitate logical thinking are a coding presentation and coding journal.
Coding Presentation
A coding presentation is a demonstration of the program. The audience can be a partner, small group, or the entire class. Typically, the presentation includes a description of the program, features that make it unique, and code snippets that control how it runs. Developing the content of the presentation requires a thorough analysis of the program. Students must think logically to summarize the design, content, and functionality. To support learners, a question sheet can help students organize their thoughts.
Coding Journal
A coding journal is a reflection about the programming unit. It can be a written entry. Alternatively, teachers can provide open-ended questions, rating scales, or checklists to help students think logically about the learning experience. It is valuable to include prompts about the design process or challenges. Reflection activities promote a logical way of thinking that students can transfer to other tasks.
Logical thinking is a valued trait in the workplace because it allows people to think rationally when making decisions. It is a soft skill that is an integral part of a programming unit. This is because logic is required to analyze a problem, formulate a plan, code a solution, evaluate the program, and justify decisions. By combining a variety of teaching strategies and a wide range of programming activities, students can improve their ability to think logically. This will help them write high-quality programs. More importantly, it is a transferrable skill to any situation that requires an objective decision maker who focuses on facts to solve problems. Prepare your students for the workplace by improving logical thinking with thoughtfully designed programming lessons.