前期 最終課題 - oddmutou/jugyo-2026kyototech GitHub Wiki

前期の課題です。シラバスにあるとおり、この授業の成績評価の90%は課題の点数になっています。また、前期で課題はこの1件しかありません。そのため、この課題を行わない、または点数が低い場合は不合格になります。注意してください。

締切

2026/08/05 授業1コマ目の終了時間 (具体的な時間はTeamsの課題情報を確認してください。)

※ Teams内部の時間に依ります。締切(上記締切時刻)を過ぎた提出は不可能になっています。1秒でも遅れると提出不可、つまり不合格になるため気をつけてください。また、前述の通り、その時刻はMicrosoft社の管理するTeams上の時刻のため、私には制御できません。早めに提出することをおすすめします。

採点時間

締切時間から、当日2コマ目終了までのあいだに採点を行います。

AWS Academyのセッションが切れてしまうと自動でEC2インスタンスが止められてしまうため、提出日の授業時間終了時間までは動作し続けているか自身で確認し続けてください。

確認のため、一応声をかける場合があります。採点時間中にやむを得ず離席する場合は、お声がけください。

また、採点日(締切日)の一つ前の授業においても、希望者に対しては採点を実施します。フィードバックも行います。その後の再提出も許可し、再度採点します。採点日に欠席する予定のある方、合格点(60点)を早めに確保しておきたい方等、ご利用ください。

要件および採点基準

以下の要件を満たすWeb掲示板サービスを、AWS上に構築してください。

  • 投稿者が自由にテキストを投稿できること
    • 内容はMySQLに保存すること
    • XSSおよびSQLインジェクションの対策ができていること
  • 投稿それぞれに自動で投稿日時が付与されていること
  • 投稿それぞれに自動で連番が付与されていること
  • 投稿者が5MB以下の画像をアップロードできること

以上の要件を達成し、不備の無いレポートを提出した場合、評価は少なくとも60点以上となります。

追加で、以下のように評価に追加します。順番は問いませんので、得意なもの・できそうなものから取り組むとよいでしょう。

  • 画像をブラウザ側(JavaScriptで実装)で5MB以下に自動縮小しアップロードするように (これができたら+15点)
  • 投稿それぞれに自動で付与されている連番を各投稿に表示し、レスアンカー機能が使えるように (これができたら+10点)
  • CSSを使って、スマートフォンでも見やすいデザインに (これができたら+5点)

その他独自で凝ったデザインにしたり、オリジナル機能を追加してみたりしましょう。適宜加点します。

作成したプログラムについて、この授業資料にあるものを複製し使用することは許可します。それ以外は、自身で実装したものに限ります。

学習において生成AI等のツールを利用することは構いませんが、課題については理解度を測るものであるということと、そこまで大した分量ではないことから、自身で実装・コーディングしてください。

ソースコード

採点にあたりどのように実装したのかも確認します。そのため、アプリケーションプログラムのソースコード(PHP/HTML/CSS/JS)や構築のためのファイル(Dockerfileやcompose.yml,nginxなどミドルウェアの設定ファイルなど)を共有してください。

Githubのパブリックリポジトリに公開してください。

手順書

サービス構築のための手順を書き起こし、第三者が読んで同等のサービスが構築できるようにしてください。初期状態のLinuxサーバー(Amazon LinuxがインストールされているEC2インスタンスであると仮定してもらってかまいません。)に対して、CLI上でどういった操作をしていけばいいのか記述してください。どういったファイルをどのように設置して、どういったふうに起動してどういった手順を踏んでいく必要があるのか、記載してください。ここにおける第三者とは、この授業の内容を履修完了した程度のスキルレベルを想定ししているため、ターミナルの開き方やSSHの方法、テキストエディタやターミナルマルチプレクサの使い方について書く必要は一切ありません。

必ず、手順書記述後に、新しいEC2インスタンスを作成し、その手順書に沿った操作で実際にサービスが構築できるかを自身で確認してください。

手順書が不十分であり、著しく再現性が低いものの場合、減点します。

Markdown形式で記述し、ソースコードと同じリポジトリで公開してください。

提出方法

レポートを作成し、Teamsの課題「前期最終課題」で提出してください。

レポートは、原則、Microsoft Wordで作成し、それの標準のファイル形式(.docx)で提出してください。

TeXでの作成も許可します。その場合、TeXのソースコードと、PDFに出力したものを提出してください。

WordおよびTeX以外の形式でレポートを作成・提出したい人は、事前に相談してください。

レポートの内容

以下の内容を含めたレポートを文書ファイル(.docx)形式で作成し、Teamsの課題「前期最終課題」で提出してください。

  • 学籍番号
  • 名前
  • 構築したサービスのURL
  • ソースコードと手順書を公開しているGitHubのリポジトリのURL
  • 自身で実装したことについてのアピール(あれば)
    • なくてもかまいません。
    • 最低限の要件(60点の要件)以外の実装をしたのであれば、どういったものを実装したのか書いてください。これについてレポート中に記載が無い場合は、60点を超える採点は行いません。
    • 自身で実装していない(自身でプログラムを書いていない)ところについては記載は不要です。自身が書いていないプログラムについてアピールし、採点者に誤認させる行為は、不正行為とします。

レポートの体裁

可能な限り体裁を整えて、記述してください。

様々な大学の先生方の資料がインターネット上に多数公開されていると思うので、参考にしてみてください。

例として、以下のような資料があります。

※この授業においては、ソースコードや手順書はGithubに公開しそのURLをレポートに含めるだけでよいとしているので、プログラムソースコード等のレポート内の埋め込みは不要です。紙であること前提で書かれている説明は無視する、考察はよくあるけど必須とされていないので書かない(書きたかったら書く)、など、本課題の内容に沿って情報を取捨選択してください。

不正行為について

提出者が自身で書いたプログラムや設定ファイルと、本授業資料にある内容を複製したものに限って、提出を許可します。他人および生成AI等に書かせたものを提出した場合は、不正行為とみなします。不正行為の場合は、点数を0点とします。

採点時間中に、ソースコードやレポート内容について口頭試問を行う場合があります。この箇所は何をしているのか、この関数はどういった意味の関数か、等を問います。答えられなかったり、全く関係ないことを回答した場合等、自身で書いた成果物ではないと判断し、不正とし0点とします。

レポートや手順書についても、明らかに自身で書いたものではない場合や、自身で書いていないプログラム等についてアピールするといった正確な採点を妨げる・誤認させるような行為は、不正とし0点とします。