Here is another educational robot with everything you need to learn programming and even 3D printing. The B-Robot Evo 2 is hackable and can be controlled using your smartphone or tablet. You can modify the Arduino code or use a drag & drop programming interface to modify with the robot.
You can attach a camera and other modules to the robot to do more with it. More info is available here.