大学の C++ 講義で使っているオンラインコンパイラ
C++ Advent Calendar 2023, 9 日目の記事です。
学校で C++ を教える場合、受講者に最初から Visual Studio Code や、Visual Studio, Xcode などの統合開発環境をインストールしてもらうのは難しいことがあります。
とくにプログラミングが初めての学生、パソコンに不慣れな学生が多い場合は、なるべく環境構築に時間をかけず、スムーズに C++ プログラミングの学習に入れるよう、講義の序盤ではオンラインコンパイラの使用が選択肢として有効です。
本記事では、筆者が実際に大学の C++ 講義で使った 3 つのオンラインコンパイラを、講義での活用の観点から紹介します。
Simple C++ Editor
Simple C++ Editor は、Wandbox をバックエンドとしたオンライン C++ コンパイラです。初心者がよく起こすエラーや警告、実行時のエラーを、エディタ上でわかりやすく日本語で表示するなど、初心者に配慮した設計になっています。C++17 に対応しています。
詳しくは、ツールの作者による記事 C++入門者向けコード実行エディタをつくった話 を参照してください。
▲ 警告やエラーが日本語で表示されます
標準入力を行いたい場合は、あらかじめ入力欄に内容を記述しておく必要があるため、対話を繰り返すタイプのプログラムの実行には不向きです。
▲ 標準入力は実行前に入力欄に記述します
Wandbox
Wandbox は多くのプログラミング言語に対応したオンラインコンパイラです。C++ についても様々なバージョンのコンパイラを選択でき、C++20 はもちろん、C++23 の最新機能を試すこともできます。Simple C++ Editor 同様、標準入力を行いたい場合は、実行前に入力欄に内容を記述しておく必要があります。
Wandbox には、コードと標準入力、実行結果をパーマネントリンクで共有する機能があります。
- Wandbox の共有リンクの例: https://wandbox.org/permlink/1HREvwy28JS6cSlV
学生が課題のコードを提出したり、授業内フォーラムで質問したりする際に、直接コードを本文に書く代わりに Wandbox のリンクを使うよう指示することができます。これには次のような利点があります。
課題の提出に活用する場合の利点
- (ファイルアップロードと比較して)提出時のファイルの取り違えがない。
- (テキストエリアにコードを貼る方式と比較して)インデントが崩れたり、コピペ時にコードの一部が脱落してしまうミスがない。
- Wandbox 上でコンパイルが通ることを確認したコードを提出できる。
- リンク作成後に内容の編集はできないため、提出期限付きの課題とも相性が良い。
フォーラムでの質問に活用する場合の利点
- 質問の本文に長文のコードを貼る必要がない。
- インデントが崩れたり、コピペ時にコードの一部が脱落してしまうミスがない。
- コンパイルエラーがある場合に、そのエラーメッセージも同時に共有できる。
- 読む人がコードを簡単に確認・実行できる。
▲ 授業内フォーラムで、学生が質問の本文に Wandbox リンクを使っている例
replit
replit は、様々なプログラミング言語に対応したオンラインの IDE です。利用には無料のアカウント登録が必要です。replit 公式の C++ テンプレートを使うと、C++14 に対応した Clang を使用できます。
replit は、ファイル一覧、エディター、コンソール画面からなる仮想環境を Web ブラウザ上で提供します。
コンソールは、インタラクティブな入出力に対応し、プログラムの実行中にキーボード入力を受け付けることができます。
ファイル入出力を行うコードを実行し、生成されたファイルを実行後に確認することもできます。
最近の replit のアップデートで、AI によるコーディングアシスタントを利用できるようになりました。
まとめ
本記事では、大学の C++ 講義で使えるオンラインコンパイラを 3 つ紹介しました。昨今のオンラインコンパイラは一昔前と比べて充実した機能を提供するようになり、環境構築の手間を省き、学生が C++ プログラミングの学習に集中できるようにするための有効なツールになっています。ぜひ活用を候補に入れてみてください。
Discussion