Problem 1 could be made clearer by specifying that only non-negative integers could be stored on the tape. The example image doesn't help either... :(
Note that the "For example, here's a loop that keeps adding one to memory location 4 until it equals memory location 20" code only works for positive integers, at that! (It could be fixed to handle zero (at the cost of clobbering an extra memory location, in the process of constructing a "branch if equal" command from the "branch if not equal" command), but that's as far as we can go)
This may all be part of why one is asked "Under what circumstances does this program fail?" at the end.