Mini-projects for learning programming languages