Hands-On Coding Practice with Real-world Projects