We’re excited to share that the Craig ‘n’ Dave Time2Code Python course is now available on the Dodona coding platform — giving teachers a unique and powerful way to teach programming with structured activities, instant feedback, and progress tracking for students.

Time2Code is a well-designed, project-based Python curriculum that helps learners build core programming skills step-by-step. While the original Time2Code activities have historically used tools like Trinket (which is closing in June 2026) for coding environments, the content has been adapted to work with educational platforms like Dodona — ensuring continuity and access for classes around the world.

🧑‍🏫 Getting started as a teacher

Here’s a simple path to start using Time2Code Python on Dodona.

1. Create your Dodona teacher account

First, sign up for a Dodona account using your institutional credentials (Microsoft, Google, etc.). To set up courses, make sure you request teacher rights — this allows you to create and manage content. Dodona teachers account are free of charge.

2. Make your own copy of Time2Code

Once you have teacher rights, copy the Time2Code course into a new learning track that you can customize to your own needs and that of your classroom. Courses on Dodona are organized as series of exercises and reading activities, so you can structure the Time2Code levels to match your syllabus.

3. Organize and customize the learning track

Within your own copy Time2Code:

4. Invite students

Have your students join the course. They can self-register for the course, or you can manage enrolments via Dodona. Once they’re in, they’ll see each activity and can start submitting code.

5. Use Dodona’s learning analytics and feedback tools

Dodona provides built-in dashboards and classroom features so you can:

✨ What this brings to your students

The combination of Time2Code content and Dodona’s learning environment gives learners a supportive, interactive programming experience.

✅ Instant, automated feedback

Students receive feedback automatically when they submit code — helping them debug and learn iteratively without waiting for teacher marking. If you want to see this in action, scroll to the bottom of this page and click the submit button in the code editor to see if the flip_coin function generates the outcome of flipping an unbiased coin.

✅ Practice-driven learning

Time2Code’s structured problems guide learners from fundamentals to more complex tasks gradually, reinforcing skills through doing rather than just reading.

✅ Self-paced progress

Learners can work at their own pace, revisiting exercises or moving ahead if they feel confident.

✅ Real-world programming skills

By solving real Python challenges, students build not only language syntax knowledge but also problem-solving and computational thinking skills.

📈 What you gain as a teacher

Teachers benefit from both the pedagogical design of Time2Code and the classroom management features in Dodona:

🛠️ Efficient management

Dodona lets you organize your syllabus, set deadlines, and manage exercise series without external tools.

📊 Insightful analytics

Track student progress, identify patterns of difficulty, and intervene early where needed.

💬 Feedback flexibility

Dodona combines automatic test feedback with the ability for teachers to add custom comments, grade more holistically, or scaffold learning — saving time while increasing depth.

🤝 Community and reuse

You can start with the existing Time2Code materials and adapt them for your context or collaborate with other educators who use the same resources.

🧠 Final Thoughts

Bringing Time2Code to Dodona empowers both students and teachers with a workflow that scales from beginner tasks to deeper coding challenges — all within a platform built specifically for programming education. With instant feedback, easy course management, and strong pedagogical foundations, this integration makes teaching Python more effective and engaging than ever.


Click the submit button below to experience handing in code using Dodona. In this case, we have prefilled the editor with a correct solution to a flip_coin function which generates the outcome of flipping an unbiased coin.