いきなりですが問題です.授業担当者になって,考えてみてください.
Cプログラミング授業の最初に,次のプログラムコードを打ち込んでもらうことにします.オンライン授業です.実施にあたり,どのような点に配慮するといいでしょうか?
#include <stdio.h> int main(void){ printf("Hello, World!\n"); return 0; }
さっそくですが解答です.
- paiza.IOを使用し,最初に打ち込んでもらうのは「printf("Hello, World!\n");」と「return 0;」の行だけにしました.
- 打ち込んでもらう2行について,スライド1枚で詳しく注意点を書きました.
paiza.IOは,今年度の担当授業で初めて「推奨環境」としました.ですが,BYOD PCに処理系などをインストールしてコンパイル・実行していた昨年度や,学内Linuxを用いたもっと前の年度でも,「代替環境」として,学生にアナウンスしていました.
ブラウザでpaiza.IOにアクセスして,プログラミング言語を(デフォルトのPHPから)Cに設定すると,次のような表示になります.
4行目の縦棒は点滅しています.カーソルです.また3行目の「// Your code here!」は不要です.そこで(まずはバックスペースキーの連打で)以下の表示にします.
3行目と4行目を打ち込んだ結果です.
授業スライドは結果画像を中央において,タイトルは「このように打ち込みましょう」ですが,さらにスライドを作りました.
注意事項を箇条書きにしておきます.
- 日本語入力は一切使用しない(もし打ってしまったら、バックスペースキーで削除してから日本語入力オフ)
- print ではなく printf
- 「(」の次と「)」の前は「”」(二重引用符)
- 「World!」の次(バックスラッシュ)は「¥」のキー
- 3行目と4行目の終わりに「;」(セミコロン)
- 「return」の直後に空白文字
- 数字のゼロ(シータではない)
その次にも,C言語に限定することなく,注意が必要な事項をスライドにしています(昨年度のスライドを少し手直ししました).
- 大文字と小文字を区別する
- 似ている文字を間違えない
- I(大文字のアイ)と
- l(小文字のエル)と
- 1(数字のイチ)と
- |(縦棒。Shiftを押しながら¥)など
- 記号を間違えない
- コロン(:)とセミコロン(;)
- コンマ(,)とピリオド(.)
- 対になる記号 ( ) { } " " など
- 空白・空行には意味がない(語の区切りを除く)
- 読みやすくなるように工夫する
- 慣れないうちは、例をまねることから
スライドについてはナレーションを入れて動画にし,木曜日の授業で視聴してもらいました.授業中にTeamsでの質問は特になく,答案を眺めた限り,大きな不具合は見当たりませんでした.
ところで,「#include <stdio.h>」を写経させないとすると,こういったオンライン実行環境がない状況で,学生がCのプログラムを書くときに,「#include <studio.h>」とやってしまいがちではないか,という疑問も考えられます.
この点について,授業で学生に示したもので一つ,将来的に示す予定で一つ,対策があります.学生に示したほうはというと,実際の打ち込みのあと,このプログラムの内容をナレーションする際に,「小なりと大なりの間には,エスティーディーアイオードットエイチと書きます.studioではありません.uは入りません」と話しました.そして動画をすべて観たあとの確認問題を,空欄適語形式としました.そこで「#include <???>」と書いて提示し,stdio.hを記入してもらうようにしました.
将来的に示す予定のほうですが,paiza.IOおよびオンライン実行環境の利用に関する注意点を,しゃべり直します.paiza.IOは手軽にCなどのプログラムを編集・実行するためのWebサービスであり,「#include <stdio.h>」「int main(void){」「}」は,オンラインプログラミングサービスやIDE(統合開発環境)などが用意している「コード・テンプレート」です*1.他の環境でコーティングすることになり,Cの最初に何を書くのかを度忘れしたら,授業で提出した自分のコード,またはこういったコード・テンプレートをもとに,「#include <stdio.h>」を見つければいいのです.
*1:個人的には,mainの宣言行の最後の「{」は独立した行にするコーディングスタイルを採用してきましたが,今回の授業ではpaiza.IOのコード・テンプレートに合わせました.インデント幅が空白4文字(ふだんの使用は空白2文字)についても同様です.