<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>JugglerShu.Net &#187; Free Lectures</title>
	<atom:link href="http://programming.jugglershu.net/wp/?cat=74&#038;feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://programming.jugglershu.net/wp</link>
	<description>Nothing But Programming</description>
	<lastBuildDate>Wed, 15 Apr 2020 08:11:15 +0000</lastBuildDate>
	<language>ja</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=3.9.40</generator>
	<item>
		<title>UCBerkeley CS61A Structure and Interpretation of Computer Programming Week1</title>
		<link>http://programming.jugglershu.net/wp/?p=570</link>
		<comments>http://programming.jugglershu.net/wp/?p=570#comments</comments>
		<pubDate>Thu, 30 Sep 2010 12:45:00 +0000</pubDate>
		<dc:creator><![CDATA[shu]]></dc:creator>
				<category><![CDATA[Free Lectures]]></category>
		<category><![CDATA[Structure and Interpretation of Computer Programs]]></category>

		<guid isPermaLink="false">http://programming.jugglershu.net/wp/?p=570</guid>
		<description><![CDATA[いろいろな大学が授業の様子をYouTubeやiTunesUで公開しているというのは、いままでもブログに何度か書いてきた。ここへ来て、真面目に順番に授業を受けようと思い、始めている。一つ受ける度に、ブログにそのまとめを載せていこうと思う。これから、この教材を使って勉強しようとする人のガイドになればと思う。 第一段はUCBerkeleyのCS61A(Structure and Interpretati <a class="more-link" href="http://programming.jugglershu.net/wp/?p=570">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>いろいろな大学が授業の様子をYouTubeやiTunesUで公開しているというのは、いままでもブログに何度か書いてきた。<br />ここへ来て、真面目に順番に授業を受けようと思い、始めている。<br />一つ受ける度に、ブログにそのまとめを載せていこうと思う。これから、この教材を使って勉強しようとする人のガイドになればと思う。</p>
<p>第一段はUCBerkeleyのCS61A(Structure and Interpretation of Computer Programming)。授業は以下のサイトにある。<br /><a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewiTunesUCollection?id=354818464#ls=1">http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewiTunesUCollection?id=354818464#ls=1</a></p>
<p>教科書は有名な本だが、Structure and Interpretation of Computer Programs（SICP)となっている。教科書はオンラインで読むこともできる。<br /><a href="http://www-mitpress.mit.edu/sicp/full-text/book/book.html">http://www-mitpress.mit.edu/sicp/full-text/book/book.html</a></p>
<p>また、宿題や試験の内容がここにある。（宿題はCourse Reading Vol1にある。）<br /><a href="http://www-inst.eecs.berkeley.edu/~cs61a/fa10/">http://www-inst.eecs.berkeley.edu/~cs61a/fa10/</a></p>
<p>スケジュールを見ると、大体一週間に2～4講義分ぐらい進むらしい。Course Reading Vol1には、Week1、Week2とかかれていて、それぞれやることが書いてあるので、それに併せて、ビデオを見ながら進めようと思う。<br />やり方としては先に教科書を読んでビデオを見て、宿題をやってもよいし、先にビデオを見て宿題をやってから本を読んでもよいし、教科書と授業の順番はどうでもよいと思う。<br />僕はビデオを見て、教科書を読んで、宿題を行うという順で行った。</p>
<p>この授業にはCourse Reading Vol1とVol2という二つがある。<br />Vol1はセメスターごとに少しずつ変更になる内容のもので、宿題などが載っている。先ほどのサイトからダウンロードできる。Vol2は、セメスターごとにほとんど変更のないもので、毎回同じものを使っているらしい。これもダウンロードできる。ただし最初のうちは関係なさそうなので、用意するのは教科書とVol1があれば大丈夫。（残念ながらビデオの授業のCourse Readingそのものは手に入れることはできそうにないので、現在配られているものを利用している。）</p>
<p>授業で使われているSchemeプログラムはSTkというものらしく、さきほどのコースのウェブサイトからダウンロードできる。</p>
<p>今回はWeek1
<ul>
<li>教材Vol1: Week1</li>
<li>教科書: Section 1.1</li>
<li>iTunesU: Lecture1 &#8211; Lecture2</li>
</ul>
<p>
<h4>Lecture1</h4>
<p>主な内容は<br />-Schemeの使い方<br />&#8211; 簡単な計算<br />&#8211; 関数定義<br />-コースオーバービュー</p>
<p>Schemeの使い方では、たった40分程度だが、先生は「これでSchemeの90%はみんな理解したことになる」と言っている。それぐらい簡単なものだということを言っている。</p>
<p>コースのオーバービューとしては、「プログラミングは&#8221;very very easy&#8221;だ。中学生でもできる。それは天才だからじゃなくて、簡単だからだ。」というのを強く言っていたのが印象的だった。<br />残念ながらこのiTunesUのビデオはなぜか途中で切れたようになっている。</p>
<p>
<h4>Lecture2</h4>
<p>おもな内容は<br />-コースオーバービューの続き<br />&#8211; Functional Programmingを学ぶ意味<br />&#8211; コンピュータの抽象化<br />- -宿題や試験についての注意<br />-Schemeの使い方その２<br />&#8211; 条件分岐<br />&#8211; Applicative orderとNormal order</p>
<p>「Functional Programmingを学ぶ重要性の一つは、今日のプログラムが並列性を持つようになってきているからである。」とか、コンピュータの抽象化についての話と続く。<br />さらにSchemeの使い方が続く。主に条件分岐やApplicative OrderやNormal Orderなどの話がメイン<br />Functional Progurammingを行っている限り、Applicative OrderかNormal Orderかは関係ない。つまり結果が計算の順番によらないということを強調していた。並列処理プログラムを書くときの重要な考え方なんだろう。</p>
<h4>宿題</h4>
<p>さてビデオを見た後で、宿題に取りかかる。<br />Homework Week1を読むと、まず、教科書のセクション1.1と1.3を読むようにと書いてある。おおよそビデオで習ったことなので話はスムーズにす進む。ただし、1.3の内容は来週の予習となっている。</p>
<p>宿題はプログラムを書くものが多いので、環境を整える必要がある。コースのウェブサイトにあるリンクから各環境用のSTkをインストールする。授業で使われているScheme処理系はfirstやbfといった関数が予め定義されている。これはstk-simplyというプログラムを利用すればよいことになっている。（普通のSTkにはこれらの関数はない。）</p>
<p>宿題には教科書の一部の問題を解くようにと指示されていたり、その場に問題が載っていたりする。<br />ひとまず、Week1の宿題の問題をすべて実際に解いてみた。簡単なものもあれば、難しいものもある。<br />デバッグの方法がよくわからないので、うまく動かないと頑張ってどこが悪いのか探さなくてはいけない。慣れてくると意外とすんなりと書けるようになってくる。</p>
</p>]]></content:encoded>
			<wfw:commentRss>http://programming.jugglershu.net/wp/?feed=rss2&#038;p=570</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>東大でもOCW</title>
		<link>http://programming.jugglershu.net/wp/?p=581</link>
		<comments>http://programming.jugglershu.net/wp/?p=581#comments</comments>
		<pubDate>Thu, 26 Aug 2010 10:02:00 +0000</pubDate>
		<dc:creator><![CDATA[shu]]></dc:creator>
				<category><![CDATA[Free Lectures]]></category>

		<guid isPermaLink="false">http://programming.jugglershu.net/wp/?p=581</guid>
		<description><![CDATA[ここのところオンラインの授業について書いているが、東大でも数年前から授業を配信しているらしい。 今日のニュースにはiTunes Uに参加するという記事があった。iTunes Uは大学の授業や教材を配信する目的で設けられたものらしい。 東大のコンテンツはStanfordとかUCBerkeleyに比べるとちょっと少ない感じがするけど、これからきっといいものが出てくるんだろう。 こんな素晴らしいコンテン <a class="more-link" href="http://programming.jugglershu.net/wp/?p=581">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>ここのところオンラインの授業について書いているが、東大でも数年前から授業を配信しているらしい。</p>
<p>今日のニュースにはiTunes Uに参加するという記事があった。<br />iTunes Uは大学の授業や教材を配信する目的で設けられたものらしい。</p>
<p>東大のコンテンツはStanfordとかUCBerkeleyに比べるとちょっと少ない感じがするけど、これからきっといいものが出てくるんだろう。</p>
<p>こんな素晴らしいコンテンツはみんな利用すべきだ。東大に行けなくたって東大の授業受けられるんだから、すばらしい。まあ実際にそこで入学して受けるのとは、環境などの点で異なるかも知れないけど、これだけの教育機会が得られるというのは本当に素晴らしいと思う。</p>
]]></content:encoded>
			<wfw:commentRss>http://programming.jugglershu.net/wp/?feed=rss2&#038;p=581</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ただで授業を！</title>
		<link>http://programming.jugglershu.net/wp/?p=582</link>
		<comments>http://programming.jugglershu.net/wp/?p=582#comments</comments>
		<pubDate>Tue, 24 Aug 2010 03:12:00 +0000</pubDate>
		<dc:creator><![CDATA[shu]]></dc:creator>
				<category><![CDATA[Free Lectures]]></category>

		<guid isPermaLink="false">http://programming.jugglershu.net/wp/?p=582</guid>
		<description><![CDATA[前回のポストで、フリーで受けられる授業をまとめるといいかもしれないということを書いた。 やっぱり、すでにやっている人がいてhttp://freescienceonline.blogspot.com/にかなりたくさんまとまっている。僕が知っている奴は全部ここにあるし、ここにあってこれいい、っていうのも多々ある。 すごいのは、これを書いている人はこのほかにもブログを持っていて、それはプログラミングに関 <a class="more-link" href="http://programming.jugglershu.net/wp/?p=582">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>前回のポストで、フリーで受けられる授業をまとめるといいかもしれないということを書いた。</p>
<p>やっぱり、すでにやっている人がいて<br />http://freescienceonline.blogspot.com/<br />にかなりたくさんまとまっている。僕が知っている奴は全部ここにあるし、ここにあってこれいい、っていうのも多々ある。</p>
<p>すごいのは、これを書いている人はこのほかにもブログを持っていて、それはプログラミングに関するブログだったりする。そして、その中で実際にこの授業を端から受けてそのノートや、内容を公開している。かなりシリアスにオンライン授業を受けていて、そのノートは普通の授業を受けるのとまったく変わらないような内容になっている。<br />アルゴリズムの授業を受けた内容は以下にまとめられている。（約１年かけてすべての授業を受けて、それぞれブログに書いている！すごい。）<br />http://www.catonmat.net/category/introduction-to-algorithms</p>
<p>ぜひ有効活用したいとともに、どうようのまとめページを作りたいと思っている。</p>
]]></content:encoded>
			<wfw:commentRss>http://programming.jugglershu.net/wp/?feed=rss2&#038;p=582</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>パズル</title>
		<link>http://programming.jugglershu.net/wp/?p=583</link>
		<comments>http://programming.jugglershu.net/wp/?p=583#comments</comments>
		<pubDate>Sat, 21 Aug 2010 14:24:00 +0000</pubDate>
		<dc:creator><![CDATA[shu]]></dc:creator>
				<category><![CDATA[Algorithm]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Free Lectures]]></category>

		<guid isPermaLink="false">http://programming.jugglershu.net/wp/?p=583</guid>
		<description><![CDATA[ヘルニアで寝込んでしまった。早１か月。いまだに10分以上立ったり座ったりはできない。つらい・・・。 まあ、そんなことを言っていてもどうもならないし、病院に行ってはいるので、そこで言われるようにするしかないということで、勉強をしようと思って、本なりビデオなりを見ている。 そんなとき、以前にFacebookの採用情報欄にパズルが載っていたのを思い出した。プログラミングの問題が載っていて、それを解いて送 <a class="more-link" href="http://programming.jugglershu.net/wp/?p=583">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>ヘルニアで寝込んでしまった。早１か月。いまだに10分以上立ったり座ったりはできない。<br />つらい・・・。</p>
<p>まあ、そんなことを言っていてもどうもならないし、病院に行ってはいるので、そこで言われるようにするしかないということで、勉強をしようと思って、本なりビデオなりを見ている。</p>
<p>そんなとき、以前にFacebookの採用情報欄にパズルが載っていたのを思い出した。プログラミングの問題が載っていて、それを解いて送ると、まあ、採用に少しは考慮してくれるみたいな感じのやつ。<br />ただし、結構難しい。</p>
<p>というわけで、今回はこれをやってみることにした。<br />http://www.facebook.com/careers/puzzles.php#!/careers/puzzles.php?puzzle_id=8<br />Peak Trafficという問題。</p>
<p>いろいろアルゴリズムなどを調べながらやった。<br />今回はちょっと１日当たりパソコンを触っていられる時間も限られているので、２週間ぐらいかけてちょっとづつ調べたり、プログラム書いたりして完成させた。</p>
<p>Facebookにこのトピックに関しての掲示板があったのでそこも参考にした。すでに解いている人が、テスト用データやどのくらい処理に時間がかかったかなどを載せている。<br />http://www.facebook.com/careers/puzzles.php#!/topic.php?uid=15325934266&#038;topic=6943</p>
<p>とりあえず、今日Facebookに送ったところ、正解とのこと。扱ったことのないデータ構造やアルゴリズムだったのでそれだけでもかなり勉強になった。</p>
<p>ただ、何日か前に一応答えを出せるプログラムは書いたのだけれど遅いのが気になって少し何とかならないかと挑戦したけど、だめだった。<br />さっきの掲示板に投稿している人は、あるテストデータ（60MB程度）を処理するのにPythonで書いて、10秒以内だそうだ。ちなみに僕のはRubyで書いて6分；；。お話になりません。</p>
<p>どうしたらいいんだろうと考えたけど、だめだった。まだまだ考えられる余地はあるので、まだがんばる。<br />PythonとRubyの差も多少はありそうだが、そんなレベルの違いじゃないな。</p>
<p>ちなみに、そんなときに出会ったのが以下のレクチャー<br />（これ自体はこのとはの直接の答えではないけど、何か得られるものがないかと思って見た。）<br />この前のMITの授業といい、こんなのが見られるなんて何て素晴らしいんだ。<br />ほかにもUCBerkleyのStructure and Interpretation of Computer Programを使った授業もYouTubeで見られる。<br />この辺は、どこかのページにテキストブックとともにまとめておく価値がありそうだ。</p>
]]></content:encoded>
			<wfw:commentRss>http://programming.jugglershu.net/wp/?feed=rss2&#038;p=583</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>久しぶりの授業</title>
		<link>http://programming.jugglershu.net/wp/?p=588</link>
		<comments>http://programming.jugglershu.net/wp/?p=588#comments</comments>
		<pubDate>Thu, 15 Jul 2010 17:02:00 +0000</pubDate>
		<dc:creator><![CDATA[shu]]></dc:creator>
				<category><![CDATA[Algorithm]]></category>
		<category><![CDATA[Free Lectures]]></category>
		<category><![CDATA[Mathematics]]></category>

		<guid isPermaLink="false">http://programming.jugglershu.net/wp/?p=588</guid>
		<description><![CDATA[今日は会社から早めに帰れたので受講。この前見つけたアルゴリズムのやつ うーん、すばらしい。勢い余って線形代数も受講 これまたすばらしい。英語なのに大学の時に受けた授業より分かりやすいってどういうことだ。まあ、まだ簡単な内容だからかもしれないけど。 これからも続けて受けていきたい。]]></description>
				<content:encoded><![CDATA[<p>今日は会社から早めに帰れたので受講。<br />この前見つけたアルゴリズムのやつ</p>
<p>うーん、すばらしい。勢い余って線形代数も受講</p>
<p>これまたすばらしい。英語なのに大学の時に受けた授業より分かりやすいってどういうことだ。まあ、まだ簡単な内容だからかもしれないけど。</p>
<p>これからも続けて受けていきたい。</p>
]]></content:encoded>
			<wfw:commentRss>http://programming.jugglershu.net/wp/?feed=rss2&#038;p=588</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>3年で読む本</title>
		<link>http://programming.jugglershu.net/wp/?p=595</link>
		<comments>http://programming.jugglershu.net/wp/?p=595#comments</comments>
		<pubDate>Wed, 19 May 2010 23:47:00 +0000</pubDate>
		<dc:creator><![CDATA[shu]]></dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Free Lectures]]></category>

		<guid isPermaLink="false">http://programming.jugglershu.net/wp/?p=595</guid>
		<description><![CDATA[今後3年で読むべき本をリストアップしてみた。いろいろなサイトを参考に。すでに持っている本がほとんどだった。特に参考にしたのは以下のサイトhttp://leoclock.blogspot.com/2009/09/blog-post_21.html 一番上にMolecular Biology of the Cellが紹介されていて、これは自分が求めているサイトではないと一瞬思ってしまった。（この本は生 <a class="more-link" href="http://programming.jugglershu.net/wp/?p=595">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>今後3年で読むべき本をリストアップしてみた。<br />いろいろなサイトを参考に。すでに持っている本がほとんどだった。<br />特に参考にしたのは以下のサイト<br />http://leoclock.blogspot.com/2009/09/blog-post_21.html</p>
<p>一番上にMolecular Biology of the Cellが紹介されていて、これは自分が求めているサイトではないと一瞬思ってしまった。（この本は生物の本で僕も持っていたけど、すでに後輩にあげてしまった。たぶん、生物やってる人で持っていない人はいないんじゃないだろうか）</p>
<p>さて、というわけで読むべき本リスト
<ul>
<li>アルゴリズムイントロダクション 1～2 </li>
<li>計算理論の基礎 1～3<span></span></li>
<li><span></span>暗号の数学的基礎<span></span></li>
<li><span></span>離散数学 コンピュータサイエンスの基礎数学</li>
<li>Windows Internals 5th Edition<span></span></li>
<li><span></span>モダンオペレーティングシステム<span></span></li>
<li><span></span>詳解 TCP/IP Vol1<span></span></li>
<li><span></span>コンピュータの構成と設計 上下<span></span></li>
<li><span></span>分散システム<span></span></li>
<li><span></span>Database Management System<span></span></li>
<li><span></span>構造化コンピュータ構成<span></span></li>
<li><span></span>セキュアソフトウェア</li>
</ul>
<p>数えたら全部で 6979ページあった。</p>
<p>すでにある程度読んでいて、分かっている分もあるので、本当にすべてを端から読むわけではないけど、きちんと理解していくには相当時間がかかりそう。<br />3年=1000日として、1日平均7ページだ。1週間に1回読むとすると、50ページほど読まないといけない。いままでの経験から、技術書を一度に50ページ読むことはほとんどできない。1週間に3回は時間を取らないといけないかもしれない。平均して1回17ページならなんとかなるだろうか・・・。1回辺りの時間は2時間。厳しいか。内容によるし、どれだけ自分で整理しながら読むかにもよるけど。</p>
<p>「コンピュータの構成と設計」と「構造化コンピュータ構成」はかなり内容がかぶりそうなので、とりあえず前者を中心に。<br />とにかく、基礎的なところを中心に。</p>
<p>この中でもっとも異色なのは「セキュアソフトウェア」。一応セキュリティ技術者なので、この分野のことを、具体的に一通り経験した方がいいだろうということで選んだ。教科書的な存在ではないので、ちょっと基礎からははずれる。そういう意味では優先度は低い。</p>
<p>ところで、このリストを作る過程ですごいものを発見してしまった。といっても、当然といえば当然なのかもしれないけど。<br />http://video.google.com/videoplay?docid=-2333306016564732003#<br />おそらくこれ、リストに一番上に上げたアルゴリズムイントロダクションの授業だと思う。<br />ただでMITの授業受けられるのか。感動的だ。<br />まだ、ちょっとしか見てないけど、役に立ちそう。</p>
<p>何より僕は本を読むより、授業の方が好きなので、これは助かる。</p>
</p>]]></content:encoded>
			<wfw:commentRss>http://programming.jugglershu.net/wp/?feed=rss2&#038;p=595</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
