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