本文へスキップ

Python Typing Tutor

About

Python Typing Tutor について

Python Typing Tutor は、Python の基礎を写経で学ぶ初学者向けの学習サイトです。 短い Python のお手本コードを 1 文字ずつ入力し、その場でブラウザ上で実行して結果を確認しながら、文法と書き方を体で覚えていくことを目的としています。

運営者について

本サイトは、ソフトウェアエンジニアの個人 (ハンドル: Krminfinity) が、業務とは別に個人開発として運営しているサイトです。Python 学習の初期ハードルを下げたい、写経という古典的な学習法を現代の Web ブラウザ上で再現したい、という動機で立ち上げました。

サイトのソースコードは GitHub で公開しており、レッスンの追加・修正の履歴、品質保証のためのカリキュラム検証スクリプトなどを誰でも確認できます。
github.com/Krminfinity/python-typing-tutor

本サイトは商用パッケージや有料コースとして販売しているわけではなく、収益は表示している広告のみに依存しています。ご質問・ご要望・不具合のご報告は、後述の「お問い合わせ」セクションからご連絡ください。

このサイトでできること

  • 用意された Python のお手本コードを 1 文字ずつ写経して入力する練習。
  • 書き写したコードをブラウザ上でそのまま実行し、期待される出力と一致するかを確認。
  • 各レッスンの最後にある発展問題で、自分でコードを書いて課題を解く演習。
  • 現在は 131 レッスン / 全 415 問の練習問題を提供しています。

対象ユーザー

プログラミング初心者、特に Python を初めて学ぶ方を主な対象としています。 基礎の print や四則演算から、条件分岐 (if) と繰り返し (for) までを順番に練習できる構成です。

学習進捗の保存

Google アカウントでログインすると、完了したレッスンや現在の進行位置が自動的に保存され、次回以降は途中から再開できます。 ログインしない場合でもページの閲覧は可能ですが、学習の進捗は保存されません。

使用している技術

ブラウザ上の Python 実行には Pyodide を、認証と進捗の保存には Firebase Authentication と Firestore を使用しています。 実行環境やデータの取り扱いの詳細は、プライバシーポリシーをご参照ください。

発展問題の採点の仕組み

各レッスンの末尾に用意されている発展問題は、隠れた Python スクリプト (チェッカー) によって自動で採点されます。 チェッカーには 2 種類あり、(1) 学習者が定義した関数を実際に呼び出して戻り値や標準出力を比較する方式、(2) 学習者が書き出した変数の中身や print 出力を直接検証する方式 を、レッスン内容に応じて使い分けています。 お手本どおりでない別解でも、同じ結果が得られるなら合格と判定する設計にしています。採点結果と簡単なフィードバックは画面上にその場で表示されます。

教材の品質を保つための取り組み

全レッスンのお手本コードと期待される出力は、サイトのビルド時にカリキュラムデータとして整合性が検証されます。 発展問題の自動採点スクリプトについても、想定する模範解答が必ず合格判定になることを公開前に確認しています。 文章の言い回しや誤字、レッスンの不明瞭な点を見つけられた場合は、お問い合わせフォームからご一報いただければ、内容を確認のうえ修正対応します。

学習にかかる時間の目安

1 レッスンあたり写経 2 問で 10 〜 15 分、発展問題まで含めて 15 〜 25 分が目安です。 全 131 レッスンを完走するには合計で 5 〜 8 時間程度を想定しています。 ただし写経学習は短時間でも毎日続けるほうが定着しやすいので、1 日 1 レッスンずつ少しずつ進めることをおすすめします。途中で中断しても、Google ログイン状態であれば次回ログイン時に続きから再開できます。

動作環境について

最新版の Chrome / Edge / Safari / Firefox で動作確認しています。Internet Explorer はサポート対象外です。 Pyodide の初回ダウンロードに数 MB のデータ通信が発生するため、初めて利用するときは安定したネットワーク環境での起動を推奨します。 スマートフォン・タブレットでも動作しますが、写経学習の性質上、物理キーボードまたは Bluetooth キーボードを接続した PC・タブレットでの利用が最も快適です。

更新方針

カリキュラムは段階的に拡充していく予定です。レッスンの追加・変更内容は GitHub のコミット履歴で公開しており、いつどのような修正が入ったかを誰でも追跡できます。 既存のレッスン ID・ステージ ID は後方互換のため原則として変更しません (URL や保存済み進捗データへの影響を避けるためです)。 重要な変更や仕様変更を行う際は、本ページや関連ページの記載を更新したうえで反映します。

お問い合わせ

本サイトに関するご質問・ご要望、不具合のご報告、レッスン内容の誤りに関するご指摘、進捗データの削除依頼などは、お問い合わせページからメールでご連絡ください。内容を確認のうえ、できる限り迅速に返信いたします。