プログラミング演習

科目基礎情報

学校 鶴岡工業高等専門学校 開講年度 令和06年度 (2024年度)
授業科目 プログラミング演習
科目番号 0047 科目区分 専門 / 必修
授業形態 演習 単位の種別と単位数 履修単位: 3
開設学科 創造工学科(情報コース) 対象学年 3
開設期 通年 週時間数 3
教科書/教材 なし(参考書として「高橋麻奈: やさしいPython,SBクリエイティブ」)
担当教員 田中 勇帆

到達目標

変数とデータ型の概念を説明できる。代入や演算子を理解し,式を記述できる。制御構造を理解し,条件分岐や反復処理を記述できる。関数(プロシージャ)を理解し,関数を使ったプログラムを記述できる。与えられた問題に対して,それを解決するためのソースプログラムを記述し,実行することができる。

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
評価項目1制御構造を理解し,条件分岐や反復処理を記述し,説明できる。制御構造を理解し,条件分岐や反復処理を記述できる。制御構造を理解し,条件分岐や反復処理を記述できない。
評価項目2関数を理解し,これらを含むプログラムを記述し,説明できる。関数を理解し,これらを含むプログラムを記述できる。関数を理解し,これらを含むプログラムを記述できない。
評価項目3与えられた問題に対して,それを解決するためのソースプログラムを記述し,説明できる。与えられた問題に対して,それを解決するためのソースプログラムを記述できる。与えられた問題に対して,それを解決するためのソースプログラムを記述できない。

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

(D) 専門分野の知識と情報技術を身につける。 説明 閉じる

教育方法等

概要:
Pythonを用いたプログラミング能力を高めることを目標とします。問題のトップダウン的解析や関数によるプログラムの機能分割に積極的に取り組むことにより,構造化プログラミングの方法を理解し,実践的なプログラミング能力を身につけます。
授業の進め方・方法:
前半は,教科書の練習問題程度のプログラムを作成することで,Pythonのプログラミングの基本を復習・理解してください。後半は,提示された問題に対して,それを解決するためのアルゴリズムを考え,プログラムを作成する実習を行います。
授業への取り組み(出席および授業課題提出状況)30%,レポート 70%で総合評価し,50点以上を合格とします。
注意点:
プログラムを完成させることが目的ではなく,プログラミングという作業に慣れることが重要です。構造化プログラミング,関数による機能分割にもチャレンジして欲しいと思います。人に聞いたり,ネットで調べたりすることは大切ですが,プログラムのコピーだけは絶対に行わないようにしてください。

事前・事後学習、オフィスアワー

【オフィスアワー】 授業日の15:00~16:00

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

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

授業計画

授業内容 週ごとの到達目標
前期
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

評価割合

取り組みレポート合計
総合評価割合3070100
基礎的能力103040
専門的能力103040
分野横断的能力101020