英文名 | Programming II | |
---|---|---|
科目概要 | データサイエンス学科2年後期、2群科目、必修、演習、3単位 | |
科目責任者 | 齋藤 裕 | |
担当者 | (※は実務経験のある教員) 齋藤 裕※、 秋山 真那斗、 来見田 遥一※、 牧垣 秀一朗※、 上原 美夏 | |
講義室 |
科目 | 教科及び教科の指導法に関する科目(高等学校 情報) |
---|---|
各科目に含めることが必要な事項 |
|
Pythonなどのプログラミング言語には多数の関数やモジュールが用意されており、それらを活用することで様々なデータ解析を行うことができる。本講義では、「プログラミングⅠ」で学んだ内容を発展させ、プログラミング言語の様々な機能を知り、使いこなせるようになることを目的とする。また、プログラミング環境の整備やコマンドラインでの操作方法についても、より発展的なスキルを習得する。
【プログラミング】
以下の内容について学ぶ:ソートによるデータの並べ替え、文字列処理、正規表現によるパターンマッチング、多次元アレイやデータフレームを用いた多次元データの処理、データの可視化と作図、オブジェクト指向プログラミング、関数型プログラミング、バグが起きたときの対処方法(エラーメッセージの読み方とデバッグの方法)。いくつかの関数については、既存の組み込み関数を使うだけでなく、同じ機能をもった関数を自分で実装してみることで、その動作原理について理解を深める。
【プログラミング環境の整備とコマンドラインでの操作方法】
以下の内容について学ぶ:各種コマンドとその使用方法、ディレクトリ構造、シェルプログラミングの基礎、大規模データ解析のためのバッチ処理、エディタと開発環境。
パワーポイントによる講義の後、プログラミング演習を行う。パワーポイント資料は講義前にホームページ等で配布する。毎回の講義では、理解度確認のために基礎的な内容の課題を出題する。また、数回の講義ごとに、応用的な内容のレポート課題を出題する。
講義内課題、レポート課題については、提出後に模範解答を配布して解説を行う。
DP4、DP5
回 | 項目 | 内容 | 担当者 | 日時 |
---|---|---|---|---|
1・2 回 | 「プログラミングⅠ」のおさらい | 「プログラミングⅠ」で学んだプログラミング、プログラミング環境の整備、コマンドラインでの操作方法について復習する。 | 齋藤 裕 来見田 遥一 牧垣 秀一朗 秋山 真那斗 上原 美夏 | 9/8③④ |
3・4 回 | ソート、文字列処理 | ソートによるデータの並び替えや文字列処理関数の使用方法について学ぶ。 バグが起きたときの対処方法として、printデバッグなどの方法について学ぶ。 | 齋藤 裕 来見田 遥一 牧垣 秀一朗 秋山 真那斗 上原 美夏 | 9/22③④ |
5・6 回 | 正規表現 | 正規表現による文字列のパターンマッチングについて学ぶ。 バグが起きたときの対処方法として、エラーメッセージの読み方や、バグの原因を推理するための方法について学ぶ。 | 齋藤 裕 来見田 遥一 牧垣 秀一朗 秋山 真那斗 上原 美夏 | 9/29③④ |
7・8 回 | 多次元アレイ | 多次元アレイの使用方法について学ぶ。 コマンドライン環境での各種コマンドの使用方法やディレクトリ構造について学ぶ。 | 齋藤 裕 来見田 遥一 牧垣 秀一朗 秋山 真那斗 上原 美夏 | 10/6③④ |
9・10回 | データフレーム1 | データフレームの基本的な使用方法について学ぶ。 シェルプログラミングの基礎について学ぶ。 | 齋藤 裕 来見田 遥一 牧垣 秀一朗 秋山 真那斗 上原 美夏 | 10/13③④ |
11・12回 | データフレーム2 | データフレームの詳しい使用方法(フィルタ、結合、窓関数、集約関数など)について学ぶ。 大規模データ解析のためのバッチ処理について学ぶ。 | 齋藤 裕 来見田 遥一 牧垣 秀一朗 秋山 真那斗 上原 美夏 | 10/20③④ |
13・14回 | データの可視化と作図1 | 散布図、棒グラフの作成方法について学ぶ。 エディタと開発環境について学ぶ。 | 齋藤 裕 来見田 遥一 牧垣 秀一朗 秋山 真那斗 上原 美夏 | 10/27③④ |
15・16回 | データの可視化と作図2 | 箱ひげ図、ヒストグラム、ヒートマップの作成方法について学ぶ。 | 齋藤 裕 来見田 遥一 牧垣 秀一朗 秋山 真那斗 上原 美夏 | 11/10③④ |
17・18回 | オブジェクト指向プログラミング1 | オブジェクト指向プログラミングとはなにか? クラス、インスタンス、メソッドなどの基本的な概念について学ぶ。 | 齋藤 裕 来見田 遥一 牧垣 秀一朗 秋山 真那斗 上原 美夏 | 11/17③④ |
19・20回 | オブジェクト指向プログラミング2 | 自分でクラスを作るための方法について学ぶ。 | 齋藤 裕 来見田 遥一 牧垣 秀一朗 秋山 真那斗 上原 美夏 | 12/1③④ |
21・22回 | 関数型プログラミング | 関数型プログラミングとはなにか? ラムダ計算などの基本的な概念について学ぶ。 | 齋藤 裕 来見田 遥一 牧垣 秀一朗 秋山 真那斗 上原 美夏 | 12/8③④ |
23・24回 | まとめ | 全体の確認と復習を行う。 | 齋藤 裕 来見田 遥一 牧垣 秀一朗 秋山 真那斗 上原 美夏 | 12/15③④ |
数百メガバイト以上の容量のファイルや数百個以上のファイルなど、人間の手では処理することが難しい大規模なデータを解析できるようになり、データサイエンスにおけるプログラミングの有用性を理解できる。
講義内で出題する課題(30%)、レポート課題(70%)の合計で評価する。
【講義時間外に必要な学修時間:87時間】
予習:事前に配布する講義資料を読み、疑問点を明確にしておくこと。講義資料内のソースコードを自分で実行して、動作を確認しておくこと。
復習:講義で扱ったソースコードを書き換え動作の変化を確認する等の練習を行い、今後、同様のソースコードを独力で書けるようにすること。レポート課題の解答を作成し、提出後に配布する模範解答との比較・考察を行うこと。
講義に関する質問はメールや対面にて受け付ける。
【科目ナンバリング:FU202-CF02】
【関連科目:プログラミングⅠ、データハンドリングと可視化、データ解析とその数理Ⅰ・Ⅱ】
(齋藤)国立研究所でのデータ解析ソフトウェアの開発経験をもとに、プログラミングについて講義・演習を行う。
(来見田)国立研究所における生命科学データの解析経験をもとに、プログラミングの講義と演習を行う。
(牧垣)複数民間企業でのプログラミング・サービス開発・設計経験をもとに、プログラミングやコード管理・テスト手法について講義を行う。
種別 | 書名 | 著者・編者 | 発行所 |
---|---|---|---|
教科書 | 配布資料あり | ||
参考書 | 東京大学のデータサイエンティスト育成講座 - Pythonで手を動かして学ぶデータ分析 | 塚本邦尊ら(著)、中山浩太郎(監) | マイナビ出版 |