Web Syllabus(講義概要)
トップへ戻る 前のページへ戻る
プログラミングⅡ
英文名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③④
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で手を動かして学ぶデータ分析塚本邦尊ら(著)、中山浩太郎(監)マイナビ出版
教科書
署名
配布資料あり
著者・編者
発行所
参考書
署名
東京大学のデータサイエンティスト育成講座 - Pythonで手を動かして学ぶデータ分析
著者・編者
塚本邦尊ら(著)、中山浩太郎(監)
発行所
マイナビ出版