概要:
この科目は,Pythonで非常に小さなプログラムが書けるようになることを目的とする.Pythonの基本的な文法をマスターすることを目指す.手続き型プログラミングの部分で時間切れとなるが,残りのオブジェクト指向のプログラミンングは各自で自習し,3年生の後期の学期末(前期ではない)に課題として提出してもらう.授業では,適宜,高専機構が準備した情報セキュリティー教材を活用し,情報セキュリティーの常識も増やしていく.
授業の進め方・方法:
学習においては,自宅での独習が重要である.単に教科書を読むだけではなく,自分でPC(Personal Computer)ソフトウェアの環境を整備し,教科書の内容を入力し理解を進める必要がある.授業では,高専が独自に準備した情報セキュリティー教材とLinuxの教科書を使用して進めるが,あくまで自宅における学習が前提となる.可能な限り反転授業を行うので,黙って座っていれば,教えてもらえると思わないこと.授業とはわからないところを質問する場であると理解すること.ThinkPythonの練習問題をプログラミングすることが主な課題である.ソフトウェアをコンパイルできるPC環境を必要とするため,自分専用のノートブックPCを持つことが必要である.メモリー4GB以上の64bitノートブックパソコンが必要である.Notebook PCのHDDをSSDに交換できるような基本的なPCに関する指導も行う.
注意点:
教科書:
(1)高専機構 情報セキュリティ教材 「K-SEC情報モラル教材」(高専機構 「情報システムユーザーガイドライン」「低学年教材」)
(2)入門Python3 (Bill Lubanovic Lubanovic (著), 斎藤 康毅 (監修), 長尾 高弘 (翻訳))
(3)ThinkPython:コンピュータサイエンティストのように考えてみよう 第2版 (アレン・B・ダウニー(著), 相川利樹 (翻訳))
評価方法詳細:
定期試験 50%,授業への参加,授業での質問,課題等その他で 50% を目安として評価する.60点以上を合格とする.再試は行わない.
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
授業では,簡単な説明の後,すぐにハンズオントレーニングを行う.「習うより慣れろ」を基本とする.Pythonのプログラミング環境を整備する助けを行う. |
各自が自分のPCにPythonの実行環境を準備する.
|
2週 |
Pythonを動作させる.簡単なプログラムを書く. |
簡単なプログラムが書ける.
|
3週 |
Python で簡単なプログラムを書く. オブジェクトと変数などを説明する. |
オブジェクトと変数が理解できる.
|
4週 |
Pythonの演算子の優先順位が理解でき,簡単な計算ができるようになることをサポートする. |
Pythonで簡単な計算ができる.
|
5週 |
関数呼び出しや,新規関数の定義とその利用,変数のスコープ,スタック図が理解できるようにサポートを行う. |
基本的な関数を利用してプログラムが書ける.
|
6週 |
文字操作を行い,キャラクターを自由に画面上に配置できるようにする. |
Line Drawing characterを使い下線や正方形の枠などを書ける.
|
7週 |
turtleモジュールを使えるようになることをサポートする. |
turtleモジュールを使って線が書ける.
|
8週 |
関数のインターフェースを理解し,turtleモジュールを活用し,円や曲線が書けるようになるサポートを行う. |
turtleモジュールを使って円や曲線が書ける.
|
2ndQ |
9週 |
モジュラ演算子をはじめとする色々な演算子を使えるようにするためのサポートを行う.また,条件文の連鎖や入れ子の条件処理を理解できるように説明する. |
自由に演算子が使える.
|
10週 |
再帰とスタックに関する説明を行う.キーボード入力など基本的なInput/Outputができるようにサポートを行う.コッホ曲線を書くプログラムを作成できることを目指す |
コッホ曲線を書くプログラムが書ける.
|
11週 |
Pythonの結果を返す関数を使えるようにする.戻り値の意味や合成関数が作れるようにする. |
Pythonの関数を作ることができる.
|
12週 |
ブール代数関数や再帰関数に挑戦する.再帰関数を作ることができるようにする. |
再起関数を作りかつ使うことができる.
|
13週 |
繰り返し処理:多重代入(Reassignment)や変数の更新, while文, breakの使い方など,基本的な文法を理解しプログラミングを行う. |
Σの計算などをプログラムに落とすことができる.
|
14週 |
予備 (第何週目かに,高専機構が準備した情報セキュリティー教材を活用し,情報セキュリティーの常識も増やしていく.) |
|
15週 |
予備 |
|
16週 |
|
|
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
基礎的能力 | 工学基礎 | 情報リテラシー | 情報リテラシー | 情報を適切に収集・処理・発信するための基礎的な知識を活用できる。 | 3 | |
論理演算と進数変換の仕組みを用いて基本的な演算ができる。 | 3 | |
コンピュータのハードウェアに関する基礎的な知識を活用できる。 | 3 | |
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを知っている。 | 3 | |
与えられた基本的な問題を解くための適切なアルゴリズムを構築することができる。 | 3 | |
任意のプログラミング言語を用いて、構築したアルゴリズムを実装できる。 | 3 | |
情報セキュリティの必要性および守るべき情報を認識している。 | 3 | |
個人情報とプライバシー保護の考え方についての基本的な配慮ができる。 | 3 | |
インターネット(SNSを含む)やコンピュータの利用における様々な脅威を認識している | 3 | |
インターネット(SNSを含む)やコンピュータの利用における様々な脅威に対して実践すべき対策を説明できる。 | 3 | |
専門的能力 | 分野別の専門工学 | 情報系分野 | プログラミング | 代入や演算子の概念を理解し、式を記述できる。 | 3 | |
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。 | 3 | |
変数の概念を説明できる。 | 3 | |
データ型の概念を説明できる。 | 3 | |
制御構造の概念を理解し、条件分岐を記述できる。 | 3 | |
制御構造の概念を理解し、反復処理を記述できる。 | 3 | |
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。 | 3 | |
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。 | 3 | |
与えられたソースプログラムを解析し、プログラムの動作を予測することができる。 | 3 | |
ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。 | 3 | |
要求仕様に従って、いずれかの手法により動作するプログラムを設計することができる。 | 3 | |
要求仕様に従って、いずれかの手法により動作するプログラムを実装することができる。 | 3 | |
計算機工学 | 整数・小数をコンピュータのメモリ上でディジタル表現する方法を説明できる。 | 3 | |
基数が異なる数の間で相互に変換できる。 | 3 | |
整数を2進数、10進数、16進数で表現できる。 | 3 | |
小数を2進数、10進数、16進数で表現できる。 | 3 | |