プログラミング1

科目基礎情報

学校 久留米工業高等専門学校 開講年度 令和05年度 (2023年度)
授業科目 プログラミング1
科目番号 1E13 科目区分 専門 / 必修
授業形態 講義 単位の種別と単位数 履修単位: 1
開設学科 電気電子工学科 対象学年 1
開設期 後期 週時間数 2
教科書/教材 大津 真・田中 賢一郎 著『初心者からちゃんとしたプロになる Python基礎入門』,エムディエヌ.
担当教員 山口 崇

到達目標

1.プログラミングの用語を理解できる.
2.簡単なアルゴリズムを理解し活用できる.
3.Pythonの文法を理解し活用できる.
4.Pythonで実用的なプログラムを作製できる.

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
プログラミング用語の理解ほぼすべて理解できる.だいたい理解できる.ほとんど理解できない.
簡単なアルゴリズムの理解と活用ほぼすべて理解し,プログラムを短時間で作れる.だいたい理解し.プログラムを時間をかければ作れる.ほとんど理解できない.
Pythonの文法の理解と活用文法を理解し,不具合のないプログラムを短時間で作れる.文法を理解し,不具合のないプログラムを時間をかければ作れる.不具合のないプログラムを作れない.
実用的なプログラムの作製実用的なプログラムを短時間で作れる.実用的なプログラムを時間をかければ作れる.実用的なプログラムを作れない.

学科の到達目標項目との関係

1 説明 閉じる

教育方法等

概要:
「道具としてのPython」すなわち,プログラミングが役に立つさまざまな場面でPythonを活用できるようになることが目標である.この科目ではPythonの基本的な使い方を身に付け,計算やデータ処理などの作法を学ぶことにより,今後の日常生活や学習にプログラミングを活用する技法を身につける.
授業の進め方・方法:
学生自身の所有するパソコンに,本科目を学習するための専用のPython環境を用意して使う.授業では教科書の題材を使うが,目的に応じて教科書にぴったり沿わないこともある.日常生活での活用やデータ処理や計算など,必要に応じで教科書にない題材も取り入れる.アプリ開発やゲーム開発を学ぶのが主な目的ではない.これから学ぶ数学,物理,電気回路などにも幅広く活用できる技法を学ぶ.予習を前提に授業のわずかな時間で基本的なガイドのみ提示するが,これは自力で未知の題材で学ぶために付箋を貼っていくようなものである.自力で質の良い書籍を熟読し,「公式ドキュメント」を読むこと,エラーメッセージを読み解くこと,問題は根本的に解決することを習慣づけよう.基本的な用語は英語でもわかるようになろう.全回を通じて情報のモラルとサイバーセキュリティの基本を学ぶ.
注意点:
評価方法
(1) 小試験60%,課題20%,成果物および発表20%で評価する.
(2) 評価基準:60点以上を合格とする.
(3) 定期試験,再試験は実施しない.

教科書とパソコンで必ず予習・復習をすること.小試験を実施するので,前回までの授業内容を復習しておくこと.課題等は必ず期限までに提出すること.

参考書
[1] Chris Roffey 著『Coding Club Python』シリーズ,Cambridge University Press.
[2] Eric Matthes 著『Python Flash Cards』,No Starch Press.
[3] 高専機構 情報セキュリティ教材『K-SEC情報モラル教材』.

授業の属性・履修上の区分

アクティブラーニング
ICT 利用
遠隔授業対応
実務経験のある教員による授業

授業計画

授業内容 週ごとの到達目標
後期
3rdQ
1週 Pythonの概要(☞教科書L. 1-01):キーワード「モジュール」「パッケージ」「オブジェクト」「プロパティ」「メソッド」「インスタンス」/Pythonプログラミング環境の準備/情報セキュリティーの常識 Pythonのキーワードとプログラミング環境の使い方を理解する.情報セキュリティーの常識を理解する.
2週 Pythonの基礎(1) 変数と計算(☞教科書L. 2-01):キーワード「print関数」「演算子」「文字列」「型(type)」「変数」「フォーマット文字列」「文字列から数値への変換」「input関数」「コメント」 数値の計算,文字列の基本操作,変数の取り扱いができる.
3週 Pythonの基礎(2) モジュールを使う(☞教科書L. 2-02):キーワード「標準ライブラリ」「インポート」「mathモジュール」「from … import …」「コンストラクタ」「文字列のメソッド」 公式ライブラリーリファレンスを参照して標準ライブラリを活用できる.
4週 Pythonの基礎(3) 条件分岐(☞教科書L. 2-03):キーワード「条件式」「比較演算子」「真理値,ブール型(bool)」「if … elif … else …」「ブール演算,論理演算子 not, and, or」「三項演算子,条件式 … if … elif … else …」 比較とブール演算を用いた条件分岐の処理を書くことができる.
5週 Pythonの基礎(4) 例外処理(☞教科書L. 2-03):キーワード「実行時エラー,例外」「例外クラス」「try … except …」/繰り返し(ループ)(☞教科書L. 2-04):キーワード「for文」「rangeオブジェクト」「while文」「無限ループ」「break文」 実行時エラーを適切に処理できる.回数の決まった繰り返しや無限ループを活用できる.
6週 Pythonの基礎(5) リストとタプル(☞教科書L. 2-05):キーワード「リスト」「インデックス,添字」「要素」「要素の変更」「要素数,長さ,len関数」「要素の追加・削除」「in演算子」「タプル」「イテレート,イテラブル」「シーケンス型」「ミュータブル/イミュータブル」 タプルとリストの違い,リストの要素に関する操作を活用できる.
7週 Pythonの基礎(6) 辞書(☞教科書L. 2-05):キーワード「辞書(dict)」「マッピング型」「キー(key)/値(value)」「ハッシュ可能」/内包表記(☞教科書L. 2-05):キーワード「リスト内包表記」「辞書内包表記」 辞書を活用できる.内包表記による簡潔な記述ができる.
8週 Pythonの基礎(6) 関数の定義(☞教科書L. 2-06):キーワード「def文」「return文」「位置引数」「キーワード引数」「任意引数リスト」/クラスとオブジェクトの定義(☞教科書L. 2-06):キーワード「リスト内包表記」「辞書内包表記」 関数を定義し活用できる.
4thQ
9週 Pythonの基礎(7) クラスの定義(☞教科書L. 2-06):キーワード「def文」「マッピング型」「キー(key)/値(value)」「ハッシュ可能」/クラスとオブジェクトの定義(☞教科書L. 2-06):キーワード「リスト内包表記」「辞書内包表記」 クラスを定義しオブジェクトを活用できる.
10週 ウェブデータの活用(☞教科書L. 4 ※授業内容の一部は教科書とは異なる.):キーワード「HTTP/HTTPS」「URL」「クエリ」 ウェブのデータをプログラムで取得する方法を活用できる.
11週 グラフィカルユーザインタフェース(GUI)(1) tkinter(☞教科書L. 3 ※授業内容の一部は教科書とは異なる.):「Tk」「tkinter」 デスクトップGUIを活用したソフトウェアを作製できる.
12週 グラフィカルユーザインタフェース(GUI)(2) Pygame Zero(☞教科書L. 5 ※授業内容の一部は教科書とは異なる.):「Pygame Zero」「イベント」 グラフィックスの描画やマウスイベントなどを活用したソフトウェアを作製できる.
13週 ソフトウェア制作(1) 準備(☞英文資料) 提示された題材から発想した動くソフトウェアをグループワークで制作できる.
14週 ソフトウェア制作(2) 制作 提示された題材から発想した動くソフトウェアをグループワークで制作できる.
15週 ソフトウェア制作(3) プレゼンテーション 制作したソフトウェアについて,スライドによる説明と実演ができる.
16週

モデルコアカリキュラムの学習内容と到達目標

分類分野学習内容学習内容の到達目標到達レベル授業週
基礎的能力工学基礎情報リテラシー情報リテラシー情報を適切に収集・処理・発信するための基礎的な知識を活用できる。1後1,後2,後3,後4,後5,後6,後7,後8,後9,後10,後11,後12,後13,後14,後15
論理演算と進数変換の仕組みを用いて基本的な演算ができる。1後4,後5,後6,後7,後8,後9,後10,後11,後12,後13,後14,後15
コンピュータのハードウェアに関する基礎的な知識を活用できる。1後1
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを知っている。1後4,後5,後6,後7,後8,後9,後10,後11,後12,後13,後14,後15
与えられた基本的な問題を解くための適切なアルゴリズムを構築することができる。1後4,後5,後6,後7,後8,後9,後10,後11,後12,後13,後14,後15
任意のプログラミング言語を用いて、構築したアルゴリズムを実装できる。1後4,後5,後6,後7,後8,後9,後10,後11,後12,後13,後14,後15
情報セキュリティの必要性および守るべき情報を認識している。1後1,後10
個人情報とプライバシー保護の考え方についての基本的な配慮ができる。1後1,後10
インターネット(SNSを含む)やコンピュータの利用における様々な脅威を認識している1後1,後10
インターネット(SNSを含む)やコンピュータの利用における様々な脅威に対して実践すべき対策を説明できる。1後1,後10
専門的能力分野別の専門工学情報系分野プログラミング代入や演算子の概念を理解し、式を記述できる。2後2,後3,後4,後5,後6,後7,後8,後9,後10,後11,後12,後13,後14,後15
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。2後3,後4,後5,後6,後7,後8,後9,後10,後11,後12,後13,後14,後15
変数の概念を説明できる。2後2,後3,後4,後5,後6,後7,後8,後9,後10,後11,後12,後13,後14,後15
データ型の概念を説明できる。2後2,後3,後4,後5,後6,後7,後8,後9,後10,後11,後12,後13,後14,後15
制御構造の概念を理解し、条件分岐を記述できる。2後4,後5,後6,後7,後8,後9,後10,後11,後12,後13,後14,後15
制御構造の概念を理解し、反復処理を記述できる。2後5,後6,後7,後8,後9,後10,後11,後12,後13,後14,後15
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。2後3,後4,後5,後6,後7,後8,後9,後10,後11,後12,後13,後14,後15
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。2後3,後4,後5,後6,後7,後8,後9,後10,後11,後12,後13,後14,後15
与えられたソースプログラムを解析し、プログラムの動作を予測することができる。2後2,後3,後4,後5,後6,後7,後8,後9,後10,後11,後12,後13,後14,後15
ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。1後1,後2,後3,後4,後5,後6,後7,後8,後9,後10,後11,後12,後13,後14,後15
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。1後10,後11,後12,後13,後14,後15
要求仕様に従って、いずれかの手法により動作するプログラムを設計することができる。1後10,後11,後12,後13,後14,後15
要求仕様に従って、いずれかの手法により動作するプログラムを実装することができる。1後10,後11,後12,後13,後14,後15
計算機工学整数・小数をコンピュータのメモリ上でディジタル表現する方法を説明できる。1後2,後3,後4,後5,後6,後7,後8,後9,後10,後11,後12,後13,後14,後15
基数が異なる数の間で相互に変換できる。1後2,後3,後4,後5,後6,後7,後8,後9,後10,後11,後12,後13,後14,後15
整数を2進数、10進数、16進数で表現できる。1後2,後3,後4,後5,後6,後7,後8,後9,後10,後11,後12,後13,後14,後15
小数を2進数、10進数、16進数で表現できる。1後2,後3,後4,後5,後6,後7,後8,後9,後10,後11,後12,後13,後14,後15
基本的な論理演算を行うことができる。1後4,後5,後6,後7,後8,後9,後10,後11,後12,後13,後14,後15
基本的な論理演算を組合わせて、論理関数を論理式として表現できる。1後4,後5,後6,後7,後8,後9,後10,後11,後12,後13,後14,後15

評価割合

小試験課題発表合計
総合評価割合602020100
基礎的能力602020100
専門的能力0000
分野横断的能力0000