2018年度 アルゴリズム入門(理科一類 1-3,5,7-8,10組)
担当 田中哲朗
時間,教室
水曜日 4限(14:55-16:40)
情報教育棟2階 大演習室1 (10/24, 31, 11/7, 12/19, 1/9は3限に講義が入っているので,3限終了後に入室してください)
講師紹介
田中哲朗のWWWページ
専門はプログラミング言語処理系とゲームプログラミング(
GPS将棋
,
どうぶつしょうぎ
)
駒場情報教育棟3階研究室(E33)
TA 紹介
工学系研究科システム創成学専攻のHUANG YUNTAOさん (10/31まで)
総合文化研究科広域システム科学系の高岡 峻さん
総合文化研究科相関基礎科学系の西浦直人さん(11/7, 21, 28の3回)
情報学環総合分析情報学コースの朱捍華さん(12/5, 1/9の2回)
工学系研究科精密機械工学専攻の呉小玢さん(12/12)
情報
ITC-LMS
の「アルゴリズム入門(水4)」コース上の掲示板を利用します.
メールでの質問は,
宛にメー ルを出してください.このメールアドレスは,教官とTAが登録されています.ただ し,メールで送られた質問であっても,回答を全体で共有した方が良いと思わ れる場合は,差出人を伏せた上で,WWW教材に引用することがあります.
「アルゴリズム入門」で何を学ぶか
「アルゴリズム入門」全般のページ(
アルゴリズム入門共通資料
)
プログラミングに関する基礎的な概念を身につけます。どのようにして、 我々の使うコンピュータが動いているのかを理解します.
Python言語 (Python 3)
を使って楽しいプログラムを作ります.
授業日程(全13回)
9/26
講義の概要・まずは使ってみる(1)
10/3
まずは使ってみる(2), プログラムを作ろう(1)
10/10
プログラムを作ろう(2), 大規模データ処理の基本:成績の集計(1)
10/17
大規模データ処理の基本:成績の集計(2)
10/24
ライフゲーム(1)
10/31
ライフゲーム(2)
11/7
放物運動のシミュレーション
11/14 (補講日につき授業はなし)
11/21
カードゲームのシミュレーション(1)
11/28
カードゲームのシミュレーション(2),データの検索(1)
12/5
データの検索(2)
12/12
データの検索(3)
12/19
多次元データからの情報抽出: 回帰分析(1)
1/9
多次元データからの情報抽出: 回帰分析(2), 発展項目
授業の進め方
講義+(主に時間中の)演習, 課題という形になります.講義中に演習が入ることがあるので,最初からログインしておくようにしてください.
時間内の演習内容はその都度指示があります.
評価
試験と平常点(演習, 課題)で評価します.配点は大体 6:4程度になります.
試験について
試験は 1/24(木) 3限(13:10-)になりました.試験時間は60分の予定です.
詳細が決まり次第,
アルゴリズム入門共通資料
のページで公開されます.
計算量のオーダを答える問題が出題されたときは,「なるべく簡単な形で解答すること」が必ず補われているものと思って解答するように.
2010年度共通問題
2011年度共通問題
2012年度共通問題
2013年度共通問題
2014年度共通問題
2015年度共通問題
2016年度共通問題
2017年度共通問題
試験答案返却
期末試験を受験した人は,2月2日(土) から 2月10日(日) 0:00の間,ITC-LMSの課題「答案返却」のフィードバックファイルの形で,採点済みの答案と解説のPDFファイルがダウンロードできます.
採点に関する要望等がある場合は,ファイルを作成して2月9日までに「課題提出」の仕組みを使って提出してください.
「Wセメスター」に入ったため,ITC-LMSにログイン直後は,時間割から「アルゴリズム入門」が消えています.時間割で「2018年度」,「A2ターム」を選択すると,「アルゴリズム入門」を選ぶことができます.
2月10日(日) 0:00までに採点済みの答案と解説のPDFファイルをダウンロードしたのは,36名でした.採点に関する要望を出したり,掲示板に書き込んだ人はいませんでした.
授業の登録方法
教材のダウンロード,課題の提出のため,ITC-LMSへのコース登録が必要になります.
ITC-LMSへの登録方法
に従ってコース登録してください.
Utask-Webでの履修登録は別に必要になります.
講義資料
教科書の代わりになる,「標準テキスト」がITC-LMSに登録後に「教材」からダウンロード可能です.他の人への再配布は禁止します.
修正が
アルゴリズム入門 共通資料 (2018年度)
のページで公開されています.
講義スライドはITC-LMSで「教材」を選択するとPDFファイルをダウンロードできます(講義が進むに連れて追加されます).PDFファイルからプログラムをコピー & ペーストすると動かないことがあります。
講義フォルダの作成
講義に関連したファイルはホームフォルダ直下に置くのではなく,講義専用のフォルダをalgo18 という名前で作成してください.ターミナルでフォルダを作るには,
mkdir ~/algo18
のようにします.そして,ターミナルを開くたびに
cd ~/algo18 jupyter notebook
と入力してJupyter Notebookを動かしてください.詳しくは,
はいぱーワークブック「14.4 コマンドを使ったファイル操作」
を参照してください.
Finderのサイドバーに自分のホームフォルダ「共通IDの数字10桁」が表示されていないと作成したフォルダがアクセスしにくいかもしれません.このときは,Finderのメニューの「Finder」->「環境設定」->「サイドバー」を選び,よく使う項目の中で家のアイコンが描かれた「共通IDの数字10桁」のチェックボックスにチェックを入れてください.
Notebook教材
以下のNotebook教材は,~/algo18 以下に ダウンロードして,Jupyter Notebookからopenして使ったり,
Google Colaboratory
を使って,クラウド実行環境でPythonプログラムを実行できます.ダウンロードする場合も
Google Colaboratoryの使い方
を参照してください.Googleアカウントへのログインを求められたときは,通常のGoogleアカウント「XXX@gmail.com」ではなく,
ECCSクラウドメール
のアカウント「XXX@g.ecc.u-tokyo.ac.jp」を使ってログインしてください.
第2章 Notebook
第3章 Notebook
第4章 Notebook
第5章 Notebook
第6章 Notebook
第7章 Notebook
第8章 Notebook
第9章 Notebook
第10章 Notebook
第11章 Notebook
第12章 Notebook
投票システム
vote.py
をダウンロードして(「リンク先のファイルを別名で保存」で,ホームフォルダの下のalgo18を選択(なければ作る).".txt"を「追加しない」を選ぶ),ホームディレクトリに保存します.ドックからターミナルを起動して,
cd algo18
を済ませてから,
python vote.py 選択肢番号
のように使います.
参考書
Python言語によるプログラミングイントロダクション第2版: データサイエンスとアプリケーション(近代科学社)
MITでプログラミング入門教育用に教科書として使われている書籍の日本語版
関連リンク
はいぱーワークブック
情報基盤センター教育用計算機システム
昨年度講義資料
(今年度からPython言語に変わったので参考程度ですが)
Python言語リファレンス
プログラミングコンテスト関係
ACM国際大学対応プログラミングコンテスト(ACM-ICPC) アジアつくば大会
ACM
という計算機関係の学会が主催する
International Collegiate Programming Contest
の予選大会.3人のチームで1台のコンピュータを使い,制限時間内になるべく多くの問題を解くプログラムを作成する.この大会で上位に入ると世界大会に招待される.
「実践的プログラミング」
金子知適先生
が主催している全学自由セミナー.「ACM国際大学対抗プログラミングコンテスト」を題材にして、過去問を解くなどの演習をおこなう.前回の世界大会に東大から参加したチームは このゼミの参加者.
プログラミングコンテストチャレンジブック[第2版]
東大生が書いたプログラミングコンテスト対策本
CodingGame
ゲームを題材にしたプログラミングコンテストサイト.20種類以上のプログラミング言語を選べ,Python言語も含まれている.