わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

初めてのオンライン写経プログラミング

 いきなりですが問題です.授業担当者になって,考えてみてください.
 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に設定すると,次のような表示になります.

f:id:takehikom:20201011055141p:plain

 4行目の縦棒は点滅しています.カーソルです.また3行目の「// Your code here!」は不要です.そこで(まずはバックスペースキーの連打で)以下の表示にします.

f:id:takehikom:20201011055149p:plain

 3行目と4行目を打ち込んだ結果です.

f:id:takehikom:20201011055154p:plain

 授業スライドは結果画像を中央において,タイトルは「このように打ち込みましょう」ですが,さらにスライドを作りました.

f:id:takehikom:20201011055201j:plain

 注意事項を箇条書きにしておきます.

  • 日本語入力は一切使用しない(もし打ってしまったら、バックスペースキーで削除してから日本語入力オフ)
  • 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文字)についても同様です.