神戸情報大学院大学 シラバス 2024

1. 科目コード1208
2. 科目名F20: プログラミング基礎論C
3. 担当教員
大寺 亮 (Ryo Ohtera)
4. 開講期
春2期
5. 履修要件(前提科目)・重要情報「1202 Linux基礎」の学習目標に到達している。
より詳細の要件は備考欄を参照。

6. 科目の目的・概要
プログラミングは、本学でITについて学ぶ上で基礎となる知識・技術である。これまでに、一度もプログラミングを学んだことがない学生にとっては、本講義が最初の一歩となる。本
講義は、Linuxを用いた、C言語によるプログラミングの基礎の習得ならびにプログラム作成に関するスキルの定着を目指す。そのために、演習により実際に手を動かしながら、プログラミングを学ぶ。
7. 授業概要
1 プログラム基礎概説
2 変数の概念概説
3 条件分岐概説
4 変数および条件分岐演習
5 反復概説
6 反復演習7 配列概説
8 配列演習9 ポインタ概説
10 ポインタ演習
11 関数概説
12 関数演習
13 文字列処理概説
14 文字列処理演習
15 まとめと総合演習
16 筆記試験
8. 教科書なし
9. 参考書なし
10. 科目の学習目標(1) C言語の基礎文法を理解し、作成したプログラムを実行できる(2) C言語プログラムにおける処理の流れを把握し、100行程度のプログラムの内容を理解できる(3) プログラムとして達成したい事について、学んだ基礎知識をもとに、全体の流れを自身で考える事ができる(4) 学んだ基礎知識に若干の応用を加える事ができる
(5)
(6)
(7)
(8)

11. 本学の教育目標と科目の学習目標との対応
教育目標
学習目標
高度ICT
基礎的素養
(1),(2),(3)
スキルの修得 専門知識および業務応用力
自ら強みを磨き続ける力
自ら社会における課題設定
課題を発見し、仮説立案
人間力
解決する力
仮説検証
（＝探究力）
実行の修得前に踏出す力(4)
社会人基礎力
考え抜く力(3),(4)
チームで働く力
職業倫理の修得
12. 評価方法と配点
学習目標
達成度評価方法と配点
期末試験 小テスト
レポート
発表
成果物
その他
(1)〇(2)
〇(3)
〇
(4)
〇(5)
(6)
(7)
(8)
配点60
40
13. 評価基準
期末試験
毎回の授業で学んだプログラミングの基礎知識を用語を含め理解していること
小テスト
レポート
発表
成果物

与えられたプログラミングに関する課題に対して正しく動作するプログラ
ムを提出していること

その他
14. アクティブラーニング（A:行っている B:やや行っている C:行っていない）
授業時間全体に占めるアクティブラーニングの時間的な割合
1 授業で得られた知識や技能を活用し、出題された問題を解いたり、課 A題に取り組むなど能動的学習を行う
2 グループワークで課題に取り組み、学生同士が自由に発言することで C何らかの課題に取り組むなど能動的学習を行う
3 能動的学習の成果を発表し、そのフィードバックを得て自ら主体的に C振り返り、学習効果を高める
4 学生自身が主体となって、授業における学習の方向性を定める

C50%

15. 備考
本授業は、「1202 Linux基礎」において、Linux環境を構築している事、Linuxの初歩的な使用法を学んでいる事、およびviの基本操作を学んでいる事を前提とする

16. 授業計画（注）授業計画は、あくまでも予定であり、実施時に、適時、追加・変更・修正等が生じる場合があります。

第１回 プログラム基礎(講義 45分、演習45分)

本講義をはじめるにあたり、オリエンテーションを行う。また、適宜演習をしながら、Ｃ言語によるプログラミングの準備を行う。
１．オリエンテーション(ア)講義の流れ(イ)学習目標(ウ)評価の方法(エ)評価基準
２．プログラミングの流れ
３．Linuxコマンド基礎練習
４．Vi基礎練習
５．C言語プログラムの構成
６．プログラムの実行
７．printfの使い方
８．目標達成度確認のための演習問題
第２回 データ構造①(講義 45分、演習45分)

C言語プログラミングにおいて重要な変数の概念について、演習を行いながら数値演算を例に説明する。
１．
２．
(ア)
(イ)
３．
４．
５．
６．
７．
８．

変数とは何か
変数の操作
値の設定
値の参照
変数の定義
変数の型
算術・代入演算子
標準出力・標準入力
目標達成度確認のための演習問題
ミニレポート第３回 処理構造①（選択）(講義 45分、演習45分)演習を行いながら条件に応じて処理を選択するif文について説明する。それに伴い、条件の概念や条件を記述するための演算子について説明する。
１．応用復習問題
２．明示的型変換
３．if文とif～else文
４．関係演算子
５．論理式と論理演算子
６．switch～case文７．break
８．入れ子構造９．目標達成度確認のための演習問題

第４回 データ構造①、処理構造① 演習(演習90分)変数の取り扱いと条件に応じて処理を選択する処理を、自ら考えながらプログラミングできるよう、演習を繰り返す。
１． データ構造（変数）演習
２． 選択処理演習
３． ミニレポート
第５回 処理構造②（反復）(講義 45分、演習45分)

処理を繰り返す反復の構造を学ぶために、演習を行いながらfor文やその他の反復法について説明する。また、読みやすいプログラムを書くための作法についても説明する。
１．while文とdo～while文２．永久ループ
３．for文
４．while文とfor文の比較
５．インクリメントとデクリメント
６．複合代入演算子
７．プログラミングの作法(ア)コメント(イ)インデント(ウ)桁位置合わせ(エ)空白
８．目標達成度確認のための演習問題

第６回 処理構造②（反復） 演習(演習90分)処理を繰り返す反復についてを、自ら考えながらプログラミングできるよう、演習を繰り返す。
１． 反復処理演習
２． ミニレポート

第７回 データ構造②（配列）(講義 45分、演習45分)

複数の値を扱うために、演習を行いながら配列（1次元＆2次元）について説明する。
１．配列とは何か
２．配列の定義
３．変数と配列の違い
４．配列の入出力
５．2次元配列とは何か
６．2次元配列の入出力
７．2次元配列の入れ子構造
８．目標達成度確認のための演習問題
第８回 データ構造②（配列）演習
複数の値を扱うために、配列（1 次元＆2 次元）について説明する。
１． 配列演習
２． ミニレポート(演習90分)第9回 ポインタ(講義 45分、演習45分)演習を行いながらポインタとアドレスについて説明する。
１．ポインタとは何か
２．
メモリ空間とアドレス
３．
変数の復習
４．
変数のアドレスの受け渡し
５．
変数とポインタの違い
６．
配列とポインタ
７．
目標達成度確認のための演習問題

第１０回 ポインタ 演習(演習90分)ポインタの基礎について、自ら考えながらプログラミングできるよう、演習を繰り返す。
１． ポインタ演習
２． ミニレポート

第１１回 関数（関数の定義、引数）(講義 45分、演習45分)

プログラムの部品化のため、演習を行いながら関数の定義方法や呼び出し方について説明する。
１．これまでのプログラミングの振り返り(ア)main関数のみのプログラム(イ)用意されている関数（例：printf関数）
２．引数と戻り値
３．関数の自作方法(ウ)関数のプロトタイプ宣言(エ)関数の定義(オ)関数の呼び出し(カ)関数の型
４．スコープルール(キ)グローバル変数(ク)ローカル変数
５．標準ライブラリ関数
６．目標達成度確認のための演習問題

第１２回 関数演習(演習90分)関数について、自ら考えながらプログラミングできるよう、演習を繰り返す。標準ライブラリ
関数（続き）。
１．標準ライブラリ関数
２．関数演習３．ミニレポート第13回 文字列処理(講義 45分、演習45分)

数値以外の文字を自在に扱うため、演習を行いながら文字列について説明する。
１．文字列を扱うための配列とポインタの復習
２．文字列とは何か
３．文字と文字列の違い
４．文字と文字列の型
５．文字と文字列の参照
６．文字列を文字の集合と考える場合
７．文字と文字列の設定まとめ
８．文字と文字列の参照まとめ
９．目標達成度確認のための演習問題

第１４回 文字列処理 演習(演習90分)文字列について、自ら考えながらプログラミングできるよう、演習を繰り返す。
１． 文字列処理演習
３． ミニレポート

第１5回 まとめと総合演習
これまでの授業で学んだ事のまとめとして、総合演習を行う。
１．総合演習第１６回 理解の確認と評価
授業に対する理解の確認と評価のために、筆記試験を行う。
１．試験(演習90分)