変数とデータ型の概念を説明できる。代入や演算子を理解し,式を記述できる。制御構造を理解し,条件分岐や反復処理を記述できる。関数(プロシージャ)を理解し,関数を使ったプログラムを記述できる。与えられた問題に対して,それを解決するためのソースプログラムを記述し,実行することができる。
概要:
Pythonを用いたプログラミング能力を高めることを目標とします。問題のトップダウン的解析や関数によるプログラムの機能分割に積極的に取り組むことにより,構造化プログラミングの方法を理解し,実践的なプログラミング能力を身につけます。
授業の進め方・方法:
前半は,教科書の練習問題程度のプログラムを作成することで,Pythonのプログラミングの基本を復習・理解してください。後半は,提示された問題に対して,それを解決するためのアルゴリズムを考え,プログラムを作成する実習を行います。
レポート 100%で総合評価し,50点以上を合格とします。
注意点:
プログラムを完成させることが目的ではなく,プログラミングという作業に慣れることが重要です。構造化プログラミング,関数による機能分割にもチャレンジして欲しいと思います。人に聞いたり,ネットで調べたりすることは大切ですが,プログラムのコピーだけは絶対に行わないようにしてください。
|
|
週 |
授業内容 |
週ごとの到達目標 |
| 前期 |
| 1stQ |
| 1週 |
文字列(その1) 文字列のフォーマットについておよび授業の進め方,プログラムの作成方法など |
文字列におけるフォーマットについて理解する。 前期授業の進め方を理解する。
|
| 2週 |
文字列(その2) 検索,置換,分割 |
文字列における検索,置換,分割方法について理解する。
|
| 3週 |
ループ for文,while文,入れ子構造 |
ループの考え方を理解し,プログラムを作成できる。
|
| 4週 |
リスト リストの基本的な操作 |
リストの考え方を理解し,プログラムを作成できる。
|
| 5週 |
タプル タプルの基本的な操作 |
タプルの考え方を理解し,プログラムを作成できる。
|
| 6週 |
ディクショナリ ディクショナリの基本的な操作 |
ディクショナリの考え方を理解し,プログラムを作成できる。
|
| 7週 |
関数(その1) 関数の定義 |
関数の定義や引数と戻り値などの基本的な説明ができる。
|
| 8週 |
関数(その2) ラムダ演算子,デコレータ |
ラムダ演算子,デコレータを用いた関数を作成できる。
|
| 2ndQ |
| 9週 |
再帰関数 |
関数を用いた再帰処理の基本的な説明ができる。
|
| 10週 |
クラス(その1) クラスの定義 |
クラスの考え方を理解し,クラスを用いたプログラムを作成できる。
|
| 11週 |
クラス(その2) クラスの継承,オーバーライド |
クラスの継承,オーバーライドといった考え方を理解し,プログラムを作成できる。
|
| 12週 |
課題プログラム1 |
基本的な(簡単な)プログラムを作成できる。
|
| 13週 |
モジュール
|
モジュールの考え方を理解し,プログラムを作成できる。
|
| 14週 |
ファイル操作(その1) |
ファイルデータの読み取り,ファイルデータの書き込みの考え方を理解する。
|
| 15週 |
ファイル操作(その2) |
ファイルデータの読み取り,ファイルデータの書き込みを処理するプログラムを作成できる。
|
| 16週 |
|
|
| 後期 |
| 3rdQ |
| 1週 |
プログラムのデバッグ |
プログラムの不備を見つけ出して修正することができる。
|
| 2週 |
プログラムの可読性 |
プログラムの可読性について理解し,プログラムを保守・点検できる。
|
| 3週 |
データ構造 スタック |
データ構造スタックのデータ格納の特徴(last in first out)を理解し,スタックを操作するプログラムを実装できる。
|
| 4週 |
データ構造 キュー |
データ構造キューのデータ格納の特徴(first in first out)を理解し,キューを操作するプログラムを実装できる。
|
| 5週 |
動的リスト構造 |
C言語における動的リストとPtyhonのコレクションを比較してデータ構造の違いを理解できる。
|
| 6週 |
データ構造 木 |
データ構造木のデータ格納の特徴を理解し,木を操作するプログラムを実装できる。
|
| 7週 |
課題プログラム2 |
これまでの授業内容を理解して、課題プログラムを作成できる。
|
| 8週 |
プログラム設計手法 全数探索 |
全ての可能性のある解の候補を全て調べる全数探索法を理解し,プログラム作成に応用できる。
|
| 4thQ |
| 9週 |
プログラム設計手法 探索木 |
木構造を利用した最小値探索法を理解し,プログラム作成に応用できる。
|
| 10週 |
プログラム設計手法 動的計画法 |
対象となる問題を複数の部分問題に分割し,部分問題の結果を記録しながら解く動的計画法を理解し,プログラム作成に応用できる。
|
| 11週 |
数値解析 二分探索法を用いた方程式の求解 |
探索の対象となるデータ範囲を半分ずつに限定しながら値を探索する二分探索法を理解する。 二分探索法を用いて方程式の近似解を求めるプログラムを作成できる。
|
| 12週 |
数値解析 モンティカルロ法 |
乱択を繰り返し行い答えを求める手法の一つであるモンティカルロ法の手法を理解する。 モンティカルロ法を用いて円周率の近似値を求めるプログラムを作成できる。
|
| 13週 |
数値解析 数値微分 |
微分の近似値を計算する数値微分の手法を説明できる。 微分値を利用し関数の最小値を求める手法である勾配降下法を説明できる。 勾配降下法を用いて関数の最小値を求めるプログラムを作成できる。
|
| 14週 |
数値解析 数値積分 |
定積分の近似値を計算する区分求積法と台形則を説明できる。 定積分の近似値を求めるプログラムを作成できる。
|
| 15週 |
まとめ |
これまでの授業内容を理解して、課題プログラムを作成できる。
|
| 16週 |
|
|
| 分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
| 専門的能力 | 分野別の専門工学 | 情報系分野 | プログラミング | プログラミングの基本的な構造を理解し、プログラムを記述できる。 | 3 | 前1,前2,前3,前4,前5,前6,前10,前11 |
| サブルーチンの概念を理解し、これらを含むプログラムを記述できる。 | 3 | 前1,前2,前3,前4,前5,前6,前10,前11 |
| 与えられた問題に対して、それを解決するためのソースプログラムを記述できる。 | 3 | 前9,前12,後7,後8,後9,後10,後11,後12,後13,後14,後15 |
| 与えられたソースプログラムを解析し、プログラムの動作を予測できる。 | 3 | 前13,後8,後9,後10,後11,後12,後13,後14,後15 |
| ソフトウェア生成に必要なツールを使い、ソースプログラムを実行できる。 | 3 | 後1,後8,後9,後10,後11,後12,後13,後14,後15 |