オンラインプログラミング環境のガイド
オンラインのプログラミング環境には,統合開発環境のGoogle ColaboratoryやGitHub Codespcaes,Replitなどや,学習支援プラットフォームのScratchやCode Combat,Python Tutor,VisuAlgoがあり,初学者から上級者まで段階的に学習できる.無料版には機能やリソースの制限があるため,用途に応じた選択が重要である.
説明:オンラインのプログラム開発環境 [PDF], [パワーポイント]
【目次】
1. 開発環境(IDE)
Google Colaboratory
- URL:https://colab.research.google.com
- 概要:
- Googleが提供するクラウドベースのノートブック環境
- Jupyterノートブック形式でインタラクティブに開発可能
- ブラウザ上でPythonコードを記述・実行
- データサイエンスやAI開発向け
- クラウドベースのノートブック環境でブラウザ上でPythonコードを記述・実行可能
- インタラクティブな開発環境でリッチテキストと実行可能なコードを1つのドキュメントで扱える
- 機能,特徴:
- Python特化型
- 多数のパッケージが事前インストール済みで環境構築不要
- GPU/TPUの利用が可能
- ノートブックで作業し、リッチテキストと実行可能コードを1つのドキュメントで扱える
- ビジュアルな出力が容易で、プログラムの共有も簡単
- Google Driveとの統合でファイル保存が容易
- Python特化型でPythonプログラミングに最適化
- 事前インストール済みパッケージにより多数のライブラリがすぐに利用可能
- GPU/TPUの利用による高速な計算が可能で、特に機械学習や深層学習のプロジェクトに有効
- グラフや図を簡単に生成でき、結果を視覚的に表示可能
- Google Driveとの統合により、作成したノートブックやデータファイルを簡単に保存・管理可能
- 無料版:
- GPUやTPUを一定時間利用可能(使用には制限があり、長時間の計算や大規模プロジェクトには注意が必要)
- 基本機能は無料
- 無料でGPU/TPUを一定時間利用可能だが、長時間の計算や大規模プロジェクトには制限あり
- 多くの基本機能が無料で利用可能で、教育や研究に非常に便利
- 特徴:データサイエンスや機械学習の学習者や研究者にとって、非常に便利なツール
- 説明: Google Colaboratory の使い方
GitHub Codespaces
- URL:https://github.com/codespaces
- 概要:
- GitHubが提供するクラウドベースの開発環境
- Visual Studio Codeと完全統合され、ブラウザでプログラムを記述・実行可能
- GitHubリポジトリとの統合によりデプロイやバージョン管理が容易
- 機能,特徴:
- ソースコード管理、エディタでの直接編集、クラウドベースでの実行、デバッグ
- GitHubリポジトリとの連携でリポジトリのクローン、環境構築、設定同期が自動化
- コンテナ化された環境はチーム開発での環境統一に効果的
- 自動ビルドのサポート、拡張機能の追加も可能
- 無料版:
- 一定の計算リソースが提供
- 無料利用の詳細はGitHubのアカウントプランによって異なるため、最新の条件を確認することが必要
- 使用可能言語:Python,JavaScript,TypeScript,Ruby,Go,Java,PHP,C++,C#,Rust,Dockerfile など
JupyterHub
- URL:https://jupyter.org/hub
- 基本機能:
- マルチユーザー対応のJupyter Notebook環境を提供する.JupyterHubは,複数のユーザーが独立した作業空間でプログラミングや解析を実行できる分散コンピューティング環境である.
- ユーザーごとに独立したPython実行環境を提供する.これにより,ユーザー間のリソース競合やデータの混在を防止する.
- 特徴的機能:
- ユーザー認証機能を実装している.Google,GitHub,LDAPなどの外部認証システムと連携し,利用者の身元を確認する.GoogleアカウントによるSingle Sign-On(SSO)が可能である.
- 環境の分離機能を備えている.各ユーザーは,プログラミング言語のライブラリ,システム設定,データなど,独自のJupyter環境を保持しカスタマイズできる.
- 基盤となるシステム:
- Jupyter Notebook:ウェブブラウザ上で動作する対話的開発環境である.プログラムを実行し,その結果を直接可視化できる.
- JupyterLab:Jupyter Notebookの機能を拡張した次世代の統合開発環境である.ノートブック,テキストエディタ,対話的プログラム実行環境を統合し,柔軟な開発作業を可能とする.
- 使用可能言語:Python,R,Julia(基本カーネル)
Replit
- URL:https://replit.com
- 概要:
- ブラウザベースのフルスタック開発環境
- フロントエンドとバックエンドを含む開発が可能
- チームでの協力開発に対応
- 機能,特徴:
- AIアシスタントによるコード生成とチャット機能
- ソースコードの編集・実行、プロジェクト作成とデプロイメント、ホスティング、データベース利用
- チームでの共同作業をサポート
- 無料版:
- リソース制限あり
- アイドル状態が続くとセッションが停止する(長時間の継続作業には不向き)
- 一定時間使用後に自動でスリープ
- 使用可能言語:Python,JavaScript,Ruby,Java,C++,PHP,HTML/CSS,Swift,Go,Rust,Julia,Bash など
Streamlit Cloud
- URL:https://streamlit.io/cloud
- 概要:
- Pythonベースのデータアプリケーション開発・ホスティングプラットフォーム
- データサイエンスやAIアプリケーションの迅速な開発とデプロイが可能
- 機能,特徴:
- Pythonコードからウェブアプリケーションを簡単に作成
- データの可視化やインタラクティブな機能の実装が容易
- GitHubとの連携による自動デプロイ
- データサイエンス,機械学習ライブラリとの統合が充実
- 無料版:
- パブリックリポジトリの場合は無料でホスティング可能
- 月間の実行時間に制限あり
- 共有可能なアプリケーション数に制限あり
- 使用可能言語:Python
Cloudflare
- URL:https://developers.cloudflare.com
- 概要:
- エッジコンピューティングプラットフォームとして機能するクラウド開発環境
- グローバルなCDNネットワークを活用した開発とデプロイが可能
- 機能,特徴:
- Cloudflare WorkersによるサーバーレスJavaScript/WebAssembly実行環境
- Pages機能によるJAMstackアプリケーションのホスティング
- KV,D1,R2などのエッジデータストレージサービス
- グローバルネットワークを活用した高速なアプリケーション配信
- 無料版:
- Workers:1日10万リクエストまで無料
- Pages:無料枠での静的サイトホスティング可能
- 基本的なCDN機能とDDoS保護を含む
- 使用可能言語:JavaScript,TypeScript,Python,Rust(WebAssembly)など
Coding Ground
- URL:https://www.tutorialspoint.com/codingground.htm
- 概要:
- ブラウザベースの開発環境で、幅広い開発ニーズに対応
- 機能,特徴:
- コンパイラ/インタプリタがブラウザ上で動作
- コードの編集・実行・共有、ファイルの作成・読み書きが可能
- 複数プログラムファイルの組み合わせが可能
- Web開発やプログラミング教育、データサイエンス用の機能を提供
- 使用可能言語:Python,C,Java,JavaScript, R,Octave/MATLAB,SQLbash,アセンブリ,その他多数

軽量な開発環境
trinket
- URL:https://trinket.io/
- 概要:
- オンラインでプログラミング言語を学習・実行できるプラットフォーム
- 特に教育利用に適している
- どのデバイスからでも、ログインやプラグインのインストールなしでコードを実行・作成可能
- 特徴:
- プラグインやソフトウェアのインストール不要で、コードの共有や埋め込みが容易
- ブラウザベースで、どのデバイスからでもアクセス可能
- ログインやプラグインのインストールなしでコードを実行・作成可能
- 作成したコードを簡単に共有したり、埋め込んだりすることが可能
- 使用可能言語:
- Python
- Java
- HTML
- その他の言語もサポート
- 無料版:
- 基本機能は無料
- 無料アカウントでトリンケットの作成が可能
- インタラクション統計の確認が可能
GDB online
- URL:https://www.onlinegdb.com/
- 概要:
- オンラインでC/C++のコンパイルとデバッグが可能な環境
- 学習環境としても活用可能
- 特徴:
- GDBデバッガを組み込み、対話的なデバッグ作業を実現
- コードのコンパイル・実行・デバッグ・共有が可能
- バグの特定と修正を支援する機能を搭載
- コードアシスト機能も提供
- 対応言語:
- C,C++,Java,Python,PHP,C#. OCam,VB,HTML,Ruby,Perl,Pascal, R,Fortran,Haskell,アセンブリ, Objective C,SQLite,Javascript, Prolog,Swift,Rust,Go,Bash など

JSFiddle
- URL:https://jsfiddle.net/
- 概要:
- HTML, CSS, JavaScriptをリアルタイムでテストできるオンラインプラットフォーム
- HTML, CSS, JavaScript の見た目をオンラインで確認可能
- 特徴:
- ホットリロード機能により即座に結果を確認可能
- 内蔵コンソールによる簡単な動作確認
- フィドルコレクションの作成が可能
- ソーシャルメディアリンクの追加機能
- 説明:HTML, JavaScript プログラミングの体験学習ガイド(JSFiddle を使用)
Paiza.IO,PaizaCloud IDE
- URL: https://paiza.io/
- 概要:
- 多言語対応のオンラインプログラミング環境
- Python, C, Java, JavaScript, R の他にもSQL など多数の言語をサポート
- 表示は日本語に対応
- 一定の条件下でファイル操作も可能
- 主な特徴:
- 多言語サポート:
- Python
- C
- Java
- JavaScript
- R
- SQL
- その他多数の言語に対応
- オンライン実行環境:
- ブラウザ上で直接コードを記述可能
- 即座に実行結果を確認可能
- インストール不要で手軽に利用可能
- ファイル操作機能:
- 一定の条件下でファイルのアップロード可能
- ファイルのダウンロードに対応
- より複雑なプログラムの開発が可能
- 日本語インターフェース:
- ユーザーインターフェースが日本語で表示
- 日本語話者にとって使いやすい設計
- シェア機能:作成したコードを簡単に他のユーザーと共有可能
- 多言語サポート:
- 説明:Python3, Java, C, R, JavaScript, Ruby, Scheme, Bash のプログラミング体験学習ガイド(paiza.IOを使用)
- 説明:PaizaCloud IDE の利用登録手順

AWS Cloud 9
- 機能,特徴
- URL: https://aws.amazon.com/jp/cloud9/
- Ruby on Rails, Apache + PHP + MySQL, Wordpress の実行
- ファイル入出力プログラム
- コマンドラインでビルドや起動の操作
- 説明:プログラミング言語を AWS Cloud 9 で実行する方法(Python, C, JavaScript, Ruby)(Cloud 9 の登録必要)
2. 学習支援プラットフォーム
Scratch
- URL:https://scratch.mit.edu/
- 概要:
- MIT開発の視覚的プログラミング言語
- 小中高校生も利用可能な教育用プラットフォーム
- 機能,特徴:
- ビジュアルプログラミングで直感的な学習が可能
- ブロックを組み合わせてプログラミング
- アニメーションやゲームを作成できる
- 日本語表示に対応
- 利用:無料
- 説明:Scratch プログラミング,Scratch のキャラクタ [PDF], [パワーポイント]

Code Combat
- URL:https://codecombat.com/
- 概要:
- ゲーム形式でプログラミングを学べるプラットフォーム
- 機能,特徴:
- Python,JavaScript,C++などの実践的な言語を学習可能
- 独自のコードエンジンとインタプリタにより初心者向け学習環境を提供
- 日本語表示に対応
- 楽しみながらプログラミングを学ぶことができる
- 利用:基本機能は無料
- 説明:Python 演習(コードコンバット (Code Combat を使用) [PDF], [パワーポイント], [HTML]

Python Tutor
- URL:https://pythontutor.com/
- 概要:
- プログラムの実行過程を視覚的に理解できるオンラインコンパイラ兼デバッガ
- 機能,特徴:
- プログラムの実行過程をステップバイステップで可視化
- 変数やデータ構造の状態変化を図示
- 再帰呼び出しなどの複雑な概念理解を支援
- AIチューターを搭載
- オブジェクトの表示が可能で、ステップ実行がビジュアルに可能
- 対応言語:Python, Java, C, C++, JavaScript, Ruby
- 利用:無料
- 説明:Python,Java,C プログラミングの体験学習(Python Tutor を活用したプログラミング体験)
- 説明スライド:Python Tutor でのPython プログラム実行 [PDF], [パワーポイント]

VisuAlgo
- URL:https://visualgo.net/en
- 概要:
- データ構造とアルゴリズムの学習を支援するオンラインプラットフォーム
- コンピュータサイエンス学習者向け
- 機能,特徴:
- アニメーションによる可視化機能
- 対話的な練習問題
- eラーニング機能を提供
- さまざまなアルゴリズムを擬似言語で学習可能
- ビジュアルな動作画面で直感的に理解
- 対応内容:ソート,グラフ,木構造,NP完全問題,ネットワークフローなど
- 利用:無料利用可
- 説明:データ構造とアルゴリズムを演習できるサイト VisuAlgo [PDF], [パワーポイント]

選択ガイドライン
初心者向け推奨
- プログラミング入門
- Scratch:ビジュアルで直感的なプログラミング入門
- Code Combat:ゲーム形式での基礎学習
- 基礎的なプログラミング学習
- Python Tutor:段階的な学習と視覚的理解
- trinket:シンプルな環境での実践
- アルゴリズム学習
- VisuAlgo:アルゴリズムの視覚的理解
- Python Tutor:アルゴリズムの動作確認
中級者,上級者向け推奨
- Web開発
- Replit:統合的な開発環境と即時デプロイ
- 特定分野
- AI,データサイエンス:Google Colaboratory
- チーム開発:GitHub Codespaces
- 多言語開発:Coding Ground,Replit
- 実践的開発
- オープンソース開発:GitHub Codespaces
注意事項と利用のポイント
- 無料版の制限について
- 機能制限の確認が必要
- リソース使用量の制限に注意
- アイドル時の自動停止などの仕様確認
- 用途に応じて有料版の検討を推奨
- 開発環境の選択
- チーム開発では環境の統一性を重視
- 学習目的の場合は段階的なプラットフォームの移行を推奨
- プロジェクトの規模に応じた適切な環境選択
- 学習時の注意点
- 基礎からの段階的な学習を推奨
- 実践的なプロジェクトへの段階的な移行
- 必要に応じて複数の環境の併用を検討