プログラミング1

科目基礎情報

学校 松江工業高等専門学校 開講年度 2017
授業科目 プログラミング1
科目番号 0001 科目区分 専門 / 選択
授業形態 授業 単位の種別と単位数 : 1
開設学科 電気情報工学科 対象学年 3
開設期 前期 週時間数 2
教科書/教材 教科書:高橋 麻奈, “やさしいC(第4版)”, SoftBank Creative
担当教員 藤嶋 教彰

到達目標

(1) プログラム文法の基礎(型,代入,演算,分岐,繰り返し)を理解できる.
(2) プログラムを読み,その動作を説明できる.
(3) 基本的なプログラムを作成できる.

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
評価項目1プログラム文法の基礎(型,代入,演算,分岐,繰り返し)を正しく理解できる.プログラム文法の基礎(型,代入,演算,分岐,繰り返し)を理解できる.プログラム文法の基礎(型,代入,演算,分岐,繰り返し)を理解できない.
評価項目2プログラムを読み,その動作を正しく説明できる.プログラムを読み,その動作を説明できる.プログラムを読み,その動作を説明できない.
評価項目3基本的なプログラムを正しく作成できる.基本的なプログラムを作成できる.基本的なプログラムを作成できない.

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

学習・教育到達度目標 1 説明 閉じる

教育方法等

概要:
 現代社会では,単純な動作をするプログラムを多く組み合わせることで高度で複雑な動作をするシステムを作り出し,電化製品やゲームソフトを含む様々な商品として世に出すことで人々の生活を豊かにしている.この社会で活躍できる工学技術者なるためには,学生のうちに「プログラミングに関する基礎知識・基本概念」および「作りたいものを作れるようにするために必要なことを見つけだす力(本質を見抜く力)」を習得する必要がある.
 本授業の主目的はプログラミング力の向上と本質を見抜く力の養成である.本授業では,特に幅広い分野で用いられているC言語を学習する.データの扱い方,演算,制御構造,繰り返しについて学習する.演習で特定の動作をするプログラムを考えて作る経験をすることで,プログラミングの基礎知識および技術者に必須の本質を見抜く力を養成する.
授業の進め方・方法:
・(1)~(3)の目標それぞれについて,定期試験および課題演習の結果にて評価する.
・50点以上(100点満点)を合格とする.不合格となった場合,中間・期末試験をそれぞれ30点以上取得し,総合点が45点以上の者は再評価試験を受験できるものとする.追認試験は実施しない.
・課題演習等(30%):課題プリントまたはプログラムの提出
・定期試験(70%):中間試験(30%),期末試験(40%)

注意点:
 本授業は「予習必須」です.言語を学習する科目(多くの知識を1回の授業で話す必要がある)では,予習無しでは頭に入りきらず,身につく知識が非常に少なくなります.予習の有無が知識習得に大きな差を生みます.授業中の講義部分は「予習で理解してきたことが正しいかを確認し,理解を深める場」として活用してください.演習部分では細かいノウハウ(バグの解消方法や自分の「コード記述の癖」の把握),および問題解決のための思考方法が得られます.これを学びとるのが授業の主目的となります.
 課題は「できる」ことよりも「激しく頭を使う」ことが重要です.課題の意図は何か,今回のようなプログラムは課題以外で何に活かせそうか,など様々なことを考えて取り組んでみてください.
 C言語について書かれた(1), (2), プログラミング力を身につけるゲームアプリについて紹介した(3)などは,C言語を書く力を育てるときに有用です.ぜひ読んでみてください.

(1) 岡嶋裕史, “しろうとクマくんとC言語の授業”, NTT出版, 2008.
(2) 粂井康孝, “猫でもわかるC言語プログラミング【第3版】”, SB Creative, 2013.
(3) 米田昌悟, “プログラミング入門講座”, SB Creative, 2016.

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 C言語概論 / コンパイルと実行(pp.2-25)
C言語の概論について,およびコード作成,コンパイルの方法について理解する.
2週 変換仕様とエスケープシーケンス(pp.26-41)(課題1)
変換仕様,およびエスケープシーケンスの使用方法について理解する.
3週 変数(pp.46-71)(課題2)
変数の意味,値の代入方法,キーボードからの入力方法について理解する.
4週 式と演算子(pp.76-109)(課題3)
演算子,複合演算子,インクリメント・ディクリメント演算子,型変換について理解する.
5週 関係演算子 / if文(pp.114-124)(課題4)
関係演算子を用いたif文による分岐処理について理解する.
6週 elseを含むif文/ 論理演算子(pp.125-132, 138-145)(課題5) else,if ~ else文,論理演算子を用いた複雑な分岐処理について理解する.
7週 switch文(pp.133-137)(課題6)
switch文による分岐処理について理解する.
8週 中間演習 第1回から第7回までの内容に関する理解を深める.
2ndQ
9週 中間試験
10週 for文(pp.150-156, 164-167)(課題7)
for文による繰り返し処理について理解する.
11週 for文を用いたΣ計算(課題8)
for文によるΣ計算の方法について理解する.
12週 while, do~while文(pp.157-163)(課題9)
while, do~while文による繰り返し処理について理解する.
13週 処理の流れを変更する文(pp.168-173)(課題10)
break, continue文の利用方法について理解する.
14週 期末演習
第10回から第13回までの内容に関する理解を深める.
15週 期末試験
16週 総論
本授業で学習したことに関する理解を深める.

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

分類分野学習内容学習内容の到達目標到達レベル授業週
専門的能力分野別の専門工学電気・電子系分野情報基本的なアルゴリズムを理解し、図式表現できる。2
プログラミング言語を用いて基本的なプログラミングができる。2
情報系分野プログラミング変数とデータ型の概念を説明できる。2
代入や演算子の概念を理解し、式を記述できる。2
制御構造の概念を理解し、条件分岐や反復処理を記述できる。2
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。2
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。2

評価割合

試験課題演習等合計
総合評価割合7030100
基礎的能力000
専門的能力7030100
分野横断的能力000