Download - 20090616 フレッシュマンセミナー
![Page 2: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/2.jpg)
経歴
1985-1994 1994-1997 1997-2009
![Page 3: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/3.jpg)
担当講義
情報通信工学実験1B(2年)
プログラミング言語Ⅱ(2年)
コンパイラ(3年)
プログラミング言語Ⅲ(3年)
形式言語理論(修士1年)
![Page 4: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/4.jpg)
ソフトに興味あり
データベース
テキスト処理、文書(XML)処理
プログラミング言語
Web技術
オートマトン理論
![Page 5: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/5.jpg)
KUNISHI ON BOOKS
![Page 6: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/6.jpg)
KUNISHI ON THE WEB
![Page 7: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/7.jpg)
今日の内容
高校・大学時代の体験談
高校数学から情報科学へ
そしてプログラミングへ
![Page 8: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/8.jpg)
高校・大学時代の 体験談
![Page 9: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/9.jpg)
高校時代は
コンピュータとは無縁
数学が好き
物理・化学は… (>_<)
英語や国語の方が得意だったかも
![Page 10: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/10.jpg)
パソコンは高嶺の花 NEC PC-9801VX01 (1987年)
CPU 8MHz
HDDなし(FDのみ)
Windows なし
353,000円(今だと50万円以上?)
![Page 11: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/11.jpg)
関数電卓?
ポケットコンピュータ(ポケコン)
メモリ2~16KB
ディスクなし
BASICのプログラムが動いた
![Page 12: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/12.jpg)
INTERNET 黎明期
1984 東大、東工大、慶応大
1988 大学・企業の研究所間
1992以降 個人へ普及
1990年代 携帯電話登場
![Page 13: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/13.jpg)
大学選びは安直…
数学を生かしたい→当時の京大では選択肢3つ
理学部数学科:就職に困るらしい…
工学部数理工学科, 工学部情報工学科
パンフを読んでも違いが分からん!!→偏差値で情報工学科を選択
コンピュータはあまり意識せず
![Page 14: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/14.jpg)
1985年 京都大学工学部情報工学科入学
![Page 15: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/15.jpg)
誤 算
![Page 16: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/16.jpg)
誤算その1
物理が結構必要だった…
![Page 17: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/17.jpg)
誤算その2
大学の数学は難しかった…
![Page 18: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/18.jpg)
誤算その3
専門では微積分はあまり使わなかった
「独特」の理論
ブール代数etc.
パズルに近い
![Page 19: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/19.jpg)
結果オーライ?
もともとパズルは好き
数学よりプログラムの方が合っていたらしい
![Page 20: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/20.jpg)
卒論でやったこと
C, C++で1,500行程度のプログラミング
![Page 21: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/21.jpg)
念のため
プログラミングの達人では決してない
同期にももっと凄いのがいた
皆さんの中の凄腕プログラマのほうが実力は私より上のはず
![Page 22: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/22.jpg)
高校数学から 情報工学へ
![Page 23: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/23.jpg)
情報工学の二面性
ハードウェアを作る
ソフトウェアを作る
物理 連続系の数学
離散系の数学
![Page 24: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/24.jpg)
連続系 VS 離散系
連続した数 (実数)
連続しない数 (整数, 0/1 etc.)
微分・積分
集合 剰余系 場合の数 数列
数学的帰納法
物理現象
情報数学
![Page 25: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/25.jpg)
情報科学への橋渡し
![Page 26: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/26.jpg)
ケーニヒスベルクの橋
図の7つの橋を各1度ずつ通って元の場所に戻ってくることができるか。ただし、同じ橋を2度以上通ってはならない。
関連:グラフ理論
![Page 27: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/27.jpg)
ハノイの塔
台の上に3本の棒A, B, Cがあり、Aに n 枚の円盤がはまっている。円盤は下ほど半径が大きい。次のルールを満たしながら、円盤をすべてBに移すのに必要な手数を n で表せ。
一度に一枚の円盤しか移動できない
途中で円盤の大小を逆にしてはいけない
関連:再帰
![Page 28: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/28.jpg)
そして プログラミングへ
![Page 29: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/29.jpg)
誰だって難しい
![Page 30: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/30.jpg)
まず敵(味方?)を知る
コンピュータは
複雑な処理は苦手
単純な処理の繰り返しが得意
中間結果をたくさん覚えても平気
![Page 31: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/31.jpg)
例:定積分
人間は不定積分から計算
⇤ 1
0
x2dx =�13x3
⇥1
0
=13
![Page 32: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/32.jpg)
例:定積分
コンピュータは不定積分のような式変形は苦手
区分求積法
n = 1000 で 0.3338335
⌃ 1
0
x2dx ⇥n⇧
k=1
⇤�k
n
⇥2
· 1n
⌅=
1n3
n⇧
k=1
k2
![Page 33: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/33.jpg)
プログラムの例
S = 0;for (k = 1; k <= n; k ++) { S = S + k * k;}S = S / (n * n * n);
⌃ 1
0
x2dx ⇥n⇧
k=1
⇤�k
n
⇥2
· 1n
⌅=
1n3
n⇧
k=1
k2
![Page 34: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/34.jpg)
フィボナッチ数列
F0 = 1, F1 = 1, Fn+2 = Fn+1 + Fn
1, 1, 2, 3, 5, 8, 13, 21, 34, …だが一般項は複雑
Fn =1⇥5
⇤�1 +
⇥5
2
⇥n
+
�1 −
⇥5
2
⇥n⌅
![Page 35: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/35.jpg)
プログラム=漸化式
int F(int n) {
if (n == 0) return 1; else if (n == 1) return 1; else {
return F(n-1)+F(n-2); }
}
F0 = 1, F1 = 1, Fn+2 = Fn+1 + Fn
![Page 36: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/36.jpg)
法則を見つける
今日は日曜日です。100日後は何曜日?
1日後は月、2日後は火、…100日後は火
![Page 37: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/37.jpg)
法則を見つけよ
今日は日曜日。1億日後は何曜日?
とても数えられません
7の倍数日後はいつも日曜日。 1億÷7 = 14285714 あまり 2。∴火曜日
![Page 38: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/38.jpg)
法則を見つけよ
今日は日曜日。10100日後は何曜日?
10100なんて計算できない
10100を7で割った余りも計算できない
10nを7で割った余りを、n=1, 2, …で計算してみよう
![Page 39: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/39.jpg)
すると
100 % 7 = 1, 101 % 7 = 3, 102 % 7 = 2, 103 % 7 = 6, 104 % 7 = 4, 105 % 7 = 5, 106 % 7 = 1, 107 % 7 = 3, …
%:剰余を表す演算子
周期6で同じ数が出る(1, 3, 2, 6, 4, 5)
100 % 6 = 4 ∴木曜日
![Page 40: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/40.jpg)
プログラムにすると
void nannyoubi(int n) { if (n%6 == 0) { printf(“月曜日¥n”); } else if (n%6 == 1) { printf(“水曜日¥n”); } else if (n%6 ==2) { /* 以下省略 */ }
![Page 41: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/41.jpg)
経験に基づく プログラミング学習の
アドバイス
![Page 42: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/42.jpg)
プログラミング学習は
語学学習に似ている
![Page 43: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/43.jpg)
人の真似は大事
インプットがなければアウトプットはできない
まずは他人のコードの真似から
人のコードを読んで引出しを増やせ
![Page 44: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/44.jpg)
Cと相性が悪くても
世の中には無数にプログラミング言語がある
プログラミングの根は共通
一つ言語をマスターすれば、他の言語に応用が利く
![Page 45: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/45.jpg)
本を読もう
経験に基づく仮説
国語力のある人はプログラミング能力も高い
プログラム=(プログラミング言語という)言語で書かれた文章
文章に触れる機会を増やしてください(ジャンルは問いません)
![Page 46: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/46.jpg)
諸君の健闘を祈る
![Page 47: 20090616 フレッシュマンセミナー](https://reader031.vdocuments.mx/reader031/viewer/2022022123/58a44c541a28ab55068b48d3/html5/thumbnails/47.jpg)
レポート課題
以下の2点についてA4用紙1枚程度にまとめ、6/23(火)17:00までに提出せよ。(提出場所:2610室)
ケーニヒスベルクの橋、もしくはハノイの塔(解に至る経過も含めて)
今日の講義の感想