コンテンツにスキップ

宿題の提出

本ページでは宿題の提出方法について説明します。 本講義ではプログラミング課題を宿題として出しますので、GitHub上で提出してもらいます。

事前にやっておくべきこと

  • GitHubアカウントの取得
  • week1にて告知した通り、ITC-LMSによるGitHubアカウントの提出
  • GitHubにログインしておく

宿題をちゃんと提出できているかの確認(10/16追記

宿題リンクをクリックしたあとの挙動を再度確認します。宿題リンクをクリックすると以下のようになります。 このように、GitHubの初期画面の左側に宿題リポが見えるようになります。 しかし、それらのリポは自分のアカウントの領域に追加されているわけではありません。 宿題リポの実体は、宿題提出用オーガニゼーション:https://github.com/eeic-software1-2020 に追加されています。このリンクをクリックすると、以下のようになります。

これが宿題提出用のオーガニゼーションです。 ここではPeopleを押しても誰も見えませんが、この画面に到達できているということはちゃんと登録されているということです。 ここでは自分の宿題リポジトリの実体が見えます。これらを編集してください。編集するだけでOKです。ほかに提出作業(メールするとか)はありません。 松井からはここに全員分の宿題リポジトリが見えています。締切を過ぎると、これらを一括ダウンロードして採点を行います。

初期設定

毎週、宿題URLを配布します。それをクリックすると、各自のGitHub上に宿題リポジトリが配布されます。 一番最初の一回だけは、宿題URLをクリックすると以下のような初期設定の画面になります。

ここではGitHub ClassroomというGitHub公式の採点システムが、各自のGitHubにアクセスしてもいいですか?と聞いてきています。 「Authorize github」をクリックして承認してください。

次に、下記のような画面になります。ここでは自分の学籍番号をクリックして、紐づけを行ってください。

以上が初期設定です。自動的に次のセクションの「宿題の配布」に進みます。

宿題の配布

配布した宿題URLをクリックすると、次のような画面になります。

これは、「宿題リポジトリをあなたのGitHub上に作ってもいいですか?」と聞かれています。Accept the assignmentをクリックしてください。

その後、自分のGitHubのトップページに移動してください。次のように、宿題リポジトリが生成されています。 ここでは、「week2-hello-world-XXXX」というリポジトリが作られています。 week2の部分は宿題が提出された週、hello-worldは宿題の名前、XXXはあなたのアカウント名です。

これをクリックすると、宿題リポジトリに移動します。

宿題の実行

宿題リポジトリに移動してみましょう。 ここではREADME中に宿題としてやるべきことが書いてあります。

ここでは、やるべきことはmain.cを編集し、Hello World!と出力するようにすることです。 実行すべきコマンドは

$ gcc main.c
$ ./a.out
です。なので、早速main.cをクリックしてみましょう

すると、上の図のように、main.cの中身が表示されます。 このmain.cを編集したいわけですが、当然ながらコードを編集するためにはコンパイルして実行して結果を確認する必要があります。 そこで、実際の編集はrepl.it上(あるいは、ローカル環境が整っているならローカルコンピュータ上)で実行します。 よって、行うべき行為は以下です:

  • repl.it上でmain.cというファイルを作る
  • 上記の宿題リポジトリ中のmain.cの中身を、repl.it上に作ったmain.cにコピペする
  • repl.it上で編集・コンパイル・実行を繰り返し、宿題を解く

こうして、repl.it上でmain.cを完成させます。今回は、printf("Hello!")printf("Hello World!") に修正するのが正解です。

宿題の提出

次に、それを宿題リポジトリ中に反映させます。 上の図の右側の鉛筆ボタン(直接編集ボタン)をクリックします。

すると上のような編集画面になります。ここで、repl.it中に作ったmain.cの 中身をコピペします。 そして、画面をスクロールして一番下にいきます。

一番下は上の図のようになっています。 ここで、「Commit changes」の次の記入欄には、どういう変更を加えたかを一言で記述します(日本語でOKです) そして、一番下の緑色のボタンを押して、更新を反映します(この操作をコミットおよびプッシュと呼びます)

宿題リポジトリのトップ画面に移動すると、次のように、 更新が反映されていることがわかります。これで終わりです。

ちなみに、コードの修正は締切期限の間は何度でも行って大丈夫です。 更新されたリポジトリは、最終的に松井の側で機械的に全て実行して結果を確認します。 もし人のコードをコピペしていたり、コピペしたうえでコピペがばれないように細工をしていた場合、自動的に検出してスコアを下げる予定です。なので、宿題は必ず自分の力で考えて解いてください 【授業後追記】上記は「友達からコードをもらって同じコードを使いましたりしないでください」という意味です。自分でrepl.itでコーディングしたものはもちろんgithubにコピーしていいです(それが基本のやり方です)

発展:Gitを使った提出

上記の手順では手動でファイルを更新しました。 もしGitの使い方を知っている場合は、 通常のGitの使い方で更新してもらってOKです。

$ git clone https://github.com/eeic-software1-2020/week2-hello-world-XXXXX.git
$ cd week2-hello-world-XXXXX
# main.cを編集
$ git add main.c
$ git commit -m "worldを追加"
$ git push origin master

Gitの使い方はweek7で簡単に解説します。