Pilot - U1L02 - The Problem Solving Process

I am including the slide deck I used to help deliver the lesson

I prepared the lesson as recommended by the plans but very shortly into the lesson I changed gears and modified it because it was clear that I was losing student interest.

Modifications: Students seemed unmotivated by the information because it was something that they were familiar with because it is late in the year)… I decided to instead ask them to compare the model for problem solving being presented with any other system they could find and document.

Students were asked to present an artifact comparing them and create hypothesis of why there were differences between them.

Here is a sample project https://goo.gl/Q2Tq1f

The discussions were very insightful particularly when students were discussing the value of simple models vs. more complete or complex models.

Notes: Even though the lesson did not go well as originally planed I am aware of how important it is and I am sure that when I do it again at the beginning of the year it will run much better.

I am teaching six classes, three seventh grade and three eighth grade. The classes are one hour in length and meet every other day. They have had computer classes every year since first grade, but they have not done any computer science other than “hour of code” type activities. Each student has a computer to use during class. They are keeping journals, grade seven on line, grade eight on paper. I am doing this to see which method gets more meaningful results. I followed this lesson pretty closely using a slide presentation as a guide. User “spear” posted a very helpful slide show on this forum.

I think the lesson went well, but it took longer than I thought. I had the students answer a journal prompt at the beginning. Prompt: We use the term “problem” to refer to lots of different situations. I could say I have a problem for homework, a problem with my brother, and a problem with my car, and all three mean very different things. In your journal, I want you to brainstorm as many different kinds of problems as you can and be ready to share with the class. Next they shared examples and I wrote them on the board and we created categories and placed the problems into the created categories. This led to the idea of having a strategy and the activity guide. We did all activities in the guide and shared some responses. In the next class instead of making posters. I gave each group 8 sticky notes and wrote the four steps on the board. I then asked them to write two strategies for each step and post them in the appropriate place on the board. We read what was written and I consolidated the responses in a document. I will post this in the classroom. Strategies I think this lesson went well. It was straightforward. Students seem to understand the four steps and the importance of having a strategy to solve problems. I think the journal entry helped them brainstorm problem types.

Once again thanks everyone for the awesome feedback and sharing your resources! Its great to see that some people are using the resources others have shared!

I teach at a high school in SLC, Utah. My class is very diverse in that we have multiple languages in the class, English is not the native language of 95% of my students, I have pretty close to 50/50 boy, girl ratio and the class is a good representation of students from the entire school ranging from grades 9-12. Our class period is 90 minutes every other day.

Things that went well: The activity guide did a great job of helping students organize their thoughts with the 4 steps. It also gave students the chance to see that the process can work forwards and backwards.

Things to reflect on: It took some brain storming for students to come up with things they are good at. Perhaps have them think about the prompt the previous day so they can talk with a friend or family member about it.

I was gone the 2nd half of the lesson where the were to find a classmate to solve a problem with, so this part of the activity was a little tricky because the students are new to the course and haven’t built strong relationships yet to feel completely safe sharing what they are/are not good at.

Related Topics

What Is Problem Solving? How Software Engineers Approach Complex Challenges

Ebook: How to Build a Tech Talent Brand: The Definitive Guide

From debugging an existing system to designing an entirely new software application, a day in the life of a software engineer is filled with various challenges and complexities. The one skill that glues these disparate tasks together and makes them manageable? Problem solving . 

Throughout this blog post, we’ll explore why problem-solving skills are so critical for software engineers, delve into the techniques they use to address complex challenges, and discuss how hiring managers can identify these skills during the hiring process. 

What Is Problem Solving?

But what exactly is problem solving in the context of software engineering? How does it work, and why is it so important?

Problem solving, in the simplest terms, is the process of identifying a problem, analyzing it, and finding the most effective solution to overcome it. For software engineers, this process is deeply embedded in their daily workflow. It could be something as simple as figuring out why a piece of code isn’t working as expected, or something as complex as designing the architecture for a new software system. 

In a world where technology is evolving at a blistering pace, the complexity and volume of problems that software engineers face are also growing. As such, the ability to tackle these issues head-on and find innovative solutions is not only a handy skill — it’s a necessity. 

The Importance of Problem-Solving Skills for Software Engineers

Problem-solving isn’t just another ability that software engineers pull out of their toolkits when they encounter a bug or a system failure. It’s a constant, ongoing process that’s intrinsic to every aspect of their work. Let’s break down why this skill is so critical.

Driving Development Forward

Without problem solving, software development would hit a standstill. Every new feature, every optimization, and every bug fix is a problem that needs solving. Whether it’s a performance issue that needs diagnosing or a user interface that needs improving, the capacity to tackle and solve these problems is what keeps the wheels of development turning.

It’s estimated that 60% of software development lifecycle costs are related to maintenance tasks, including debugging and problem solving. This highlights how pivotal this skill is to the everyday functioning and advancement of software systems.

Innovation and Optimization

The importance of problem solving isn’t confined to reactive scenarios; it also plays a major role in proactive, innovative initiatives . Software engineers often need to think outside the box to come up with creative solutions, whether it’s optimizing an algorithm to run faster or designing a new feature to meet customer needs. These are all forms of problem solving.

Consider the development of the modern smartphone. It wasn’t born out of a pre-existing issue but was a solution to a problem people didn’t realize they had — a device that combined communication, entertainment, and productivity into one handheld tool.

Increasing Efficiency and Productivity

Good problem-solving skills can save a lot of time and resources. Effective problem-solvers are adept at dissecting an issue to understand its root cause, thus reducing the time spent on trial and error. This efficiency means projects move faster, releases happen sooner, and businesses stay ahead of their competition.

Improving Software Quality

Problem solving also plays a significant role in enhancing the quality of the end product. By tackling the root causes of bugs and system failures, software engineers can deliver reliable, high-performing software. This is critical because, according to the Consortium for Information and Software Quality, poor quality software in the U.S. in 2022 cost at least $2.41 trillion in operational issues, wasted developer time, and other related problems.

Problem-Solving Techniques in Software Engineering

So how do software engineers go about tackling these complex challenges? Let’s explore some of the key problem-solving techniques, theories, and processes they commonly use.

Decomposition

Breaking down a problem into smaller, manageable parts is one of the first steps in the problem-solving process. It’s like dealing with a complicated puzzle. You don’t try to solve it all at once. Instead, you separate the pieces, group them based on similarities, and then start working on the smaller sets. This method allows software engineers to handle complex issues without being overwhelmed and makes it easier to identify where things might be going wrong.

Abstraction

In the realm of software engineering, abstraction means focusing on the necessary information only and ignoring irrelevant details. It is a way of simplifying complex systems to make them easier to understand and manage. For instance, a software engineer might ignore the details of how a database works to focus on the information it holds and how to retrieve or modify that information.

Algorithmic Thinking

At its core, software engineering is about creating algorithms — step-by-step procedures to solve a problem or accomplish a goal. Algorithmic thinking involves conceiving and expressing these procedures clearly and accurately and viewing every problem through an algorithmic lens. A well-designed algorithm not only solves the problem at hand but also does so efficiently, saving computational resources.

Parallel Thinking

Parallel thinking is a structured process where team members think in the same direction at the same time, allowing for more organized discussion and collaboration. It’s an approach popularized by Edward de Bono with the “ Six Thinking Hats ” technique, where each “hat” represents a different style of thinking.

In the context of software engineering, parallel thinking can be highly effective for problem solving. For instance, when dealing with a complex issue, the team can use the “White Hat” to focus solely on the data and facts about the problem, then the “Black Hat” to consider potential problems with a proposed solution, and so on. This structured approach can lead to more comprehensive analysis and more effective solutions, and it ensures that everyone’s perspectives are considered.

This is the process of identifying and fixing errors in code . Debugging involves carefully reviewing the code, reproducing and analyzing the error, and then making necessary modifications to rectify the problem. It’s a key part of maintaining and improving software quality.

Testing and Validation

Testing is an essential part of problem solving in software engineering. Engineers use a variety of tests to verify that their code works as expected and to uncover any potential issues. These range from unit tests that check individual components of the code to integration tests that ensure the pieces work well together. Validation, on the other hand, ensures that the solution not only works but also fulfills the intended requirements and objectives.

Explore verified tech roles & skills.

The definitive directory of tech roles, backed by machine learning and skills intelligence.

Explore all roles

Evaluating Problem-Solving Skills

We’ve examined the importance of problem-solving in the work of a software engineer and explored various techniques software engineers employ to approach complex challenges. Now, let’s delve into how hiring teams can identify and evaluate problem-solving skills during the hiring process.

Recognizing Problem-Solving Skills in Candidates

How can you tell if a candidate is a good problem solver? Look for these indicators:

  • Previous Experience: A history of dealing with complex, challenging projects is often a good sign. Ask the candidate to discuss a difficult problem they faced in a previous role and how they solved it.
  • Problem-Solving Questions: During interviews, pose hypothetical scenarios or present real problems your company has faced. Ask candidates to explain how they would tackle these issues. You’re not just looking for a correct solution but the thought process that led them there.
  • Technical Tests: Coding challenges and other technical tests can provide insight into a candidate’s problem-solving abilities. Consider leveraging a platform for assessing these skills in a realistic, job-related context.

Assessing Problem-Solving Skills

Once you’ve identified potential problem solvers, here are a few ways you can assess their skills:

  • Solution Effectiveness: Did the candidate solve the problem? How efficient and effective is their solution?
  • Approach and Process: Go beyond whether or not they solved the problem and examine how they arrived at their solution. Did they break the problem down into manageable parts? Did they consider different perspectives and possibilities?
  • Communication: A good problem solver can explain their thought process clearly. Can the candidate effectively communicate how they arrived at their solution and why they chose it?
  • Adaptability: Problem-solving often involves a degree of trial and error. How does the candidate handle roadblocks? Do they adapt their approach based on new information or feedback?

Hiring managers play a crucial role in identifying and fostering problem-solving skills within their teams. By focusing on these abilities during the hiring process, companies can build teams that are more capable, innovative, and resilient.

Key Takeaways

As you can see, problem solving plays a pivotal role in software engineering. Far from being an occasional requirement, it is the lifeblood that drives development forward, catalyzes innovation, and delivers of quality software. 

By leveraging problem-solving techniques, software engineers employ a powerful suite of strategies to overcome complex challenges. But mastering these techniques isn’t simple feat. It requires a learning mindset, regular practice, collaboration, reflective thinking, resilience, and a commitment to staying updated with industry trends. 

For hiring managers and team leads, recognizing these skills and fostering a culture that values and nurtures problem solving is key. It’s this emphasis on problem solving that can differentiate an average team from a high-performing one and an ordinary product from an industry-leading one.

At the end of the day, software engineering is fundamentally about solving problems — problems that matter to businesses, to users, and to the wider society. And it’s the proficient problem solvers who stand at the forefront of this dynamic field, turning challenges into opportunities, and ideas into reality.

This article was written with the help of AI. Can you tell which parts?

Get started with HackerRank

Over 3,000 companies and 40% of developers worldwide use HackerRank to hire tech talent and sharpen their skills.

Recommended topics

  • Hire Developers
  • Problem Solving

Abstract, futuristic image generated by AI

How to Incorporate Candidate Feedback Into Your Hiring Process

Problem Solving

Foundations course, introduction.

Before we start digging into some pretty nifty JavaScript, we need to begin talking about problem solving : the most important skill a developer needs.

Problem solving is the core thing software developers do. The programming languages and tools they use are secondary to this fundamental skill.

From his book, “Think Like a Programmer” , V. Anton Spraul defines problem solving in programming as:

Problem solving is writing an original program that performs a particular set of tasks and meets all stated constraints.

The set of tasks can range from solving small coding exercises all the way up to building a social network site like Facebook or a search engine like Google. Each problem has its own set of constraints, for example, high performance and scalability may not matter too much in a coding exercise but it will be vital in apps like Google that need to service billions of search queries each day.

New programmers often find problem solving the hardest skill to build. It’s not uncommon for budding programmers to breeze through learning syntax and programming concepts, yet when trying to code something on their own, they find themselves staring blankly at their text editor not knowing where to start.

The best way to improve your problem solving ability is by building experience by making lots and lots of programs. The more practice you have the better you’ll be prepared to solve real world problems.

In this lesson we will walk through a few techniques that can be used to help with the problem solving process.

Lesson overview

This section contains a general overview of topics that you will learn in this lesson.

  • Explain the three steps in the problem solving process.
  • Explain what pseudocode is and be able to use it to solve problems.
  • Be able to break a problem down into subproblems.

Understand the problem

The first step to solving a problem is understanding exactly what the problem is. If you don’t understand the problem, you won’t know when you’ve successfully solved it and may waste a lot of time on a wrong solution .

To gain clarity and understanding of the problem, write it down on paper, reword it in plain English until it makes sense to you, and draw diagrams if that helps. When you can explain the problem to someone else in plain English, you understand it.

Now that you know what you’re aiming to solve, don’t jump into coding just yet. It’s time to plan out how you’re going to solve it first. Some of the questions you should answer at this stage of the process:

  • Does your program have a user interface? What will it look like? What functionality will the interface have? Sketch this out on paper.
  • What inputs will your program have? Will the user enter data or will you get input from somewhere else?
  • What’s the desired output?
  • Given your inputs, what are the steps necessary to return the desired output?

The last question is where you will write out an algorithm to solve the problem. You can think of an algorithm as a recipe for solving a particular problem. It defines the steps that need to be taken by the computer to solve a problem in pseudocode.

Pseudocode is writing out the logic for your program in natural language instead of code. It helps you slow down and think through the steps your program will have to go through to solve the problem.

Here’s an example of what the pseudocode for a program that prints all numbers up to an inputted number might look like:

This is a basic program to demonstrate how pseudocode looks. There will be more examples of pseudocode included in the assignments.

Divide and conquer

From your planning, you should have identified some subproblems of the big problem you’re solving. Each of the steps in the algorithm we wrote out in the last section are subproblems. Pick the smallest or simplest one and start there with coding.

It’s important to remember that you might not know all the steps that you might need up front, so your algorithm may be incomplete -— this is fine. Getting started with and solving one of the subproblems you have identified in the planning stage often reveals the next subproblem you can work on. Or, if you already know the next subproblem, it’s often simpler with the first subproblem solved.

Many beginners try to solve the big problem in one go. Don’t do this . If the problem is sufficiently complex, you’ll get yourself tied in knots and make life a lot harder for yourself. Decomposing problems into smaller and easier to solve subproblems is a much better approach. Decomposition is the main way to deal with complexity, making problems easier and more approachable to solve and understand.

In short, break the big problem down and solve each of the smaller problems until you’ve solved the big problem.

Solving Fizz Buzz

To demonstrate this workflow in action, let’s solve a common programming exercise: Fizz Buzz, explained in this wiki article .

Understanding the problem

Write a program that takes a user’s input and prints the numbers from one to the number the user entered. However, for multiples of three print Fizz instead of the number and for the multiples of five print Buzz . For numbers which are multiples of both three and five print FizzBuzz .

This is the big picture problem we will be solving. But we can always make it clearer by rewording it.

Write a program that allows the user to enter a number, print each number between one and the number the user entered, but for numbers that divide by 3 without a remainder print Fizz instead. For numbers that divide by 5 without a remainder print Buzz and finally for numbers that divide by both 3 and 5 without a remainder print FizzBuzz .

Does your program have an interface? What will it look like? Our FizzBuzz solution will be a browser console program, so we don’t need an interface. The only user interaction will be allowing users to enter a number.

What inputs will your program have? Will the user enter data or will you get input from somewhere else? The user will enter a number from a prompt (popup box).

What’s the desired output? The desired output is a list of numbers from 1 to the number the user entered. But each number that is divisible by 3 will output Fizz , each number that is divisible by 5 will output Buzz and each number that is divisible by both 3 and 5 will output FizzBuzz .

Writing the pseudocode

What are the steps necessary to return the desired output? Here is an algorithm in pseudocode for this problem:

Dividing and conquering

As we can see from the algorithm we developed, the first subproblem we can solve is getting input from the user. So let’s start there and verify it works by printing the entered number.

With JavaScript, we’ll use the “prompt” method.

The above code should create a little popup box that asks the user for a number. The input we get back will be stored in our variable answer .

We wrapped the prompt call in a parseInt function so that a number is returned from the user’s input.

With that done, let’s move on to the next subproblem: “Loop from 1 to the entered number”. There are many ways to do this in JavaScript. One of the common ways - that you actually see in many other languages like Java, C++, and Ruby - is with the for loop :

If you haven’t seen this before and it looks strange, it’s actually straightforward. We declare a variable i and assign it 1: the initial value of the variable i in our loop. The second clause, i <= answer is our condition. We want to loop until i is greater than answer . The third clause, i++ , tells our loop to increment i by 1 every iteration. As a result, if the user inputs 10, this loop would print numbers 1 - 10 to the console.

Most of the time, programmers find themselves looping from 0. Due to the needs of our program, we’re starting from 1

With that working, let’s move on to the next problem: If the current number is divisible by 3, then print Fizz .

We are using the modulus operator ( % ) here to divide the current number by three. If you recall from a previous lesson, the modulus operator returns the remainder of a division. So if a remainder of 0 is returned from the division, it means the current number is divisible by 3.

After this change the program will now output this when you run it and the user inputs 10:

The program is starting to take shape. The final few subproblems should be easy to solve as the basic structure is in place and they are just different variations of the condition we’ve already got in place. Let’s tackle the next one: If the current number is divisible by 5 then print Buzz .

When you run the program now, you should see this output if the user inputs 10:

We have one more subproblem to solve to complete the program: If the current number is divisible by 3 and 5 then print FizzBuzz .

We’ve had to move the conditionals around a little to get it to work. The first condition now checks if i is divisible by 3 and 5 instead of checking if i is just divisible by 3. We’ve had to do this because if we kept it the way it was, it would run the first condition if (i % 3 === 0) , so that if i was divisible by 3, it would print Fizz and then move on to the next number in the iteration, even if i was divisible by 5 as well.

With the condition if (i % 3 === 0 && i % 5 === 0) coming first, we check that i is divisible by both 3 and 5 before moving on to check if it is divisible by 3 or 5 individually in the else if conditions.

The program is now complete! If you run it now you should get this output when the user inputs 20:

  • Read How to Think Like a Programmer - Lessons in Problem Solving by Richard Reis.
  • Watch How to Begin Thinking Like a Programmer by Coding Tech. It’s an hour long but packed full of information and definitely worth your time watching.
  • Read this Pseudocode: What It Is and How to Write It article from Built In.

Knowledge check

This section contains questions for you to check your understanding of this lesson on your own. If you’re having trouble answering a question, click it and review the material it links to.

  • What are the three stages in the problem solving process?
  • Why is it important to clearly understand the problem first?
  • What can you do to help get a clearer understanding of the problem?
  • What are some of the things you should do in the planning stage of the problem solving process?
  • What is an algorithm?
  • What is pseudocode?
  • What are the advantages of breaking a problem down and solving the smaller problems?

Additional resources

This section contains helpful links to other content. It isn’t required, so consider it supplemental.

  • Read the first chapter in Think Like a Programmer: An Introduction to Creative Problem Solving ( not free ). This book’s examples are in C++, but you will understand everything since the main idea of the book is to teach programmers to better solve problems. It’s an amazing book and worth every penny. It will make you a better programmer.
  • Watch this video on repetitive programming techniques .
  • Watch Jonathan Blow on solving hard problems where he gives sage advice on how to approach problem solving in software projects.

Support us!

The odin project is funded by the community. join us in empowering learners around the globe by supporting the odin project.

loading

How it works

For Business

Join Mind Tools

Article • 4 min read

The Problem-Solving Process

Looking at the basic problem-solving process to help keep you on the right track.

By the Mind Tools Content Team

Problem-solving is an important part of planning and decision-making. The process has much in common with the decision-making process, and in the case of complex decisions, can form part of the process itself.

We face and solve problems every day, in a variety of guises and of differing complexity. Some, such as the resolution of a serious complaint, require a significant amount of time, thought and investigation. Others, such as a printer running out of paper, are so quickly resolved they barely register as a problem at all.

what is the problem solving process code org

Despite the everyday occurrence of problems, many people lack confidence when it comes to solving them, and as a result may chose to stay with the status quo rather than tackle the issue. Broken down into steps, however, the problem-solving process is very simple. While there are many tools and techniques available to help us solve problems, the outline process remains the same.

The main stages of problem-solving are outlined below, though not all are required for every problem that needs to be solved.

what is the problem solving process code org

1. Define the Problem

Clarify the problem before trying to solve it. A common mistake with problem-solving is to react to what the problem appears to be, rather than what it actually is. Write down a simple statement of the problem, and then underline the key words. Be certain there are no hidden assumptions in the key words you have underlined. One way of doing this is to use a synonym to replace the key words. For example, ‘We need to encourage higher productivity ’ might become ‘We need to promote superior output ’ which has a different meaning.

2. Analyze the Problem

Ask yourself, and others, the following questions.

  • Where is the problem occurring?
  • When is it occurring?
  • Why is it happening?

Be careful not to jump to ‘who is causing the problem?’. When stressed and faced with a problem it is all too easy to assign blame. This, however, can cause negative feeling and does not help to solve the problem. As an example, if an employee is underperforming, the root of the problem might lie in a number of areas, such as lack of training, workplace bullying or management style. To assign immediate blame to the employee would not therefore resolve the underlying issue.

Once the answers to the where, when and why have been determined, the following questions should also be asked:

  • Where can further information be found?
  • Is this information correct, up-to-date and unbiased?
  • What does this information mean in terms of the available options?

3. Generate Potential Solutions

When generating potential solutions it can be a good idea to have a mixture of ‘right brain’ and ‘left brain’ thinkers. In other words, some people who think laterally and some who think logically. This provides a balance in terms of generating the widest possible variety of solutions while also being realistic about what can be achieved. There are many tools and techniques which can help produce solutions, including thinking about the problem from a number of different perspectives, and brainstorming, where a team or individual write as many possibilities as they can think of to encourage lateral thinking and generate a broad range of potential solutions.

4. Select Best Solution

When selecting the best solution, consider:

  • Is this a long-term solution, or a ‘quick fix’?
  • Is the solution achievable in terms of available resources and time?
  • Are there any risks associated with the chosen solution?
  • Could the solution, in itself, lead to other problems?

This stage in particular demonstrates why problem-solving and decision-making are so closely related.

5. Take Action

In order to implement the chosen solution effectively, consider the following:

  • What will the situation look like when the problem is resolved?
  • What needs to be done to implement the solution? Are there systems or processes that need to be adjusted?
  • What will be the success indicators?
  • What are the timescales for the implementation? Does the scale of the problem/implementation require a project plan?
  • Who is responsible?

Once the answers to all the above questions are written down, they can form the basis of an action plan.

6. Monitor and Review

One of the most important factors in successful problem-solving is continual observation and feedback. Use the success indicators in the action plan to monitor progress on a regular basis. Is everything as expected? Is everything on schedule? Keep an eye on priorities and timelines to prevent them from slipping.

If the indicators are not being met, or if timescales are slipping, consider what can be done. Was the plan realistic? If so, are sufficient resources being made available? Are these resources targeting the correct part of the plan? Or does the plan need to be amended? Regular review and discussion of the action plan is important so small adjustments can be made on a regular basis to help keep everything on track.

Once all the indicators have been met and the problem has been resolved, consider what steps can now be taken to prevent this type of problem recurring? It may be that the chosen solution already prevents a recurrence, however if an interim or partial solution has been chosen it is important not to lose momentum.

Problems, by their very nature, will not always fit neatly into a structured problem-solving process. This process, therefore, is designed as a framework which can be adapted to individual needs and nature.

Join Mind Tools and get access to exclusive content.

This resource is only available to Mind Tools members.

Already a member? Please Login here

what is the problem solving process code org

Introducing Mind Tools for Business

Mind Tools for Business is a comprehensive library of award-winning performance and management support resources.

Whether you want to increase engagement, upskill teams, or complement your existing workplace programs – this is content designed to achieve impactful results.

Sign-up to our newsletter

Subscribing to the Mind Tools newsletter will keep you up-to-date with our latest updates and newest resources.

Subscribe now

Business Skills

Personal Development

Leadership and Management

Most Popular

Newest Releases

Article av8xg61

5 Ways to Build Great Work Relationships

Article ayve4tq

How to Manage Company Growing Pains Using the Greiner Curve Infographic

Mind Tools Store

About Mind Tools Content

Discover something new today

Make change happen with kotter's 8-step change model infographic.

Infographic Transcript

Infographic

Time Management Tips Infographic

How emotionally intelligent are you.

Boosting Your People Skills

Self-Assessment

What's Your Leadership Style?

Learn About the Strengths and Weaknesses of the Way You Like to Lead

Recommended for you

How to succeed with continuous improvement: a primer for becoming the best in the world.

Joakim Ahlstrom

Book Insights

Business Operations and Process Management

Strategy Tools

Customer Service

Business Ethics and Values

Handling Information and Data

Project Management

Knowledge Management

Self-Development and Goal Setting

Time Management

Presentation Skills

Learning Skills

Career Skills

Communication Skills

Negotiation, Persuasion and Influence

Working With Others

Difficult Conversations

Creativity Tools

Self-Management

Work-Life Balance

Stress Management and Wellbeing

Coaching and Mentoring

Change Management

Team Management

Managing Conflict

Delegation and Empowerment

Performance Management

Leadership Skills

Developing Your Team

Talent Management

Problem Solving

Decision Making

logo

Have an account?

Quiz image

Multiplication and Division Facts

3rd -  4th  , dividing whole numbers, long division practice.

pencil-icon

Code.org Lesson 1-5; Problem Solving Pro...

User image

Code.org Lesson 1-5; Problem Solving Process Review

what is the problem solving process code org

25 questions

Player avatar

What is the first thing you do when solving a problem?

What is the second step in solving a problem?

If you are making a plan, what part of the problem solving process are you working on?

If you are attempting to put your plan into action, what part of the problem-solving process are you working on?

If you are figuring out what constraints exist, then you are doing this step of the Problem Solving Process.

If you are comparing your results to the original goals you set, then you are doing this step in the Problem Solving Process?

Preparing to solve the problem might include brainstorming.

A piece of a website, marked by a start tag and often closed with an end tag:

HTML Element

The purpose of different pieces of content in a web page, used to help the computer determine how that content should be displayed:

Website Structure

A title or summary for a document or section of a document:

Hypertext Markup Language, a language used to create web pages:

Website Content

The raw text, images, and other elements included in a web page:

A collection of interlinked web pages on the World Wide Web:

The collected information about an individual across multiple websites on the Internet:

digital footprint

This is an HTML tag that defines the document's body.

<!Doctype>

<body>

<doc>

<head>

Which HTML tag defines a paragraph?

<paragraph>

<title>

Which tag defines the HTML document?

<html>

A special set of characters that indicates the start and end of an HTML element and that element's type.

HTML tag that defines the document type. Goes before the <html> start tag.

Which heading tag produces the largest text?

<h10>

Which heading tag produces the smallest text?

Which is an example of a closing tag?

</h1>

In Code.org, why may a code turn pink?

There is an error with the code

The code is too long.

There is a misspelled word.

The page never has pink on it.

How many different sizes do headings come in?

In the following code, which is an example of element content?

<p>My Paragraph</p>

My Paragraph

Google Logo

Computer Coding – Computer Program Definition and Code Meaning

When you start learning to code, one of the questions you probably ask yourself is "What lannguage should I learn first?"

One of the most exciting – and at times overwhelming – things about learning to code is just how much there is to learn.

But instead of just focusing on learning one specific technology, it can also help to learn the foundations – the building blocks. You can peel back the layers of abstraction to get to know the underlying principles that all technologies have in common.

Understanding what coding is at a fundamental level will make solving problems easier and will give you a better understanding of how different technologies work underneath the hood.

This article goes over the fundamentals of computer coding and what programs are made of, while also giving some suggestions on how to start taking your first steps in learning how to code.

What is coding? A definition for beginners

Computer coding, also known as computer programming, is a way to tell a computer what to do.

Coding is a way to tell the computer how it should behave overall - the exact actions it needs to take and how to take them in an effective and efficient way.

Specifically, coding is the process of creating and then giving the computer a detailed set of instructions to be carefully executed in sequential order.

The set of instructions are called a program or the code .

Computers are incredibly clever machines, but they rely on humans for getting things done.

In a nutshell, coding is the art of humans communicating with computers. It helps us solve problems and create helpful new tools for communities, such as apps or websites, and lets us analyze and process large sets of data.

An overview of the coding process

Coding is all about problem solving.

When writing code, you'll be taking a problem and breaking it down into smaller and smaller steps of action, using logical reasoning, to finally come to a conclusion and solution.

Computers take everything literally and pay extreme attention to detail.

Making a small mistake in your code – such as a typo in a word, a missed semicolon, telling a computer to repeat a certain action but not telling it how and when to stop repeating it – will all result in an error message.

These mistakes are called bugs in the code.

The process of identifying the possible mistakes, finding what is causing the problem, and then fixing the mistake so the code works as it was intended to is called debugging .

This is a critical part of writing code and learning how to code in general.

Why algorithms are important in coding

Figuring out the exact instructions to give the computer so it can accomplish specific tasks is the most difficult part of coding and problem solving.

Computers make no assumptions and they do exactly as they are told. This means that there should be no ambiguity in the instructions they receive.

Instructions need to be defined clearly, with the correct number and order of steps the computer should take to solve a problem.

The set of step-by-step, ordered instructions for solving problems and for the computer to complete every single task are called algorithms .

Algorithms are sequences of actions that need to be correct, efficient, precise, and to the point, and they should leave no room for misinterpretation.

Algorithms are not only reserved for computers to follow. Humans use algorithms on a daily basis, too.

An example of a type of algorithm we use frequently is following a cooking recipe.

The recipe is the algorithm. You need to follow the series of steps in the recipe in the correct order to get the end result you want.

How to write pseudocode to plan out algorithms

The way to organise, plan ahead, and write down the steps you need to follow, or the algorithm, is to first write pseudocode .

Pseudocode is an informal way to represent algorithms.

There is no specific syntax to pseudocode. It is written in plain, readable English (or any other natural, human language) using some technical terms.

The purpose of writing it is solely for the programmer to understand the reasoning and logic behind the code/steps that need to be written to solve the problem, using simple phrases.

After doing so,the programmer writes code that is actually executed by the computer.

Pseudocode is a simpler version of computer code and is the first step before any computer code gets written.

For example, say you wanted to write a program that aksed the user to enter their password and checked if it was equal to '1234'.

If the password was equal to '1234', then you'd let them into the system, otherwise they would be rejected.

A simple version of that written in pseudocode could look something like this:

You can then build on that code later, as you went on.

For example, if they entered the wrong password you could ask them for it again.

If they entered it wrong more than 3 times, they would be rejected from the system.

How programming languages bridge the communication gap between humans and computers

The language computers speak.

Computers at their core only speak one language - binary or machine code .

It's a base-2 numerical system, comprised of only two possible numbers: 0 and 1 .

This ties in well with the fact that computers are powered by electricity, which has only two possible states: off and on .

Inside computers there are millions of microscopic switches, or transistors , that control the ebb and flow of electricity.

So, essentially computers understand only no and yes .

Values are represented by transistors being either off (or 0 or no) or on (or 1 or yes) .

Underneath the hood, everything is represented in that state.

Binary, or machine language, is the lowest level of language as it's the closest to the machine.

Instructions are represented only in numbers, sequences of 0s and 1s (also known as binary digits), which directly control the computer's CPU ( Central Processing Unit). Each machine architecture has it's own unique machine language.

This language is incredibly fast as there is no need for any kind of conversion – but it's not easy for humans to use.

It's error prone and time consuming.

Binary was used in the early days of computing, but these programs written in binary were tricky to understand and read.

There was a need for languages that were easily understood and interpreted by both humans and computers.

Throughout the years, programming languages have evolved. These evolutions are called levels, or generations .

Binary is the first generation of programming languages (or 1GL).

As programming languages progressed throughout history and new ones were developed, they started to look more like the languages humans use.

Introduction of Assembly Language

The second generation of programming languages was Assembly language (2GL), which was a major leap forward and improvement in writing programs compared to using machine language.

It was still a very low-level language, but Assembly introduced alphabetical letters to programs, otherwise known as mneumonic codes , which made it easier to understand and use.

In Assembly there is a strong correspondence between the instructions used in the language and the underlying computer's architecture.

So, there is a correlation between the mneumonics in the language, and the machine's native binary instructions.

Assembly introduced a translator, called an assembler , to convert programs written in it to machine language (since that is the only language computer programs can be executed in).

Assembly was more readable and easier to use and debug, but it was still very error prone and tiresome to write programs in.

The introduction of higher level programming languages

Following Assembly language, the third generation programming languages (3GL) came along.

They paved the way to a new style of programming, making it more accessible to people and moving further from the native language of machines.

These languages were called higher level languages - that is languages that are easier for humans to read, write, and understand, since they resemble an English-like way of writing.

They are machine independent, with more levels of abstraction away from the machine.

Translators called compilers were introduced to translate the code programmers wrote in such a language (also known as source code) to machine executable binary code.

Such languages included BASIC, FORTRAN, COBOL, PASCAL, and others that are popular and frequently used to this day, like C, C++, Java, and JavaScript.

Fourth generation languages followed (4GL), which were faster and even easier to use, with more layers of abstractions from the computer. And they looked more and more like human languages.

They increased productivity as programmers no longer had to take the time to tell the computer how to solve a problem.

Instead, they focused on just telling the computer what to do, without the additional steps on how to do it.

Fourth generation languages include scripting languages such as Python and Ruby, but also query languages, used to retrive data from databases, such as SQL (Structured Query Language).

Finally, fith generation programming languages (5GL) are based on Artificial Intelligence.

Computers are trained to learn how to solve problems, without the programmer needing to write algorithms.

Some of the languages used include Prolog and Mercury.

Why should you learn to code?

Coding is a powerful tool.

It allows you to solve a problem in unique and creative ways and gives you the chance to bring an idea to life.

By learning to code you may be able to make a dream of yours a reality and bring a vision you have to fruition.

Coding also helps you understand the constantly changing digital world around you.

Pretty much everything you use on a daily basis runs on code - from looking for directions to a particular destination, to ordering items online, to apps that track the steps you have taken that day.

Coding is used in every single industry, so knowing at least the basics of coding will give you that extra competitive edge when looking for a new role or for a promotion.

Also, there's no shortage of IT and programming jobs out there right now. On the contrary they are growing and that growth doesn’t seem to be easing off anytime soon (despite theories that Artificial Intelligence will eventually replace programmers).

Besides these reasons to learn to code, coding makes for a fun new hobby and productive passtime.

Coding is for everyone no matter their age, their background, or where they are in life.

You don’t need a four year college degree to get started. You can begin learning for free , from the comfort of your own home.

Anyone can learn to code if they want to.

How to start coding

There are many programming languages out there, and as a newbie it can get overwhelming choosing the first one to learn.

To get started, think of a problem you want to solve and then research what technology would help you reach your goal.

For example, if you want to create a personal website, you wouldn't start by learning Java or C++.

A good starting point for beginners could be the following:

  • HTML (Hyper Text Markup Language), which is the bones of every webpage. It displays all kind of content you see on websites - from text, to links, images and videos.
  • CSS (Cascading Style Sheets), which makes the HTML look pretty. It is used to change the font styles and colors of websites, and also it is used to make a website responsive and usable on every device.
  • JavaScript, which adds functionality and interactivity to otherwise static web pages.

freeCodeCamp has a well thought out and extensive, interactive curriculum. It helps learners take their first steps in coding and helps them land a job with the new skills they acquire.

Check out the Responsive Web Design Certification , where you'll build projects that you can add to your portfolio to showcase your skills to potential employers.

freeCodeCamp also has a YouTube channel with free, full-length courses on a wide variety of tech topics.

And there's also the friendly freeCodeCamp community that can help you when you get stuck and support you throughout your coding journey. So make sure to engage in the forum when you need help.

Wrapping Up

Coding is a skill that cannot be learnt overnight, so don't rush the process!

Like learning any new language, learning to code takes time,patience, consistent practice and lots of trial and error.

As quoted by Beverly Sills, and shown on freeCodeCamp as one of the inspirational quotes:

There are no short cuts to any place worth going.

Thanks for reading!

Read more posts .

If this article was helpful, share it .

Learn to code for free. freeCodeCamp's open source curriculum has helped more than 40,000 people get jobs as developers. Get started

right-icon

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus convallis sem tellus, vitae egestas felis vestibule ut.

Error message details.

Reuse Permissions

Request permission to republish or redistribute SHRM content and materials.

The Performance Review Problem

As the arcane annual assessment earns a failing grade, employers struggle to create a better system to measure and motivate their workers.

​After an annual review that lasted about 10 minutes, a New Jersey-based account coordinator knew it was time to leave the public relations agency where he had worked for almost a year. 

The 25-year-old, who requested anonymity, asked for the meeting because his boss had not mentioned any formal assessment process, nor had his manager ever critiqued his work. The coordinator says he sat with a trio of senior executives who did not ask him any questions beyond how he would rate himself. He says they ignored his requests for guidance on how to advance at the agency. 

Screen Shot 2023-03-15 at 85749 AM.png

This example also illustrates one of the common failures in performance management: limiting reviews to once or twice a year without having any other meaningful career discussions in between. Nearly half (49 percent) of companies give annual or semiannual reviews, according to a study of 1,000 full-time U.S. employees released late last year by software company Workhuman. 

The only situation that is worse than doing one review per year is doing none at all, experts say. The good news is that only 7 percent of companies are keeping employees in the dark about their performance, and 28 percent of organizations are conducting assessments quarterly, the Workhuman study found.  

A Pervasive Problem

Reviews generally do not work.

That doesn’t mean that more-frequent formal meetings or casual sit-downs between supervisors and their direct reports are solving the performance review quandary, either. Only about 1 in 4 companies in North America (26 percent) said their performance management systems were effective, according to a survey of 837 companies conducted last fall by consulting firm WTW. And only one-third of the organizations said employees felt their efforts were evaluated fairly. 

Meanwhile, a Gallup survey conducted last year found that 95 percent of managers are dissatisfied with their organization’s review system.

The problem is not new, though it is taking on greater importance, experts say. Millennials and members of Generation Z crave feedback and are focused on career development. Meanwhile, the tight labor market has companies searching for ways to keep high-performing employees in the fold. Fewer than 20 percent of employees feel inspired by their reviews, and disengaged employees cost U.S. companies a collective $1.6 trillion a year, according to Gallup.

Lesli Jennings, a senior director at WTW, says part of the issue is that reviews are now so much more than a discussion of past performance. They include conversations about career development, employee experience and compensation. 

“The performance management design itself is not evolving as quickly as the objectives and the purpose that we have set out for what we want it to do,” Jennings says. 

Screen Shot 2023-03-15 at 84340 AM.png

Poor Review Practices

Some argue that means it’s time to completely scrap annual reviews and stop using scales composed of numbers or adjectives to rate employees. 

“Every single human alive today is a horribly unreliable rater of other human beings,” says Marcus Buckingham, head of people and performance research at the Roseland, N.J.-based ADP Research Institute. He says people bring their own backgrounds and personalities to bear in the reviews in what is called the “idiosyncratic rating effect.” He says the ratings managers bestow on others are more a reflection of themselves than of those they’re reviewing.

Buckingham adds that very few positions have quantifiable outcomes that can be considered a measure of competence, talent or success. It’s possible to tally a salesperson’s results or test someone’s knowledge of a computer program, he says, but he’s baffled by attempts to measure attributes such as “leadership potential.”

“I’m going to rate you on a theoretical construct like ‘strategic thinking’? Everybody knows that’s rubbish,” Buckingham says. He adds that performance reviews that offer rankings give “data that’s just bad” and insists that companies rely on data analytics because they don’t trust their managers’ judgment. But instead of working on improving their managers’ skills, he says, they put data systems in place. 

“Because we don’t educate our managers on how to have some of these conversations, we’ve decided that the solution is to give them really bad ratings systems or really bad categorization systems,” Buckingham says. 

R eviewing the Data

A mong North American employers:

  • More than 9 in 10 (93 percent) cited driving organizational performance as a key objective for performance management, yet less than half (44 percent) said their performance management program is ­meeting that objective.
  • Nearly 3 in 4 (72 percent) said ­supporting the career development of their employees is a primary objective, but only 31 percent said their performance management program was meeting that objective.
  • Less than half (49 percent) agreed that managers at their organization are ­effective at assessing the performance of their direct reports. 
  • Only 1 in 3 indicated that employees feel their performance is evaluated fairly. 
  • Just 1 in 6 (16 percent) reported having altered their performance management approach to align with remote and hybrid work models, which are rapidly becoming more prevalent.

Source: WTW 2022 Performance Reset Survey of 837 organizations worldwide, including 150 North American employers.

Data Lovers

Ratings aren’t likely to disappear anytime soon, however. “Data-driven” has become a rallying cry for companies as they seek to operate more efficiently. Organizations are trying to measure everything from sales to productivity, though such efforts can cause turmoil and hurt some individuals’ careers.

A June 2022 study of nearly 30,000 workers at an unnamed North American retail chain found that women were more likely to receive higher overall ratings than men, though women were ranked lower on “potential.” 

In that study, women were 12 percent more likely to be given the lowest rating for potential, as well as 15 percent and 28 percent less likely to receive the middle and highest potential ratings, respectively, according to the professors who conducted the study, Alan Benson of the University of Minnesota, Danielle Li of MIT and Kelly Shue of Yale. The authors also said women were 14 percent less likely to get promoted than men. “Because potential is not directly observed,” they noted, “these assessments can be highly subjective, leaving room for bias.” 

Screen Shot 2023-03-15 at 85749 AM.png

Birmingham left abruptly one afternoon and did not go in to work the next day, which he says Blizzard interpreted as his resignation. Blizzard did not respond to requests for comment.

Stack ranking became popular in the 1980s after it was embraced by General Electric. Its adoption has waned, though several tech companies continue to use it. Google and Twitter relied on stack ranking to decide who to let go in their recent rounds of layoffs, according to published reports.

Birmingham says that the system can cause anxiety and competition, which can kill team cohesion, and that arbitrary lower ratings adversely affect compensation and promotion potential. These systems can also suggest that a manager is ineffective, he says. “It implies that as managers, we basically have not done our job to hire them and train them appropriately or terminate them if they really aren’t working out.”

Birmingham says he is not opposed to ranking systems but doesn’t think they’re necessary. “I feel like the conversation about how to improve your career, what the expectations are for your job and what it will take to get to the next level are all things you can do without a rating,” he says.

Measurements Matter

Grant Pruitt, president and co-founder of Whitebox Real Estate, does not give any type of rating in his performance reviews, though he believes in using data to track his employees’ performance. “What isn’t measured can’t be managed,” says Pruitt, whose company has about 20 employees in several offices across Texas. 

At the beginning of the year, Whitebox employees set goals with their managers. Discussions are held about what benchmarks are reasonable, and these targets can be changed if there is a meaningful shift in business conditions. Team leaders hold weekly department meetings with their direct reports to discuss what’s happening and track progress. Managers hold quarterly private reviews with individuals to dig deeper into whether they’re meeting their goals and if not, why.

“Was it an achievable goal? Realistic? If it was, then what do we need to do to make sure we don’t miss it the next time?” Pruitt says. Whitebox switched to quarterly reviews about four years ago to address problems earlier and avoid having issues fester, Pruitt adds.

It’s easier to set goals for people in sales than for those in other departments, Pruitt concedes. However, he adds that executives need to brainstorm about targets they can use for other roles. For example, administrative employees can be rated on how quickly and efficiently they handle requests.

Pruitt maintains that the goal system makes it easier to respond when an employee disagrees with their manager about their performance review because there are quantitative measures to examine. The data also helps eliminate any unconscious bias a manager may have and helps ensure that a leader isn’t just giving an employee a good rating because they work out at the same gym or their children go to school together.

“I think that’s really where the numbers and the data are important,” Pruitt says. “The data doesn’t know whose kids play on the same sports team.”

Whitebox employees are also judged on how well they embrace the company’s core values, such as integrity, tenacity and coachability. Some of those values may require more-subjective judgments that can be more important than hitting quantifiable goals. 

Pruitt admits that there were occasions when he looked the other way with a few individuals who were “hitting it out of the park,” even though he believed they lacked integrity. But eventually, he had to let them go and the company lost money.

“They really came back to bite me,” Pruitt says.

Screen Shot 2023-03-15 at 84352 AM.png

Grades Are Good

Diane Dooley, CHRO of Iselin, N.J.-based World Insurance Associates LLC, also believes establishing quantitative methods to gauge employees’ performance is essential. “We are living in a world of data analytics,” she says. The broker’s roughly 2,000 employees are rated on a scale of 1 to 5.

World Insurance has taken numerous steps to remove bias from reviews. For example, last year the company conducted unconscious-bias training to help managers separate personal feelings from performance reviews. And all people managers convene to go over the reviews they’ve conducted. Dooley says that process gives everyone a chance to discuss why an employee was given a certain rank and to question some decisions. “We want to make sure we’re using the same standards,” she explains.

Currently, World Insurance conducts reviews only once a year because it has been on an acquisition binge and there hasn’t been time to institute a more frequent schedule. That will change eventually, says Dooley, who adds that she wants to introduce department grids that show how an employee’s rank compares to others’ on the team. 

“It’s just a tool that helps the department or the division understand where their people are and how we can help them collectively,” says Dooley, who has used the system at other companies. 

Dooley says she isn’t worried about World Insurance holding reviews only annually, because good managers regularly check in with their employees regardless of how frequently reviews are mandated.

Such conversations can easily fall through the cracks, however. “Managers want to manage the employees, but they get so caught up in the company’s KPIs [key performance indicators] and making sure that they’re doing everything that they need to do,” says Jennifer Currence, SHRM-SCP, CEO of WithIn Leadership, a leadership development and coaching firm in Tampa, Fla. “It’s hard to set aside the time.” 

WTW’s Jennings adds that managers sometimes avoid initiating conversations with employees who are not performing well. Such discussions are often difficult, and managers may not feel equipped to conduct them. 

“Having to address underperformers is hard work,” Jennings says. 

Additionally, experts say, coaching managers to engage in such sensitive discourse can be expensive and time-consuming.

Improve Your Performance Reviews

H ere’s how to make the review process more ­palatable for both managers and their direct reports:

  • Don’t limit conversations to once or twice per year. Every team is different, so leaders should decide what schedule is most appropriate for their departments. However, it’s important to deal with any problems as they arise; don’t let them fester.
  • Set performance goals and expectations at the beginning of the year so employees understand their responsibilities. This helps lend objectivity to the process by introducing measurable targets. However, the goals should be adjusted if there are major changes to the business or an employee’s circumstances. 
  • Explain how each employee’s position, as well as each department, fits into the company’s overall ­strategy. This will help employees understand why their job matters and why it’s important.
  • Simplify the process. There’s no need for a ­double-digit number of steps or numerous
  • questions that require long-winded answers. 
  • Consider a 360-degree approach. Input from employees’ colleagues or from other managers can help give a fuller picture of employees’ capabilities and contributions.
  • Eliminate proximity bias. You may not see some employees as often as others, especially if they work remotely, but that doesn’t mean they’re not working hard. 
  • End recency bias, which is basing a review on an employee’s most recent performance while ignoring earlier efforts. Don’t let recent mistakes overshadow the employee’s other impressive accomplishments.
  • Solicit feedback from employees. Reviews should be a two-way conversation, not a lecture.
  • Train managers to give advice calmly and helpfully. This is especially important when leaders must call out an employee’s subpar performance. 
  • Don’t discuss compensation during reviews. Employees are likely to be so focused on learning about a raise or bonus that they won’t pay much attention to anything else.

Increase Conversations

Finding the right formula for performance reviews is tricky. The company’s size, values, industry and age all play a role. Currence says businesses need to think about the frequency and purpose of these meetings. Some managers may have weekly discussions with their direct reports, but the conversations might center on status updates as opposed to performance. 

“We need to have more regular conversations,” Currence says. “There has to be a happy balance.”

San Jose, Calif.-based software maker Adobe Inc. was a pioneer when it eliminated annual reviews in 2012 after employees said assessments that look backward weren’t useful and managers lamented how time-consuming they were. Instead, Adobe introduced quarterly check-ins and did away with its numerical ratings system, even though the company is “data-driven,” according to Arden Madsen, senior director of talent management.

Screen Shot 2023-03-15 at 85749 AM.png

Adobe’s system has changed over the years as the company grew from about 11,000 employees in 2012 to around 28,000 today. In the beginning, employees were not asked a universal set of questions and the information gathered was not stored in a central place accessible to all. In 2020, Adobe instituted three or four questions that must be asked at each quarterly meeting, one of which is whether the employee has feedback for the manager. Other topics covered depend on the employee, their role and their goals.

Madsen says asking consistent questions and making reviews easily accessible are important, as internal mobility within the company has grown. 

Adobe, like many businesses, separates conversations about performance from discussions about raises and bonuses, even though they’re intertwined. 

“Money is so emotionally charged,” says WithIn Leadership’s Currence. “When we tie performance review conversations with money, we as human beings do not hear anything about performance. We only focus on the money.”    

Theresa Agovino is the workplace editor for SHRM.

Illustrations by Neil Jamieson.

Related Articles

what is the problem solving process code org

Rising Demand for Workforce AI Skills Leads to Calls for Upskilling

As artificial intelligence technology continues to develop, the demand for workers with the ability to work alongside and manage AI systems will increase. This means that workers who are not able to adapt and learn these new skills will be left behind in the job market.

A vast majority of U.S. professionals  think students should be prepared to use AI upon entering the workforce.

Employers Want New Grads with AI Experience, Knowledge

A vast majority of U.S. professionals say students entering the workforce should have experience using AI and be prepared to use it in the workplace, and they expect higher education to play a critical role in that preparation.

HR Daily Newsletter

New, trends and analysis, as well as breaking news alerts, to help HR professionals do their jobs better each business day.

Success title

Success caption

Help | Advanced Search

Computer Science > Computation and Language

Title: rocode: a dataset for measuring code intelligence from problem definitions in romanian.

Abstract: Recently, large language models (LLMs) have become increasingly powerful and have become capable of solving a plethora of tasks through proper instructions in natural language. However, the vast majority of testing suites assume that the instructions are written in English, the de facto prompting language. Code intelligence and problem solving still remain a difficult task, even for the most advanced LLMs. Currently, there are no datasets to measure the generalization power for code-generation models in a language other than English. In this work, we present RoCode, a competitive programming dataset, consisting of 2,642 problems written in Romanian, 11k solutions in C, C++ and Python and comprehensive testing suites for each problem. The purpose of RoCode is to provide a benchmark for evaluating the code intelligence of language models trained on Romanian / multilingual text as well as a fine-tuning set for pretrained Romanian models. Through our results and review of related works, we argue for the need to develop code models for languages other than English.

Submission history

Access paper:.

  • Download PDF
  • HTML (experimental)
  • Other Formats

license icon

References & Citations

  • Google Scholar
  • Semantic Scholar

BibTeX formatted citation

BibSonomy logo

Bibliographic and Citation Tools

Code, data and media associated with this article, recommenders and search tools.

  • Institution

arXivLabs: experimental projects with community collaborators

arXivLabs is a framework that allows collaborators to develop and share new arXiv features directly on our website.

Both individuals and organizations that work with arXivLabs have embraced and accepted our values of openness, community, excellence, and user data privacy. arXiv is committed to these values and only works with partners that adhere to them.

Have an idea for a project that will add value for arXiv's community? Learn more about arXivLabs .

IMAGES

  1. 1 Problem Solving

    what is the problem solving process code org

  2. code org problem solving process poster

    what is the problem solving process code org

  3. Group Problem Solving

    what is the problem solving process code org

  4. code org problem solving process poster

    what is the problem solving process code org

  5. MEMBER EXCHANGE

    what is the problem solving process code org

  6. A problem with the problem-solving process

    what is the problem solving process code org

VIDEO

  1. CSA: The Equals() Method

  2. Problem Identification for Project

  3. The Mindset of Successful Programmers

  4. Problem-solving Process that focuses on Confronting and Resolving the Conflict (INPM5112

  5. Problem Solving Process. Part

  6. Dynamics part-1

COMMENTS

  1. The Problem Solving Process

    The Problem Solving Process - Lesson 2 - Code.org < Unit 1 - Problem Solving and Computing ('21-'22) Other Lessons in this Unit Lesson 2: The Problem Solving Process 45 minutes Overview Question of the Day: What are some common steps we can use to solve many different types of problems?

  2. Pilot

    U1L2 - The Problem Solving Process This lesson went well, they were still in the "first days" mode and figuring out the structure of the class. They worked on the reflection problems on the activity guide individually, then worked in pairs to create a presentation for the "problem to solve".

  3. Teacher Tips: The Problem Solving Process

    Start learning at code.org. Stay in touch with us on social media!• on Twitter https://twitter.com/codeorg• on Facebook https://www.facebook.com/Code.org• on...

  4. Computer Science Discoveries

    An introductory computer science course that empowers students to create authentic artifacts and engage with computer science as a medium for creativity, communication, problem solving, and fun. Explore full course Flexible units

  5. PDF G Code.org Puzzle Solving Recipe

    Step 1: Understand the Puzzle * Do you understand the situation or puzzle prompt? * Can you restate the problem in your own words? * Do you understand the code you are given and why? - What role does the code play? * Do you know what the goal of the puzzle is? * Is this problem similar to another puzzle you have solved? Step 2: Create a Plan

  6. The Problem Solving Process with Zipline

    The Problem Solving Process with Zipline - YouTube 0:00 / 4:02 • Intro The Problem Solving Process with Zipline Code.org 406K subscribers Subscribe Subscribed 1.1K 233K views 4...

  7. PDF H Code.org Puzzle Solving Recipe

    H Code.org Puzzle Solving Recipe (Based on Polya's Four Step Problem Solving Process) These tips will help you get unstuck when solving Code.org puzzles! Step 1: Understand the Puzzle What does the puzzle want you to do? Can you talk about the problem in your own words? Were you given any code to start? What does it do? Why do you think it's there?

  8. Computational Thinking

    1.a - Apply existing knowledge to generate new ideas, products, or processes. 1.c - Use models and simulation to explore complex systems and issues. 2.d - Contribute to project teams to solve problems. 4.b - Plan and manage activities to develop a solution or complete a project.

  9. Pilot

    Pilot - U1L02 - The Problem Solving Process - Unit and Lesson Discussion - Code.org Professional Learning Community Please leave any feedback, thoughts, or resources for the lesson here. description of your school and classroom context details on what went well when teaching …

  10. How to Know When You've Learned Everything You Can ...

    That's how I approached problem-solving when I began learning to code. I was on a problem-solving treadmill: solving as many problems [/news/do-you-solve-programming-problems-or-complete-exercises-the-difference-matters/] as quickly as possible. ... Pólya writes about the problem-solving process in his book, How to Solve It, through the lens ...

  11. Title: V-STaR: Training Verifiers for Self-Taught Reasoners

    Common self-improvement approaches for large language models (LLMs), such as STaR (Zelikman et al., 2022), iteratively fine-tune LLMs on self-generated solutions to improve their problem-solving ability. However, these approaches discard the large amounts of incorrect solutions generated during this process, potentially neglecting valuable information in such solutions. To address this ...

  12. How to Solve Coding Problems with a Simple Four Step Method

    Step 1: Understand the problem. When given a coding problem in an interview, it's tempting to rush into coding. This is hard to avoid, especially if you have a time limit. However, try to resist this urge. Make sure you actually understand the problem before you get started with solving it. Read through the problem.

  13. What is Problem Solving? An Introduction

    Problem solving, in the simplest terms, is the process of identifying a problem, analyzing it, and finding the most effective solution to overcome it. For software engineers, this process is deeply embedded in their daily workflow. It could be something as simple as figuring out why a piece of code isn't working as expected, or something as ...

  14. The 5 Pillars of Complex Problem Solving with Code

    2. After spending hundreds of hours helping people take their first steps with code, I developed a five part model for problem solving. In fact, it's even easier than that, as it really breaks down to three core skills, and two processes. In this piece I'll explain each of them and how they interreact.

  15. Unit 1: Problem Solving- Code.org Flashcards

    A precise sequence of instructions for processes that can be executed by a computer. Processing. The work done (possibly by a computer) to turn an input into an output. Computer. A machine or device that performs processes, calculations and operations based on instructions provided by a software or hardware program. Problem Solving Process.

  16. SoLA: Solver-Layer Adaption of LLM for Better Logic Reasoning

    Considering the challenges faced by large language models (LLMs) on logical reasoning, prior efforts have sought to transform problem-solving through tool learning. While progress has been made on small-scale problems, solving industrial cases remains difficult due to their large scale and intricate expressions. In this paper, we propose a novel solver-layer adaptation (SoLA) method, where we ...

  17. Problem Solving

    Explain the three steps in the problem solving process. Explain what pseudocode is and be able to use it to solve problems. Be able to break a problem down into subproblems. Understand the problem. The first step to solving a problem is understanding exactly what the problem is. If you don't understand the problem, you won't know when you ...

  18. [2402.13588] PI-CoF: A Bilevel Optimization Framework for Solving

    Physics informed neural networks (PINNs) have recently been proposed as surrogate models for solving process optimization problems. However, in an active learning setting collecting enough data for reliably training PINNs poses a challenge. This study proposes a broadly applicable method for incorporating physics information into existing machine learning (ML) models of any type. The proposed ...

  19. The Problem-Solving Process

    1. Define the Problem Clarify the problem before trying to solve it. A common mistake with problem-solving is to react to what the problem appears to be, rather than what it actually is. Write down a simple statement of the problem, and then underline the key words. Be certain there are no hidden assumptions in the key words you have underlined.

  20. Code.org

    The Problem Solving Process with Programming. Terms Engineers from Amazon, Google, and Microsoft helped create these materials.

  21. What is Problem Solving? Steps, Process & Techniques

    / Quality Resources / Problem Solving What is Problem Solving?. Quality Glossary Definition: Problem solving Problem solving is the act of defining a problem; determining the cause of the problem; identifying, prioritizing, and selecting alternatives for a solution; and implementing a solution. The problem-solving process Problem solving resources

  22. How to think like a programmer

    Simplest means you know the answer (or are closer to that answer). After that, simplest means this sub-problem being solved doesn't depend on others being solved. Once you solved every sub-problem, connect the dots. Connecting all your "sub-solutions" will give you the solution to the original problem. Congratulations!

  23. What is Programming? A Handbook for Beginners

    It is the process of writing code to solve a particular problem or to implement a particular task. Programming is what allows your computer to run the programs you use every day and your smartphone to run the apps that you love. It is an essential part of our world as we know it.

  24. Code.org Lesson 1-5; Problem Solving Process Review

    20 Qs. Multiplication & Division Math Facts. 3.4K plays. 3rd - 5th. Code.org Lesson 1-5; Problem Solving Process Review quiz for 8th grade students. Find other quizzes for and more on Quizizz for free!

  25. Computer Program Definition and Code Meaning

    An overview of the coding process. Coding is all about problem solving. When writing code, you'll be taking a problem and breaking it down into smaller and smaller steps of action, using logical reasoning, to finally come to a conclusion and solution. Computers take everything literally and pay extreme attention to detail.

  26. The Performance Review Problem

    The problem is not new, though it is taking on greater importance, experts say. Millennials and members of Generation Z crave feedback and are focused on career development.

  27. RoCode: A Dataset for Measuring Code Intelligence from Problem

    Recently, large language models (LLMs) have become increasingly powerful and have become capable of solving a plethora of tasks through proper instructions in natural language. However, the vast majority of testing suites assume that the instructions are written in English, the de facto prompting language. Code intelligence and problem solving still remain a difficult task, even for the most ...

  28. Python Basics: Problem Solving with Code

    In this course you will see how to author more complex ideas and capabilities in Python. In technical terms, you will learn dictionaries and how to work with them and nest them, functions, refactoring, and debugging, all of which are also thinking tools for the art of problem solving. We'll use this knowledge to explore our browsing history ...