I think much of it is just the experience they have with regards to what format of problems is good to assign. But math isn't about problems at all anyway.
I suppose they can assign a problem that was once a problem in the past and was later solved. However, for some problems, it seems the problem creator omitted enough information so as to leave the problem solvable. How do they know which information to omit?
I suppose one way to create problems is to start out with a "solved" system and then work backwards to eliminate just enough information to make the system solvable. Is this an algorithm for creating solvable problems? Are there any other algorithms for problem creation?
Well I believe it depends on the kind of problems you're talking about. If it is a simple arithmetic problem you can create a really quick programming script to create problems.
I'm a computer science (and physics) major so I know a good amount of programming, so I created a math problem generator for my little sister. It can create addition problems, and subtraction problems in a way that it shows 1 + x = 5 for example, and she has to input the answer. For something like this the algorithm is easy.
But if I wanted to create something let's say a little bit more advanced and go into calculus I would have to put boundaries on the values that are selected, and the algorithm would become more complex.
Most professor grab classic problems, usually from textbooks, and just change their value to the extend that they know they will be solvable (it has happened to me that professor make up a problem and they can't solve it)
But mathematical testing software that generates problems needs some sort of algorithm. I'd be really interested to have a thread where we discuss how to make algorithms for different kinds of problems, it's something very interesting and fun to play with.
I guess it is a deeper question than it appears. In fact, it has to do with one of the main topics of the artificial intelligence topics: the computability of the mind.
Given a formal axiomatic system to work with, one can enumerate all solvable mathematical questions (inside this axiomatic). The process is analogous to enumerating all the programs that halt, if you believe in Church-Turing thesis.
But wait. Now start the real big questions.
There are mathematical results that shows us that we can propose mathematical questions that any previous defined formal axiomatic system cannot solve. The most famous are the Gödel´s theorems.
That means, for every program one creates for generate solvable mathematical question (for example, all solvable questions of ZFC), we can create a mathematical question that won´t be ever generated by this program but that can be generated by another program (for example, ZFC+Con(ZFC)).
Hence, would we ever be stuck in this limitless process of creating new programs to generate solvable mathematical problems?
the answer will depends on the computability of the mind, one of the most controversials issues there is.
I think that they do that as they have enough ability about the mathematics and thoughts regarding maths and that is why they generate the solvable problems. Talking about the computers as we all know that computers work on program basis as they are programmed to do so, so due to such programs they are able to create solvable problems.