…【講師】id:maoe
クローラを題材に、アルゴリズムを習得し実装を行い、改善していくサイクルを体験します。ナイーブなクローラのアルゴリズムから始まり、I/O多重化やCoroによる並行プログラミングなどの技術的な内容と、PageRankによるスコアリングについて学び、実装を行います。
…【講師】id:r_kurain
はてなのサービスの各所で使われている機械学習の技術について講義を受けます。なかでも文書分類について詳しく説明し Naive Bayes を利用した Webページの分類を実装してもらいます。実際に大量のデータをプログラムに与えると文章の特徴を学習し適切に分類できる事を体感することが目的です。
…【講師】id:birdie7
Webサービスのパフォーマンスアップの考え方を学びます。その中でもI/O負荷の主な原因となりやすいMySQLについて、そのインデックスのデータ構造を知るために、基礎となるB-Treeを実装します。実装を通じて大規模データを扱う際のデータ構造やアルゴリズムを実感してもらいます。
…【講師】id:marqs
サーバ、データベース、ネットワーク、負荷分散、冗長化技術、キャッシュ手法、ジョブキューシステムなど、はてなのインフラを構築している技術を学びました。また、それらを用いて実際のウェブサービスがどのように動いているのかを「うごメモはてな」を例に説明を受けます。
前半2週間の最終日の10日目は、前半に出された課題を審査され、後半課程に進めるか結果発表されます。今年は参加者14人全員が無事に後半に進むことができました。そして、後半課程で開発することになる各チームのプレゼンテーションを聞き、チーム分けをします。後半2週間はこの日に決定したチームに所属し、各チームで協力して開発に取り組むことになります。