I do not recommend using any the sites below if you are a student studying in a University or college, unless you have a lot of spare time. While you are a student, you should be focusing on the assignments you are given (whether you like them or not). A part of improving is developing the skill to be able to focus and solve problems you do NOT like. Your primary goal should be to complete your studies as soon as possible and building skill on the way.
Also, a real world assignment is always more useful and it will teach you more important things. However, If you have spare time and want to try to solve problems in order to improve your programming skills, you may try to solve problems mentioned in the sites below:
It is freely accessible to anyone. There are a lot problems to solve, categorized by their level of difficulty. The problems there will keep you busy for a lot of time.
It is freely accessible to anyone. There are a lot problems to solve, categorized by their level of difficulty.
It even includes a GUI to write the code.
3) tausiq blog
This is a wordpress blog also freely accessible to you. It has a list of many easy problems to solve (accessible here).
This is a very well known and respected website among the professionals, it is even used by companies to check their employee skills. You can find a lot of problems to solve there.
If you want more difficult problems, you can read this post.