資源
Create Coding Courses

Create Coding Courses

Build coding courses in TutorFlow with an in-lesson IDE, automatically checked coding tests, Python notebooks, and live web previews across 17 programming languages.

本頁內容

TutorFlow supports coding-oriented learning experiences where explanation and practice happen in the same lesson. Learners write and run code directly inside the course with no separate IDE, no copy-pasting, and no switching tabs.

This makes TutorFlow useful for programming bootcamps, computer science courses, engineering onboarding, and self-paced developer upskilling.

Inspect a course before building your own

Open the Python course example. Check how the explanation, code editor, and exercises fit together. For your own first lesson, use the Python source file walkthrough and verify normal, empty, negative, and single-item inputs.

Four coding lesson types

Lesson typeWhat learners doBest for
Coding LessonRead the explanation and practise in an interactive IDE beside itTeaching a concept with hands-on practice
Coding TestSolve coding problems that TutorFlow checks automaticallyGraded exercises and technical assessments
Python NotebookRun Python cell by cell in a Jupyter notebook, with pip packages such as pandas availableData analysis and science courses
WebBuild and preview an HTML, CSS, and JavaScript page in real timeFront-end and web development courses

Coding problems are a lesson type, not a test question type. A standalone Test holds multiple-choice, true/false, fill-in-the-blank, open-ended, and submission questions. To grade code, add a Coding Test lesson to the course.

Supported programming languages

The in-lesson code runner supports 17 languages:

LanguageNotes
PythonThe most used language for data, scripting, and general programming courses
JavaScriptRuns on Node.js; pair it with a Web lesson for browser work
TypeScriptTyped JavaScript for enterprise-focused training
JavaStandard for CS curricula and corporate Java training
CSystems programming and algorithms
C++Algorithms, competitive programming, and systems courses
GoBackend and systems courses
RustSystems and performance-focused courses
KotlinAndroid and JVM courses
SwiftiOS and Apple-platform fundamentals
RubyScripting and web framework courses
PHPWeb development courses
RStatistics and data analysis courses
BashShell scripting and DevOps onboarding
ClojureFunctional programming courses
PascalIntroductory programming and school curricula
Visual Basic .NETLegacy business application training

SQL is not in the runner. For database courses, teach queries in a lecture lesson with highlighted code blocks, or run them from Python in a notebook lesson.

What coding exercises look like in TutorFlow

A coding exercise gives learners a code editor, a problem statement, and a place to run their solution and see the output. In a Coding Test lesson, you define the expected results and TutorFlow checks each submission automatically, so learners get a verdict without waiting for you.

Coding lessons can sit anywhere in a course: as the applied part after a lecture, as a standalone practice block, or as the graded step at the end of a chapter.

A lesson that teaches one coding concept well usually follows this pattern:

  1. Concept explanation. Introduce the idea in plain language, with an analogy if useful.
  2. Worked example. Show a complete, working code sample with annotations.
  3. Guided task. Give learners a pre-filled problem to complete or modify in a Coding Lesson.
  4. Open practice. Ask them to solve a fresh problem from scratch.
  5. Reflection. Have them explain what their solution does and why.
  6. Assessment. Check correctness in a Coding Test and written understanding in a quiz or exam.

What makes coding lessons effective

Short theory blocks work better than long ones. Learners in coding courses want to write code quickly, and long lecture sections before any practice reduce engagement. A good pattern is "explain for two minutes, practice for five."

Progressive difficulty matters more than variety. A well-designed coding course builds one skill at a time, where each exercise is slightly harder than the last. Jumping between unrelated topics in the same lesson breaks the momentum.

When possible, define clear expected outputs for exercises. "Your function should return X given input Y" is easier to check, and easier for learners to verify themselves, than open-ended tasks.