オンラインプログラミング環境のガイド

オンラインのプログラミング環境には,ブラウザ上でコードの編集・実行・デバッグを行う開発環境(IDE)と,プログラミングの概念理解や基礎学習を支援する学習支援プラットフォームがある.本資料は,プログラミングを学ぶ学生や,新しい環境を試したい技術者を対象とし,無料で利用を開始でき,学習・開発に広く使われている環境を取り上げる.開発環境にはGoogle Colaboratory,GitHub Codespacesなど,学習支援プラットフォームにはScratch,Code Combat,Python Tutor,VisuAlgoなどがある(いずれも代表的な一例であり,本文ではこれら以外の環境も併せて解説する).これらの環境を利用することで,初学者から上級者まで段階的に学習できる.

各サービスの機能・対応言語・無料枠は変更されることがある.無料版には機能やリソースの制限があるため,利用前に公式サイトで最新の条件を確認し,用途に応じて選択する.

目的別の選択指針:AI・データサイエンスにはGoogle Colaboratory,チーム開発にはGitHub Codespaces,プログラミング入門にはScratchやCode Combat,アルゴリズム学習にはVisuAlgoやPython Tutorが適している.詳細は「選択ガイドライン」を参照する.

説明:オンラインのプログラム開発環境 [PDF][パワーポイント]

【目次】

  1. 開発環境(IDE)
  2. 学習支援プラットフォーム
  3. 選択ガイドライン
  4. 注意事項と利用のポイント

1. 開発環境(IDE)

IDE(Integrated Development Environment:統合開発環境)は,ソースコードの編集,コンパイル,実行,デバッグなどの機能を統合したソフトウェアである.オンラインIDEでは,これらの機能をブラウザ上で利用できるため,ローカル環境を構築せずにプログラミングを開始できる.本節では,用途別に主要なオンラインIDEを紹介する.

本節では,編集・実行・デバッグを統合した狭義のIDEに加えて,開発したアプリケーションの公開・配信を主目的とする基盤(Streamlit Cloud,Cloudflareなど)も,開発の流れの中で利用する環境として併せて取り上げる.

クラウドベースの統合開発環境

クラウドベースの統合開発環境は,計算リソースやストレージをクラウド上に置き,ブラウザからアクセスして利用する形態である.ローカルPCの性能に依存せず,高度な計算処理やチーム開発が可能である.

Google Colaboratory

GitHub Codespaces

JupyterHub

特定用途向け開発環境

以下の開発環境は,データアプリケーション開発やエッジコンピューティングなど,特定の用途に特化した機能を提供する.

Streamlit Cloud

Cloudflare

多言語対応開発環境

以下の開発環境は,複数のプログラミング言語に対応しており,言語の学習や比較,多様なプロジェクトでの利用に適している.

Coding Ground

Coding Ground の画面

軽量な開発環境

以下の開発環境は,インストール不要で軽量に動作し,学習や簡易的なコード実行に適している.機能は限定されるが,起動が速く,手軽にコードを試せる.

GDB online

GDB online の画面

JSFiddle

Paiza.IO,PaizaCloud IDE

Paiza.IO の画面

AWS Cloud9

2. 学習支援プラットフォーム

学習支援プラットフォームは,プログラミングの概念理解や基礎学習を支援するサービスである.視覚的なフィードバックやゲーム要素を取り入れ,初学者が取り組みやすい環境を提供する.

ビジュアルプログラミング環境

ビジュアルプログラミング環境では,テキストによるコード記述ではなく,ブロックやアイコンを組み合わせてプログラムを作成する.構文エラー(文法上の誤り)が生じにくく,プログラミングの論理構造の学習に集中できる.

Scratch

Scratch の画面

Code Combat

Code Combat の画面

プログラム実行可視化ツール

プログラム実行可視化ツールは,コードの実行過程を視覚的に表示し,変数の変化やアルゴリズムの動作を理解しやすくする.デバッグ技術の習得にも利用できる.

Python Tutor

Python Tutor の画面

VisuAlgo

VisuAlgo の画面

3. 選択ガイドライン

オンラインプログラミング環境の選択は,学習段階や目的によって異なる.以下に,習熟度別・目的別の推奨環境を示す.本資料で取り上げた環境を対象とし,主な用途を示す.

初心者向け

  1. プログラミング入門
    • Scratch:ビジュアルで直感的なプログラミング入門
    • Code Combat:ゲーム形式での基礎学習
  2. 基礎的なプログラミング学習
    • Python Tutor:段階的な学習と視覚的理解
    • trinket:シンプルな環境での実践
    • Paiza.IO:日本語表示で手軽にコードを試せる多言語環境
  3. アルゴリズム学習
    • VisuAlgo:アルゴリズムの視覚的理解
    • Python Tutor:アルゴリズムの動作確認
  4. 特定言語の手軽な実行・デバッグ
    • GDB online:C/C++のコンパイルとデバッグの学習
    • JSFiddle:HTML/CSS/JavaScriptの即時確認

中級者・上級者向け

  1. Web開発
    • Replit:統合的な開発環境と即時デプロイ
    • Cloudflare:エッジ環境でのアプリ配信・サーバーレス実行
  2. 特定分野
    • AI,データサイエンス:Google Colaboratory
    • データアプリの公開:Streamlit Cloud
    • チーム開発:GitHub Codespaces,Replit
    • 多人数での解析環境の共有:JupyterHub
    • 多言語開発:Coding Ground,Replit
  3. 実践的開発
    • オープンソース開発:GitHub Codespaces

4. 注意事項と利用のポイント

オンラインプログラミング環境を活用するために,以下の点に留意する.

  1. 無料版の制限について
    • 機能の制限を確認する
    • リソース使用量の制限に注意する
    • アイドル時の自動停止などの仕様を確認する
    • 用途に応じて有料版の利用を検討する
  2. サービスの提供状況について
    • サービスは,提供の終了や新規受付の停止が行われることがある(例:AWS Cloud9は新規ユーザーの受付を終了したとされる)
    • 学習や開発の前に,対象のサービスが現在も新規利用できるか公式サイトで確認する
  3. 開発環境の選択
    • チーム開発では環境の統一性を確保する
    • 学習目的の場合は,段階的なプラットフォームの移行を検討する
    • プロジェクトの規模に応じた環境を選択する
  4. 学習時の注意点
    • 基礎からの段階的な学習を行う
    • 実践的なプロジェクトへの段階的な移行を検討する
    • 必要に応じて複数の環境の併用を検討する