SlideShare ist ein Scribd-Unternehmen logo
1 von 17
オンライン授業の体験談
 Coursera’s “Functional
Programming With
Scala”
 初めての参加ではな
かった(Stanford大
学が2011に出した
コースに途中まで参
加した)が、初めて
完了まで続けた
 http://www.coursera.org/
 2012年からスタート
 世界から81大学を参加、
379授業を提供
 375万人の会員
 無料で受けられる。学科
CSに限らず、色々
 ビジネスモデルは試行錯
誤中だが、VCより US $16
のバッキングあり
 Scalaの作者のMartinOdersky氏が講師
 2013年3月よりスタートし、7週間
 毎週、10分程度の動画レクチャー 5〜7程度
 Scala全体に関する内容ではなく、Scalaを
使った関数志向プログラミングが主題
 やはり言語の作者から教えてもらうは貴
重な機会
 話がゆっくり、分かりやすい
 もっとゆっくり見たければ0.75倍速モード
 日本人に取っても聞き取りやすい?
 話しながら、コードも実際に書く
 Scala IDE
 Eclipseベース、みんなIntelliJ推奨するのであま
り期待していなかったが以外と良い
 ワンクリックインストール
 “Scala worksheet”は便利
 sbtを使って、宿題の styleCheck、テスト
の実行、提出と自動採点
 10〜20分程度、少し時間があった時でも
見れる
 英語のサブタイトルあり
 スライドもPDFでダウンロード可
 特に面白かった:
 関数型言語の必要性/モチベーションの説明
 使った問題の例:多項式, n-queens,複素数,有理
数のモデリング
 Querying with For: For-comprehensionsを使った
SQLと似たようにクエリを書く
 Translation of For: for-comprehensionから
map/flatMap/filterWithの書き換え方法
 Collectionsライブラリの関数の紹介
 Zip形式、ダウンロードしIDEにインポートさ
えすれば良い形
 ひな形ができている、基本的に「???」を埋
める→モデリング、プログラムデザインも結
構勉強になった
 自動採点。テストケースがうまく行かなけれ
ば、失敗したテストケースのトレースバック
も見える
 毎週日本時間でいうと月曜日早朝が締め切り
 Homeworkに関するヒントが満載だった
 全部英語(もちろんだが)
 コミュニティのTeaching Assistantもいて、結
構的確なアドバイスをしていた
 Courseraは決まったスケジュールで授業を受
けるが、Forumで質問すると、すぐに回答も
らえる、という意味ではとても良い
 以前からは言語仕様はきれい、と思って
いたが、だいぶ好きになった
 短い、きれいなコードが書ける
 再帰呼び出しを書く際、型チェックがあ
ると助かる
 平日の夜、週末に時間がある程度かかる
ので、家族等の考慮は必要(終わったら、
「やっと終わった」と妻が喜んでいた)
 Homeworkは結構ひな形化されているので、
悪くいえばプログラムデザインの自由が
あまりない
 なお、自動採点を可能にするためにこれは仕
方がないかも
 一言でいうと、楽しかった!
 プログラムを書くって、やっぱり
楽しい
 Scalaも、楽しいです。次回の授
業、ぜひ挑戦してみてください!

Weitere ähnliche Inhalte

Andere mochten auch

Writeexcelについて
WriteexcelについてWriteexcelについて
Writeexcelについてasa 999
 
Phone Home: A client-side error collection system
Phone Home: A client-side error collection systemPhone Home: A client-side error collection system
Phone Home: A client-side error collection systemChris Birchall
 
Branching Strategies: Feature Branches vs Branch by Abstraction
Branching Strategies: Feature Branches vs Branch by AbstractionBranching Strategies: Feature Branches vs Branch by Abstraction
Branching Strategies: Feature Branches vs Branch by AbstractionChris Birchall
 
DevOpsハッカソン参加レポート
DevOpsハッカソン参加レポートDevOpsハッカソン参加レポート
DevOpsハッカソン参加レポートTakashi Takebayashi
 
Guess the Country - Playing with Twitter Streaming API
Guess the Country - Playing with Twitter Streaming APIGuess the Country - Playing with Twitter Streaming API
Guess the Country - Playing with Twitter Streaming APIChris Birchall
 
3分 gem クッキング
3分 gem クッキング3分 gem クッキング
3分 gem クッキングKenji Mori
 
テストの運用について #m3dev
テストの運用について #m3devテストの運用について #m3dev
テストの運用について #m3devKazuhiro Sera
 
Skinny Controllers, Skinny Models
Skinny Controllers, Skinny ModelsSkinny Controllers, Skinny Models
Skinny Controllers, Skinny ModelsKazuhiro Sera
 
ScalaCache: simple caching in Scala
ScalaCache: simple caching in ScalaScalaCache: simple caching in Scala
ScalaCache: simple caching in ScalaChris Birchall
 
問題が起こった時、変えるのは人かそれともプロセスか?
問題が起こった時、変えるのは人かそれともプロセスか?問題が起こった時、変えるのは人かそれともプロセスか?
問題が起こった時、変えるのは人かそれともプロセスか?Takashi Takebayashi
 
Load testing with gatling
Load testing with gatlingLoad testing with gatling
Load testing with gatlingChris Birchall
 
多分モダンなWebアプリ開発
多分モダンなWebアプリ開発多分モダンなWebアプリ開発
多分モダンなWebアプリ開発tak-nakamura
 
Skinny Framework 1.0.0
Skinny Framework 1.0.0Skinny Framework 1.0.0
Skinny Framework 1.0.0Kazuhiro Sera
 
マイクロサービス運用の所感 #m3dev
マイクロサービス運用の所感 #m3devマイクロサービス運用の所感 #m3dev
マイクロサービス運用の所感 #m3devKazuhiro Sera
 

Andere mochten auch (14)

Writeexcelについて
WriteexcelについてWriteexcelについて
Writeexcelについて
 
Phone Home: A client-side error collection system
Phone Home: A client-side error collection systemPhone Home: A client-side error collection system
Phone Home: A client-side error collection system
 
Branching Strategies: Feature Branches vs Branch by Abstraction
Branching Strategies: Feature Branches vs Branch by AbstractionBranching Strategies: Feature Branches vs Branch by Abstraction
Branching Strategies: Feature Branches vs Branch by Abstraction
 
DevOpsハッカソン参加レポート
DevOpsハッカソン参加レポートDevOpsハッカソン参加レポート
DevOpsハッカソン参加レポート
 
Guess the Country - Playing with Twitter Streaming API
Guess the Country - Playing with Twitter Streaming APIGuess the Country - Playing with Twitter Streaming API
Guess the Country - Playing with Twitter Streaming API
 
3分 gem クッキング
3分 gem クッキング3分 gem クッキング
3分 gem クッキング
 
テストの運用について #m3dev
テストの運用について #m3devテストの運用について #m3dev
テストの運用について #m3dev
 
Skinny Controllers, Skinny Models
Skinny Controllers, Skinny ModelsSkinny Controllers, Skinny Models
Skinny Controllers, Skinny Models
 
ScalaCache: simple caching in Scala
ScalaCache: simple caching in ScalaScalaCache: simple caching in Scala
ScalaCache: simple caching in Scala
 
問題が起こった時、変えるのは人かそれともプロセスか?
問題が起こった時、変えるのは人かそれともプロセスか?問題が起こった時、変えるのは人かそれともプロセスか?
問題が起こった時、変えるのは人かそれともプロセスか?
 
Load testing with gatling
Load testing with gatlingLoad testing with gatling
Load testing with gatling
 
多分モダンなWebアプリ開発
多分モダンなWebアプリ開発多分モダンなWebアプリ開発
多分モダンなWebアプリ開発
 
Skinny Framework 1.0.0
Skinny Framework 1.0.0Skinny Framework 1.0.0
Skinny Framework 1.0.0
 
マイクロサービス運用の所感 #m3dev
マイクロサービス運用の所感 #m3devマイクロサービス運用の所感 #m3dev
マイクロサービス運用の所感 #m3dev
 

Ähnlich wie Coursera experience

sukusuku-scrum introduction
sukusuku-scrum introductionsukusuku-scrum introduction
sukusuku-scrum introductionNao Yamamoto
 
Scala Daysに行ってみて
Scala Daysに行ってみてScala Daysに行ってみて
Scala Daysに行ってみてKota Mizushima
 
インターンシップの学生にお届けしようとしたScalaの文法(初級編)
インターンシップの学生にお届けしようとしたScalaの文法(初級編)インターンシップの学生にお届けしようとしたScalaの文法(初級編)
インターンシップの学生にお届けしようとしたScalaの文法(初級編)Kentaro Masuda
 
「ドメイン駆動設計」の複雑さに立ち向かう
「ドメイン駆動設計」の複雑さに立ち向かう「ドメイン駆動設計」の複雑さに立ち向かう
「ドメイン駆動設計」の複雑さに立ち向かう増田 亨
 
名古屋Scala勉強会のご紹介@OSC2010名古屋
名古屋Scala勉強会のご紹介@OSC2010名古屋名古屋Scala勉強会のご紹介@OSC2010名古屋
名古屋Scala勉強会のご紹介@OSC2010名古屋Ryo RKTM
 
pi-17. プログラム設計
pi-17. プログラム設計pi-17. プログラム設計
pi-17. プログラム設計kunihikokaneko1
 
XPages Day 2013 [B-3] XPages開発を始める Notes技術者のためのWeb技術概論
XPages Day 2013 [B-3] XPages開発を始める Notes技術者のためのWeb技術概論XPages Day 2013 [B-3] XPages開発を始める Notes技術者のためのWeb技術概論
XPages Day 2013 [B-3] XPages開発を始める Notes技術者のためのWeb技術概論賢次 海老原
 
Scalaでのプログラム開発
Scalaでのプログラム開発Scalaでのプログラム開発
Scalaでのプログラム開発Kota Mizushima
 
Java エンジニアチームが始めやすい Scala コーディングスタイル #ichigayageek
Java エンジニアチームが始めやすい Scala コーディングスタイル #ichigayageekJava エンジニアチームが始めやすい Scala コーディングスタイル #ichigayageek
Java エンジニアチームが始めやすい Scala コーディングスタイル #ichigayageekKazuhiro Sera
 
頑張りすぎないScala
頑張りすぎないScala頑張りすぎないScala
頑張りすぎないScalatakezoe
 
実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンスGuildWorks
 
実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス増田 亨
 
プログラミング言語Clojureのニャンパスでの活用事例
プログラミング言語Clojureのニャンパスでの活用事例プログラミング言語Clojureのニャンパスでの活用事例
プログラミング言語Clojureのニャンパスでの活用事例sohta
 
WordPressの進化とWordPress名古屋コミュニティの進化
WordPressの進化とWordPress名古屋コミュニティの進化WordPressの進化とWordPress名古屋コミュニティの進化
WordPressの進化とWordPress名古屋コミュニティの進化takashi ono
 
テストコードってすごい.pptx
テストコードってすごい.pptxテストコードってすごい.pptx
テストコードってすごい.pptxcistb220msudou
 
Scala Daysに行ってみて - あるいはスイス旅行記 -
Scala Daysに行ってみて - あるいはスイス旅行記 -Scala Daysに行ってみて - あるいはスイス旅行記 -
Scala Daysに行ってみて - あるいはスイス旅行記 -Kota Mizushima
 
Java one 2013 sf 報告会lt
Java one 2013 sf 報告会ltJava one 2013 sf 報告会lt
Java one 2013 sf 報告会lttorutk
 
Ruby on Rails 入門
Ruby on Rails 入門Ruby on Rails 入門
Ruby on Rails 入門Yasuko Ohba
 

Ähnlich wie Coursera experience (20)

sukusuku-scrum introduction
sukusuku-scrum introductionsukusuku-scrum introduction
sukusuku-scrum introduction
 
Scala Daysに行ってみて
Scala Daysに行ってみてScala Daysに行ってみて
Scala Daysに行ってみて
 
Modeling Workshop
Modeling WorkshopModeling Workshop
Modeling Workshop
 
インターンシップの学生にお届けしようとしたScalaの文法(初級編)
インターンシップの学生にお届けしようとしたScalaの文法(初級編)インターンシップの学生にお届けしようとしたScalaの文法(初級編)
インターンシップの学生にお届けしようとしたScalaの文法(初級編)
 
「ドメイン駆動設計」の複雑さに立ち向かう
「ドメイン駆動設計」の複雑さに立ち向かう「ドメイン駆動設計」の複雑さに立ち向かう
「ドメイン駆動設計」の複雑さに立ち向かう
 
名古屋Scala勉強会のご紹介@OSC2010名古屋
名古屋Scala勉強会のご紹介@OSC2010名古屋名古屋Scala勉強会のご紹介@OSC2010名古屋
名古屋Scala勉強会のご紹介@OSC2010名古屋
 
pi-17. プログラム設計
pi-17. プログラム設計pi-17. プログラム設計
pi-17. プログラム設計
 
CoderDojoの始め方
CoderDojoの始め方CoderDojoの始め方
CoderDojoの始め方
 
XPages Day 2013 [B-3] XPages開発を始める Notes技術者のためのWeb技術概論
XPages Day 2013 [B-3] XPages開発を始める Notes技術者のためのWeb技術概論XPages Day 2013 [B-3] XPages開発を始める Notes技術者のためのWeb技術概論
XPages Day 2013 [B-3] XPages開発を始める Notes技術者のためのWeb技術概論
 
Scalaでのプログラム開発
Scalaでのプログラム開発Scalaでのプログラム開発
Scalaでのプログラム開発
 
Java エンジニアチームが始めやすい Scala コーディングスタイル #ichigayageek
Java エンジニアチームが始めやすい Scala コーディングスタイル #ichigayageekJava エンジニアチームが始めやすい Scala コーディングスタイル #ichigayageek
Java エンジニアチームが始めやすい Scala コーディングスタイル #ichigayageek
 
頑張りすぎないScala
頑張りすぎないScala頑張りすぎないScala
頑張りすぎないScala
 
実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス
 
実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス
 
プログラミング言語Clojureのニャンパスでの活用事例
プログラミング言語Clojureのニャンパスでの活用事例プログラミング言語Clojureのニャンパスでの活用事例
プログラミング言語Clojureのニャンパスでの活用事例
 
WordPressの進化とWordPress名古屋コミュニティの進化
WordPressの進化とWordPress名古屋コミュニティの進化WordPressの進化とWordPress名古屋コミュニティの進化
WordPressの進化とWordPress名古屋コミュニティの進化
 
テストコードってすごい.pptx
テストコードってすごい.pptxテストコードってすごい.pptx
テストコードってすごい.pptx
 
Scala Daysに行ってみて - あるいはスイス旅行記 -
Scala Daysに行ってみて - あるいはスイス旅行記 -Scala Daysに行ってみて - あるいはスイス旅行記 -
Scala Daysに行ってみて - あるいはスイス旅行記 -
 
Java one 2013 sf 報告会lt
Java one 2013 sf 報告会ltJava one 2013 sf 報告会lt
Java one 2013 sf 報告会lt
 
Ruby on Rails 入門
Ruby on Rails 入門Ruby on Rails 入門
Ruby on Rails 入門
 

Coursera experience