This course relies on a strong knowledge of programming. At the very least, you should have completed my Novice Functions course (warning: it's still in beta). Without that knowledge, this lesson may be very frustrating for you.
On the other hand, if you like a challenge, this course may be just for you. Either way, have fun!