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