Couldn't seem to find any definition for what either of these terms refer to but it goes into some detail on other things
This programming approach prioritises the maintainability and clarity of code by using iteration, selection and sequence. Each block of code should have one entrance point and one exit point. You can use flowcharts to design algorithms
Concurrent processing is when one processor is responsible for executing all instructions, if multiple tasks are needing to be done at once then processor time is divided among the different tasks. In contrast parallel processing using multiple different processors to simultaneously execute instructions, this is faster for problems that can be broken down into smaller repetitive chunks but isn't always possible
A problem is computable if there is a possible method to compute every instance of a problem in a finite number of steps, even if it would take millions of years.
Visualisation - it's important to present the solution to a problem
Backtracking - sometimes you have to make choices to solve a problem, you might make a bad choice and therefore have to backtrack to change the previously made choice. Some problems like this are deemed intractable, meaning that even though a theoretical algorithm to solve them may exist it would take too long to solve. In this case heuristics can be used to make better choices when they need to be made, reducing the backtracking required to solve a problem
wasn't sure what to use as a picture and didn't want to clogg up the repo with useless images