2021年度 コンピュータサイエンス第二 (1a)
本授業について

0. はじめに

0.1. 講師・TA紹介

講師

TA

0.2. 質問するには

0.3. 他クラスから移動してきた方へ

1. 本授業で習うこと

最終的な目標 … コンピュータサイエンス的な「考え方」を学ぶこと。

注意: プログラミングが上手である ≠ コンピュータサイエンスを理解している。

この区別は重要である。 大学は世の中が変わっても使える普遍的な知識を学ぶところであり、 特定の職種や技術の訓練を行うところではない (10年後には Python なぞ誰も使わなくなっているかもしれない)。 したがって、プログラムを上手に書けるようになることが この授業の目標ではない

【再帰】
再帰とは、プログラムを簡単にするための抽象的な 考え方のひとつである。本授業では演習を通して再帰を学習する。
【ソートアルゴリズム】
ソートあるいは並べ替えをおこなう プログラムを使って、再帰および計算量の理論の実例を学ぶ。
【計算量の理論】
コンピュータは魔法ではないので、あらゆる 処理には一定の時間がかかる。ここではその感覚を学習する。
【探索】
AIをはじめとする多くの知的な処理は「答えを見つけること」 すなわち探索として処理される。ここでは探索の基礎を学ぶ。
【動的計画法】
以上の成果を使って、最終的に迷路を生成し、 それの最短経路を発見するプログラムを作成する。 動的計画法によってこれが効率的にできることを学習する。
$ python maze.py 21 11

Maze:
#####################
#     # # #         #
# # ### # # ### # # #
# #           # # # #
# # # # ### ##### # #
# # # #   #     # # #
##### ##### # # # # #
# #       # # # # # #
# ### ######### # ###
#             # #   #
#####################

Solution:
#####################
#...  # # #.......  #
# #.### # #.### #.# #
# #.........  # #.# #
# # # # ### #####.# #
# # # #   #     #.# #
##### ##### # # #.# #
# #       # # # #.# #
# ### ######### #.###
#             # #...#
#####################

2. 成績評価の方法

ブレイクアウトルーム演習の採点基準

参加すれば得点。

小課題の採点基準

とにかくプログラムが正しく動けば 5点、そうでなければ 0点。 原則として部分点はなし。コード中にコメント等は必要ない。

中課題の採点基準

  1. エラーを出さずに実行する … +5点。
  2. a. + 正しい結果を出力する … +5点。
  3. b. + コードが理解しやすい … +5点。

「理解しやすいコード」とは

などがある。説明は、長ければよいとは限らない (バランスが重要)。

不正行為に関する警告

課題で他人の答えを写すことは不正行為とみなされ、 単位の剥奪、停学 (最悪の場合) などがありうる。 不正行為をした科目の点数は 0 点になる。
東京工業大学学生の懲戒等に関する規程 本則

第7条(定期試験等における不正行為)
学生が,定期試験等における不正行為のため懲戒処分を受けた場合は,不正行為のあったクォーター(学則第7条第2項及び大学院学則第9条第2項の規定に基づき各学期を前半と後半に分けた期間をいう。以下同じ。)に当該学生が履修した授業科目等の成績をすべて0点又は不合格とする。なお,授業科目等の履修期間が不正行為のあったクォーター以外のクォーターを含む場合も,同様とする。

なお、不正行為はつねに見た側も見せた側も処罰される。 したがって、以下の2点を守ることが重要である:

逆に、課題と直接関係ないこと (PCの使い方など) は 積極的に他人から技を盗むべし。


Yusuke Shinyama