コンピュータサイエンス概論 2015

コンピュータサイエンス概論
2015
平成27年4月13日(月)
担当教員:亀田弘之
授業概要
コンピュータサイエンスの初学者を対象に、当該分野からいくつか話
題を取り上げ、コンピュータサイエンスの現状、社会的役割、面白さな
どを知ってもらうとともに、コンピュータサイエンスを若い学生諸君らが
学ぶことの意義と喜びを学び取ってもらうことを目的とした授業である。
この授業を学ぶことにより、コンピュータサイエンスという学問の概要
を知るとともに、自らの今後の学びの地図・目標を明確化して欲しい。
授業方法
講義とともに議論を行う形式で授業を進める。
履修上の注意
レポートとともに予習・復習がとても重要である。
準備学習
授業の中で、
次回までに予習として教科書を読むように指示する
ので、必ず事前に読んで勉強すること。
成績評価方法・基準
• 毎回のクイズの成績30%
• 小レポート評価30%
• 定期試験の成績40%
授業計画
第1回:プログラミングの楽しさ
(21世紀の魔法使いの道具プログラミング言語を知る)
第2回:コンピュータサイエンスと知能研究・ゲーム研究
(人工知能・機械学習・脳科学・認知科学などの魅力を知る)
第3回:コンピュータと情報ネットワークの仕組み
(コンピュータの基本構成、ネットワークの基本構成などの
基本的仕組み・原理を知る)
第4回:クラウドコンピューティング
(ビッグデータ(オープンデータ)が世界を変える。データベースの基礎など)
第5回:ソフトウェア工学
(ソフトウェアはどのようにして作られるのか,開発の現場を覗いてみる。
開発プロセス,プロジェクトマネジメントなど)
第6回:コンピュータサイエンスにおける計算の理論
(チューリングマシン,コンピュータサイエンス小史など)
第7回:コンピュータサイエンスと法・倫理
(知的財産権,さまざまな事例紹介)
第8回:コンピュータサイエンスの全容と将来を議論する
(e-healthCare, e-learning, e-government等,
君は何を学ぶのか? なぜ学ぶのか? どうやって学ぶのか?)
到達目標
コンピュータサイエンスに関して以下のことが到達目標である。
1.コンピュータサイエンスの
社会的役割・意義を理解し説明できる。
2.コンピュータサイエンスを学ぶ上での
重要な能力・資質を理解する。
3.コンピュータサイエンスの概要を説明できる。
4.将来のコース選択(案)を自力で作成し、
人にわかりやすく説明できる。
この授業の行動指針
1. 明るく楽しく前向きの姿勢で、自ら進んで学ぶ。
(Learn positively, curiously and constantly! )
2. 他利的に行動する。
( Behave altruisticly! )
3. 皆と積極的に討論する。
( Discuss together aggressively! )
4. 後回しにしない。
(Don’t procrastinate!
Do right now what you should ne doing now. )
データサイエンスの可能性
(動画は次のページを参照のこと)
Youtubeを参照のこと。
• http://www.youtube.com/watch?v=WNccLBzR_I4
(Research Matters - Carolyn McGregor)
• http://www.youtube.com/watch?v=APdZHNIJDnU
(Rio de Janeiro City Operation Center)
Computer science が社会で役立った実例。
皆さんはcomputer science の知識・技術を何に役立てますか?
第1回:プログラミングの楽しさ
ー21世紀の魔法使いの道具プログラミング言語を知るー
質問 プログラミングはなぜ重要?
質問 プログラミングはなぜ重要?
• コンピュータはあくまでも機械。(Computer is a machie.)
• 指示がないと動作できない。
• 指示は、言葉(言語)で記述する。
そこで、
• 機械(computer)への動作指示書(プログラム)を
記述(プログラミング)しなければならない。
(注)日本語や英語(自然言語)を使って指示書が書ければ良いのだが、
コンピュータは自然言語を理解しないなどの理由により、コンピュータが
理解できる言語(プログラミング言語)で人間が指示書(プログラム)を書く
ことになっている。 どうにかできないのか?
いろいろなプログラミング言語
• 機械語(machine language)
• アセンブリ言語(assembly language)
• Fortran言語(科学技術計算向き)
• Cobol言語(事務処理向き)
• Pascal言語(教育向き)
• C言語,C++言語
• Java言語
• Ruby,Python
• Processing など
Erlang
Haskell
HTML
Scala
XML
HTML
Prolog
F#
ADA
OCaml
Lisp
JavaScript
Swift
Objective-C
プログラミングのデモンストレーション
• Jave言語(Greenfoot)
• Python言語
参考サイト
• Greenfoot.org
• Code.org など
授業資料のページ
http://kameken.clique.jp/
自宅課題(home work)
1. 授業のWebページを開いてみる。
2. 教科書の0.6 社会的影響(p.34-36)を読む。
3. 教科書の社会問題2(「今日の技術社会に、...」)を読み、
自分なりの回答(I think that… or In my opinion, … because …)を
考える。
(注)いずれも、提出等の必要はない。やってきてくれればOK。