夏になって再開したCS106Bももうlecture22が終了した。 第17回とかそのへんから非常にComputer Scienceな感じが出てきて、Algorithmの特性評価とか、同じ事を実装するのにも異なったデータ構造を使うことによって効率が変わったりすることをひたすらやっている。こういうことはやはり重要なのだろう。大学でもやったことがあったため、すんなり理解することができた。
今はもう次のステップのことであたまがちょっと埋まってきている。iOSアプリの開発である。ちょっと突っついてみて行けそうなら行くし、ダメならProgramming Paradigmに進む。 iOSはopenCVとの関連も合わせて学んでいくつもりである。
最近思ったのは、今まで私が学んできたものはどのようにディジタルの世界で表現するかを学んでいたのであり、言語の仕様などは大した問題ではない。それは、データ構造やプログラミングの作法、アルゴリズムなどを通して学ぶ。そして、それらに付け加えるアドオンこそがその他の知識にあたるMachineLearningやNaturalLanguageProcessing、computer Visionなどである。なんかすっきりした。
一つづつ、平行して学んで行こう。
2011年8月2日火曜日
2011年7月26日火曜日
CS106B: リスタート
今年の4月の頭、3学年の春学期が始まった頃からストップしていたスタンフォードのComputer Science fucultyのオンラインで公開されている講義であるCS106Bを再開した。 Lecture10からの再開である。
再開は、Recursionから。 Assignment3を終わらせてなかったので、やったのだがなかなかに難しい。4番は何故かdatファイルが読み込めないエラーのため、スキップ、6番はわからずに保留中である。
講義のビデオを聞いて思ったのだが、やはり素晴らしい。自然とモチベーションが湧いてくるきがした。私の場合は、同年代の同じフィールドにいる人間が自分よりもがんばってるとか、すごいとかそういうのでモチベーションがあがる。このオンラインレクチャーはぴったりなのだ。
さて、今日からBacktracking Algorythmにはいる。 これはそんなに大した考えじゃなくて、見つけたら終わりという、総当たりなrecursionからpartial recursionなだけだ。 この後に控えてるリスト構造の方が怖い(やったことあるんだけどね。。。)
2011年2月11日金曜日
CS106A: lecture05
本がやっと届いたので、一気にchapter3まで読んで、かつchapter2のプログラミング問題もやって、lecture05を見ることができた。 テキストを読んでいると、授業の内容は非常に簡単。 chapter3だけでなくchapter2の内容に触れることが多かった。 時々jokeを言っている(生徒たちがかなり笑ってる)のを理解できなくて、悲しくなることがありながらも順調である。
2011年2月2日水曜日
CS106a: Lecture 2&3

第2回目の講義から本格的に授業が始まっていくわけですが、一番初めはKarelを使ったIntroductionです。 KarelはJavaを元に作られており、Lecture4以降のJavaへとスムーズに移れるようになっていました。 Karelは非常にシンプルな行動(move, turnLeft, putBeeper, pickBeeper)しか出来ずそれをもとに与えられた問題をKarel君に解いてもらおうというものです。 問題自体非常に楽しかったです。Lecture2で出された1度目のAssignmentが今終わりました。 (problem3は結構悩んだ。。)
結構頭使いますね。 もっと綺麗にできるか試してみます。
さて、授業中に言っていた重要なポイントをまとめます。
1. Codeは自分が読めればいいわけでなく、ほかの人にも読みや少なければならない。
Commentをつけたりしましょう。 プログラムが大きくなれば多くの人と共に組まなくてはならないからです。 コメントのつけ方は、そのパーツが何をしているのかをはじめ、pre-condition&post-conditionを明記する。
2. decomposition
タスクを細分化していくわけですが、どのように細分化するか?
当然、状況によっては細分化の方法は異なるが、基本的には以下に気をつける
・そのsub-classの名前がシンプルとなれる
つまり、そのsub-classの動きが一般的である。 他の状況でも使える。
・sub-classをシンプルな命令のみで記述できる
なかなか、Amazonで注文した"the art and science of java"が届かない。。。
しばし、待つか。 次のを見てしまうか。。
2011年1月31日月曜日
コンピュータサイエンスにおいて世界トップ大学Stanfordの授業をあなたにも
Stanford大学といえばNewsWeekの世界大学ランキングにおいて、2位になるなど世界有数の名門私立大学である。 なかでもComputer Scienceは有名でgoogleの創始者を始めとする数々の才能を輩出してきた。 もちろん、Stanfordに入るからにはその時点で優秀な頭脳を持っているはずだろう。当然、大学に入る前からコンピュータにおいて才能を発揮していたものも多いだろう。 しかし、Stanfordのコンピュータサイエンス学部の学生のほとんどが入学当初はBeginnerであったことは間違いない。 彼らは卒業する頃にはシリコンバレーの企業から引っ張りだこになるわけだが、それまでの間どの様にコンピュータサイエンスを勉強していくのだろうか? コンピュータサイエンスにおいては基本的にスタートは同じなのだ。
まず、彼らが最初に取る授業のうち最もmajorなのはCS106aである。 当然、他にも授業はたくさん存在するがこの授業こそがIntroduction to Programmingとなる。 スタンフォードにおける最大規模の授業のうちの一つだ。この授業ではJavaを用いて、Programming Methodologyを勉強していく。
そう、この授業を元として、数々の優秀な人材が生み出されていくのだ。 是非、この授業を受けたいとお思いだろう。 なんと、この授業はフリーでオンラインで配信されている。 インターネットのもたらしたすばらしい時代の恩恵である。 また、授業内で配られるhand-out、授業のはじめに使用されるKarel、宿題(Assignment)もすべて公開されている。 以下のサイトに行けばすべて揃えられている。
http://see.stanford.edu/see/lecturelist.aspx?coll=824a47e1-135f-4508-a5aa-866adcae1111
誰でも、どこでも、世界トップの授業を受けることができるということだ。ただ、1つだけ足りないものがある。それはCourse Readerである"the art and science of Java"というタイトルの本である。 704ページもありこれはさすがに、公開されていない。 しかし、amazonなどで購入が可能だ(ちと、、高い 6700円くらい) しかし、ここで考えを変えてみよう。たった7000円程度で世界トップの授業を受けられるから、実に安い。 安くて質の高い教材を求めていたらなかなかなにも始められませんよ。
あなたもやってみませんか? 特に先生が魅力的でした。 ビデオを見ればすぐにわかりますよww
なんとこれだけではなく、このCS106aのnatural successor であるcs106bも同様に公開されています。この授業はC++を用いてadvanced programming をやっていきます。 なんとこちらは700ページくらいのcourse reader が公開されていて、何の準備もなく始められますよ
まず、彼らが最初に取る授業のうち最もmajorなのはCS106aである。 当然、他にも授業はたくさん存在するがこの授業こそがIntroduction to Programmingとなる。 スタンフォードにおける最大規模の授業のうちの一つだ。この授業ではJavaを用いて、Programming Methodologyを勉強していく。
そう、この授業を元として、数々の優秀な人材が生み出されていくのだ。 是非、この授業を受けたいとお思いだろう。 なんと、この授業はフリーでオンラインで配信されている。 インターネットのもたらしたすばらしい時代の恩恵である。 また、授業内で配られるhand-out、授業のはじめに使用されるKarel、宿題(Assignment)もすべて公開されている。 以下のサイトに行けばすべて揃えられている。
http://see.stanford.edu/see/lecturelist.aspx?coll=824a47e1-135f-4508-a5aa-866adcae1111
誰でも、どこでも、世界トップの授業を受けることができるということだ。ただ、1つだけ足りないものがある。それはCourse Readerである"the art and science of Java"というタイトルの本である。 704ページもありこれはさすがに、公開されていない。 しかし、amazonなどで購入が可能だ(ちと、、高い 6700円くらい) しかし、ここで考えを変えてみよう。たった7000円程度で世界トップの授業を受けられるから、実に安い。 安くて質の高い教材を求めていたらなかなかなにも始められませんよ。
あなたもやってみませんか? 特に先生が魅力的でした。 ビデオを見ればすぐにわかりますよww
なんとこれだけではなく、このCS106aのnatural successor であるcs106bも同様に公開されています。この授業はC++を用いてadvanced programming をやっていきます。 なんとこちらは700ページくらいのcourse reader が公開されていて、何の準備もなく始められますよ
2011年1月1日土曜日
2011年
以下3つの点において、2010年には問題が見られた。
1、Mindset
意志の弱さ: 壁にぶつかるのは当然だが、そのたびに自分の意志が試されている。本当にそれがしたいのか? 改めてインセンティブを再確認せよ。 やるなら本気を出せ。テンションを上げろ。
行動のリアルタイム性: 根拠の無い自信をもとう。 偶有性の海に飛び込むのだ。チャンスがあればすぐに行動しろ。 やったことのないこと、新しい人に会うこと、迷ってることを
どのdotがどんなdotに繋がるかはわからない。
アウトプット: 世界中のインターネットによって繋がることのできる知の世界の住人達にもっと影響されろ。 真似しろ。 アウトプットだ。
2、English
・もっともっともっと読もう。 足りない。 興味の赴くままに
・もっともっともっと話そう。 足りない。 無意識の赴くままに ミスを恐れずに
3、CS
2010年はなかなか時間が充てられなかった。 でも、もっと面白くなるはずだ。 ひたすらやれ。
world standardを大切に。
1、Mindset
意志の弱さ: 壁にぶつかるのは当然だが、そのたびに自分の意志が試されている。本当にそれがしたいのか? 改めてインセンティブを再確認せよ。 やるなら本気を出せ。テンションを上げろ。
行動のリアルタイム性: 根拠の無い自信をもとう。 偶有性の海に飛び込むのだ。チャンスがあればすぐに行動しろ。 やったことのないこと、新しい人に会うこと、迷ってることを
どのdotがどんなdotに繋がるかはわからない。
アウトプット: 世界中のインターネットによって繋がることのできる知の世界の住人達にもっと影響されろ。 真似しろ。 アウトプットだ。
2、English
・もっともっともっと読もう。 足りない。 興味の赴くままに
・もっともっともっと話そう。 足りない。 無意識の赴くままに ミスを恐れずに
3、CS
2010年はなかなか時間が充てられなかった。 でも、もっと面白くなるはずだ。 ひたすらやれ。
world standardを大切に。
登録:
投稿 (Atom)