学期／Semester

2021年度／Academic Year
／Second Semester

後期

開講期間／Course duration

2021/09/28〜2022/03/31

必修選択／Required / Elective

必修／required

時間割コード／Time schedule code

20213802005001

科目ナンバリングコード／Numbering code

ID‑ID‑1‑050‑1‑112

授業科目名／Course title

プログラミング演習Ⅰ／Practice in Software ProgrammingⅠ

曜日・校時／Day・Period

単位数(一般/編入/留学)／Credits(General /Transfer/Overseas)
科目番号／Course code

月／Mon 4, 月／Mon 5

2.0//2.038020050

編集担当教員／Instructor in charge of the松永 昭一／Matsunaga Shoichi
course syllabus
授業担当教員名（科目責任者）／Instructor in charge of the course

松永昭一／Matsunaga Shoichi

授業担当教員名（オムニバス科目等）／Instructor(s)松永昭一／Matsunaga Shoichi

科目分類／Course Category

共通科目, 情報学基盤科目（コンピュータ科学）

対象年次／Intended year

1

教室／Class room

[総合]総合教育研究棟2F多目的ホール, ［情報］１号館４Ｆ情報システム工学科演習室

対象学生（クラス等）/Intended year (class)

講義形態／Course style

演習／Seminar

情報データ科学部1年次

担当教員Eメールアドレス/E‑mail address

mat@cis.nagasaki‑u.ac.jp

担当教員研究室/Office

情報データ科学部1号館2階 情報システム研究室205

担当教員TEL/Tel2700

担当教員オフィスアワー/Office hours

月５校時．これ以外でも良いがアポイントを奨めます．

授業の概要及び位置づけ/Course overview

情報系の学生が習得すべき基礎能力であるプログラミングの基礎概念に習熟する。同時に、プログ
ラミング環境の設定方法を学ぶ

授業到達目標/Course goals

プログラミング言語pythonの基本制御構造や構文を理解し、与えられたプログラムを読んで意味を理解できる。論理的な制御構造を用いて、与えられた仕様に基づく、コメントや関数使用によって可読性を考慮したプログラムを自力で設計・作成できる。

知識・技能以外に、この授業を通して身につけて欲■主体性／Autonomy ■汎用的能力／Generic Competence □倫理観／Ethics □多様性の理解
しい力（１つ以上３つまで）/Abilities other than／Understanding Diversity □協働性／Cooperativeness □考えをやり取りする力／Ability toknowledge and skills acquired mainly throughexchange ideas □国際・地域社会への関心／Interest in international / local society
the course ( pick 1 to 3 )■A.授業内容の理解度を確認したり自分で考えさせたりする活動 <br>/ Activities to check thedegree of comprehension of the contents to the lesson or to think over
□B.多角的に考えるために他者と関わる活動 <br>/ Activities involving others to think fromvarious perspectives
学生の思考を活性化させるための授業手法/Teaching ■C.技能修得のために実践する活動 <br>/ Activities to practice for acquiring skills
method to stimulate students' thinking■D.問題解決のために知識を総合的に活用する活動 <br>/ Activities that comprehensively
utilize knowledge to solve problems□E.上記以外の学生の思考の活性化を促す授業手法 <br>/ Teaching methods to stimulate
students' thinking other than the above□F.教員からの講義のみで構成される <br>/ It consists only of lectures from teachers
成績評価の方法・基準等/Method of evaluation

講義時間中に取り組む課題の達成度およびレポート課題の内容を評価し，その評価点が60%以上のものを合格とする。ただし，全回出席し，全てのレポートを提出することを前提とする。

各回の授業内容・授業方法（学習指導方法）/Course
詳細は授業計画詳細を参照
contents of each lesson

事前、事後学習の内容/Preparation & Review

授業計画に沿った事前、事後学習を行うこと。演習内容を効率良く理解するため、そして演習時になされる教員の質問に解答することができるためにも、その回に取り上げられるトピックを予習してくることが推奨される。(1h)
各回の演習トピックは多岐にわたるとともに、相互に関連している。各演習の直前に復習したのでは、正確な理解を身につけることは難しいため、毎回復習すること(1h)キーワード/Keywords

プログラミング，演算，条件分岐，繰り返し構造，入出力，配列

教科書・教材・参考書/Materials

プログラミング概論と同じ教科書を使用する。
参考書
Bill Lubanovic 著 (監訳 斎藤康毅, 訳 長尾高弘), 入門Python3, オライリー・ジャパン, オー

受講要件（履修条件）/Prerequisites原則として全回出席を前提とする．ただし、やむを得ず正当な理由で欠席する場合は個別指導を行うので担当教員に連絡すること。

アクセシビリティ/Accessibility (for studentswith disabilities)

長崎大学では，全ての学生が平等に教育を受ける機会を確保するため，修学の妨げとなり得る社会的障壁の除去及び合理的配慮の提供に取り組んでいます。授業における合理的配慮等のサポートについては，担当教員（上記連絡先参照）または「アシスト広場」（障がい学生支援室）にご相談下さい。
アシスト広場（障がい学生支援室）連絡先（TEL）095‑819‑2006 （FAX）095‑819‑2948 （E‑MAIL）support@ml.nagasaki‑u.ac.jp

備考（URL）/Remarks (URL)lacsのプログラミング演習Iに記載する

学生へのメッセージ/Message for students

受講時には各自のノートパソコンを持参すること。やむを得ず欠席する場合は個別指導を行うので担当教員に連絡すること。

実務経験のある教員による授業科目であるかY（Y／N)/Instructor(s) with practical experience
実務家教員名／実務経験内容／実務経験に基づく教
育内容（実務経験のある教員による授業科目のみ使 松永昭一／日本電信電話において研究開発に従事／プログラミングを実務上どのように用いていた用）/Name / Details of practical experience / かを例示し，学生の理解度を深める
Contents of course
授業計画詳細／Course Schedule

回(日時)／Time(date and time)

授業内容／Contents

第1回

オリエンテーション 〜全回の授業計画についての説明、課題提出のためのLACS，及び教職員やティーチングアシスタント(TA)との授業中のコミュニケーションツールについての説明

第2回

演習準備1（プログラミングに必要なツール類とその役割を理解する）〜 google chrome, emacs,
python 3.8.6）のインストールができる，マイクロソフトWindows10のGUI(Graphical UserInterface)が使える

第3回

演習準備2（プログラミングに必要なツール類を使うことができる）〜 マイクロソフトWindows10のCUI(Character User Interface)（コマンドプロンプトの設定、cd, dir, ren, copy, md, delな
どの各種コマンド演習）、pythonの対話モードの使い方、emacsでの簡単なプログラムの作成実行、emacsの操作方法、pythonのバッチモードでの実行

第4回

型と演算（目的に応じた型が理解できる）〜
数，型変換

第5回

基本的な入出力と文字列の扱い（基本的な入出力を制御したプログラムを作成できるとともに文字列の結合ができる）〜 文字列リテラル（エスケープ文字含む），連結+と繰り返し*，len，index
指定，スライス指定，input

第6回

演算子（型に応じた演算子を使用できる）〜

第7回

条件分岐（if文が使える。インデントの意味を理解し使うことができる）〜
ンデントの使い方

第8回

例外処理と描画入門（例外処理と簡単な描画ができる）〜

第9回

データセットⅠ（データを格納・操作できる）〜リスト[ ]，タプル( )第10回

制御耕造の多重化（制御構造を多重化したプログラムを作成できる）〜
高度に利用

第11回

データセットⅡ（高度なデータ格納・操作できる）〜
合{ }，ソート，unpacking，内包表記

第12回

関数Ⅰ（関数の定義と利用ができる）〜
ラムダ式

第13回

関数Ⅱ（高度な関数の定義と利用ができる）〜
ラリの自作，再帰的定義

第14回

オブジェクト指向とクラス（オブジェクト指向のプログラミングを理解する）〜
クラス，インスタンス

第15回

最終課題（学習したことを総合的に用いたプログラムを作成する）〜 google colabを利用する

第16回

最終課題の評価と指導コメント，整数，実数，リテラル，算術演算子，変比較演算子，論理演算子
if, elif, else:とイtry, except, matplotlib
if文，for文，while文をdel文，コンテナ，in 演算子，辞書{ }，集

位置引数，キーワード引数，ローカル変数，大域変数，可変長位置引数，可変長キーワード引数，ライブ
オブジェクト，学期／Semester

2021年度／Academic Year
／First Semester

前期

開講期間／Course duration

2021/04/01〜2021/09/27

必修選択／Required / Elective

必修／required

時間割コード／Time schedule code

20213802005501

科目ナンバリングコード／Numbering code

ID‑ID‑1‑055‑1‑112

授業科目名／Course title

プログラミング演習Ⅱ／Practice in Software Programming II

曜日・校時／Day・Period

単位数(一般/編入/留学)／Credits(General /Transfer/Overseas)
科目番号／Course code

水／Wed 3, 水／Wed 4

2.0//2.038020055

編集担当教員／Instructor in charge of the薗田 光太郎／Sonoda Kotaro
course syllabus
授業担当教員名（科目責任者）／Instructor in charge of the course薗田

光太郎／Sonoda Kotaro

授業担当教員名（オムニバス科目等）／Instructor(s)薗田光太郎／Sonoda Kotaro

科目分類／Course Category

共通科目, 情報学基盤科目（コンピュータ科学）

対象年次／Intended year

2

教室／Class room

[総合]総合教育研究棟2F多目的ホール

対象学生（クラス等）/Intended year (class)

担当教員Eメールアドレス/E‑mail address

講義形態／Course style

演習／Seminar

２年次
sonoda‑2021ps2@cis.nagasaki‑u.ac.jp

担当教員研究室/Office
担当教員TEL/Tel

095‑819‑2586

担当教員オフィスアワー/Office hours
授業の概要及び位置づけ/Course overview

代表的なプログラミング言語であるPythonを用いて，計算機科学や情報工学を専攻する者にとって必須なプログラミング実装能力・プログラミング読解力，デバグ能力，および可読性の高いプログラム作成能力を習得する．

授業到達目標/Course goals

モジュール，自作関数を駆使し，オブジェクト指向に基づくプログラムを簡潔に可読性高く作成できる．

知識・技能以外に、この授業を通して身につけて欲■主体性／Autonomy ■汎用的能力／Generic Competence □倫理観／Ethics □多様性の理解
しい力（１つ以上３つまで）/Abilities other than／Understanding Diversity □協働性／Cooperativeness ■考えをやり取りする力／Ability toknowledge and skills acquired mainly throughexchange ideas □国際・地域社会への関心／Interest in international / local society
the course ( pick 1 to 3 )■A.授業内容の理解度を確認したり自分で考えさせたりする活動 <br>/ Activities to check thedegree of comprehension of the contents to the lesson or to think over
■B.多角的に考えるために他者と関わる活動 <br>/ Activities involving others to think fromvarious perspectives
学生の思考を活性化させるための授業手法/Teaching ■C.技能修得のために実践する活動 <br>/ Activities to practice for acquiring skills
method to stimulate students' thinking□D.問題解決のために知識を総合的に活用する活動 <br>/ Activities that comprehensively
utilize knowledge to solve problems□E.上記以外の学生の思考の活性化を促す授業手法 <br>/ Teaching methods to stimulate
students' thinking other than the above□F.教員からの講義のみで構成される <br>/ It consists only of lectures from teachers
作成したプログラムソースコードと，その実行結果をレポートとして毎回提出．すべての課題に対成績評価の方法・基準等/Method of evaluation
してレポートを提出し，その評価点が60%以上のものを合格とする．全回出席を前提とするが，やむを得ず欠席の場合は，個別指導をおこなうので担当教官に連絡すること．
各回の授業内容・授業方法（学習指導方法）/Course
詳細は授業計画詳細を参照
contents of each lesson
事前、事後学習の内容/Preparation & Review

授業で指示する。

キーワード/Keywords

Python，プログラミング，関数，モジュール，クラス，オブジェクト指向，データサイエンス

教科書・教材・参考書/Materials

受講要件（履修条件）/Prerequisites

アクセシビリティ/Accessibility (for students
with disabilities)

参考書：コーリー・アルソフ，清水川貴之（監訳）「独学プログラマー
事のやり方まで」
教科書は特に指定しない．教員のホームページで課題を出題．

Python言語の基本から仕プログラミング演習Ⅰを履修したものとして演習をすすめる
長崎大学では，全ての学生が平等に教育を受ける機会を確保するため，修学の妨げとなり得る社会的障壁の除去及び合理的配慮の提供に取り組んでいます。授業における合理的配慮等のサポートについては，担当教員（上記連絡先参照）または「アシスト広場」（障がい学生支援室）にご相談下
さい。
アシスト広場（障がい学生支援室）連絡先（TEL）095‑819‑2006 （FAX）095‑819‑2948 （E‑MAIL）support@ml.nagasaki‑u.ac.jp

備考（URL）/Remarks (URL)
学生へのメッセージ/Message for students

予習・復習をしっかり取り組むこと。

実務経験のある教員による授業科目であるか（Y／N)/Instructor(s) with practical experience
実務家教員名／実務経験内容／実務経験に基づく教育内容（実務経験のある教員による授業科目のみ使用）/Name / Details of practical experience /Contents of course
授業計画詳細／Course Schedule

回(日時)／Time(date and time)

授業内容／Contents

授業方法

その日のポイントするプログラム表現手法に応じて課す課題の演習を中心とする．

第１回

プログラミング演習Ⅰの復習（１）

第２回

プログラミング演習Ⅰの復習（２）

第３，４回

関数，モジュール

第５，６，７回

クラス，インスタンス，継承

第８，９回

ファイル入出力と多次元配列に対する処理

第10，１１回

数値計算

第１２回

可視化

第１３，１４，１５回

実践課題

第１６回

まとめ