Yes, the game does what it is supposed to do. What it does not do is teach you to play well. You need to play well before using this game. Even at the easiest opponent settings the game will beat a novice every time.
There are several changes to the program that would help users learn to play. Dumb down the opponent/algorithm. Allow the user to adjust the speed of the opponent's moves so they can be observed. Allow an instant replay, that is, show me that last move again. Why did the opponent make that move? Allow the user to propose a move and have the algorithm show the effect; let the user explore options. If the programmers are willing to be more sophisticated, allow the user to move, allow the algorithm to move and then--allow the user to step backward two moves (user + algorithm) and choose a different move than before. In effect, the user can see the outcome of his/her choice, say "Ouch! Not good" and then try something else.
Bottom line: if you already play well use this app; if you don't play well look elsewhere.