I'm a bit confused by your question. Your exercise seems to involve some combination of…
- Requirements gathering: what are the inputs, outputs, and formulas?
- Translating the requirements to a conceptual model
- Translating the conceptual model to pseudocode
- Translating the pseudocode to code
- Translating the pseudocode or code back to a flowchart (Why? In decades of programming experience, I've almost never found flowcharts to be useful. If anything, they encourage an if-then-goto mentality, which is the opposite of what you want to aim for.)
It's not clear from your question which parts of the exercise are givenprovided to the students as givens, and which parts you expect the students to perform.
In any case, "Devise an algorithm that calculates a user’s paycheque" is much too open-ended a question for a beginner! All of those steps expect students to produce some output starting from a blank slate, which can be intimidating.
Furthermore, I'm not convinced that this exercise teaches useful computer science concepts. It may be a useful demonstration of what programmers do, but that's not quite the same thing.
As an alternative, I suggest giving exercises where the inputs, outputs, and expected behaviour are obvious. The correctness of the response should be easily testable.
For kids, you could try Code Combat or Code.org's exercises. Some of the exercises can be done in visual programming environments using drag-and-drop blocks (like Scratch or Snap), eliminating the fear that some students encounter when asked to write something starting with an empty screen. If you're looking for more "traditional" programming environments, you could try Karel exercises, which have been ported to a variety of programming languages. These exercises all encourage students to develop algorithms — mainly to move characters on a board in a specified pattern. In contrast to your open-ended exercise, these are highly guided activities, which gradually increase in difficulty.
Once students have mastered the concept of developing algorithms to solve problems with extremely well specified inputs and outputs, then they can be asked to apply those ideas to real-life problems, where the inputs are not fixed, the scope is unclear, and requirements are negotiable.