プログラミング基礎 -PCで空想を現実にする技術の基礎-

単位数 ナンバリングコード
4 DIF304
教員名 齋藤 健司
専門 人工知能、教育システム、仮想環境
出身校等 北海道大学 工学研究科(システム情報工学専攻)  博士課程修了
現職 北海道情報大学 情報メディア学部  准教授
授業形態
夏期面接授業・後期IPメディア授業・前期インターネットメディア授業・後期インターネットメディア授業
授業範囲
教科書の1から7章と11章、12章の388ページから412ページまで
試験範囲
授業範囲すべて

【IM授業:試験時参照許可物】
一切自由 ※ただしWebページ(通信教育部POLITEを除く)と生成系AIの参照は不可とする。
【面接授業・IPメディア授業:試験時持ち込み許可物】
一切不可
科目の概要
本講義は、プログラミングの初心者を対象としてC言語を題材とし、プログラミングの基礎を学習する講義である。プログラムの作成、実行方法から始まり、変数の仕組みや扱い方、制御構文、データを並び替えるためのソートアルゴリズム、構造体などの内容を扱う。C言語は1970年代初頭に開発されてから現在にいたるまで、広い領域で多くのプログラマに使用されている代表的なプログラミング言語である。また、C言語を発展させる形で開発されたC++やObjective-Cなどの言語も広く使われており、C言語の文法は人気のあるJavaやWebブラウザで動作するJavaScriptなどの文法に強い影響を与えている。つまりC言語のエッセンスは現代のプログラミング言語の多くに共通して含まれており学習する価値は高いといえる。
授業における学修の到達目標
本講義では、プログラミングの基礎中の基礎となる、変数、式と演算子、条件分岐、繰り返し、配列などをしっかり学習し、その中で合計や最大値を求めるプログラムを学び、ソートアルゴリズムを理解できるようにする。さらに構造体、共用体、ファイルの入出力などの項目についても勉強する。これらの学習を通してプログラミングの基本的な概念を理解し、簡単なプログラムを自分の力で作成できるようになることを目標とする。加えて、今後のプログラムを題材とする科目を学習する上での基礎知識を身に着ける。
講義の方針・計画
本講義では基礎的な内容を確認すると同時に、講義時間内に実習を行い自分の力で問題を解いてもらう。その後、正解を確認し理解度をチェックしながら学習を進めていく。プログラミングの初歩を学ぶためには、実際に手を動かしプログラムを作成することが非常に有用である。必ず演習もやってみてほしい。

* 第1回:C言語の概要とはじめてのプログラム
+ C言語について。コンパイル、実行。逐次処理。インデント
* 第2回:画面への出力と文字・数字
+ printf関数による表示。データ型:文字、文字列、整数、実数(浮動小数点)
* 第3回:変数の基本と利用
+ 変数の宣言、初期化、代入。変数の表示。データ型の詳細
* 第4回:キーボードからの入力と復習
+ scanf関数。標準入力、標準出力。キーボードからの入力の仕組み
* 第5回:式と演算子
+ 式の構成要素。四則演算。変数を式を用いた計算。ビット演算
* 第6回:式と演算子の詳細
+ C言語の演算子と、その優先順位。左結合、右結合。型変換。計算誤差
* 第7回:場合に応じた処理の基本
+ 真偽値。条件と条件演算子。if文。if文のフローチャート。ブロック
* 第8回:switch文と複雑な条件式
+ switch文。論理演算。複雑な条件式。条件演算子(三項演算子)
* 第9回:繰り返し処理の基本
+ for文。scanf関数と繰り返しの応用。while文。条件式の省略形
* 第10回:do while文と高度な繰り返し
+ do while文。繰り返しのネスト。break、continue、goto文
* 第11回:配列の基本
+ 配列の宣言と使用。要素数、添字。配列の初期化。マクロ。最大、最小を求める
* 第12回:配列の応用
+ ソートアルゴリズム。多次元配列。charの配列による文字列処理
* 第13回:構造体の利用
+ 構造体の型宣言、変数宣言。メンバの読み書き。typedefの利用。構造体の初期化
* 第14回:共用体と列挙
+ 共用体の型宣言、変数宣言。列挙の型宣言、変数宣言。ポリモーフィズムの例
* 第15回:ファイルの入出力
+ 標準入出力に対する様々な関数。ファイルのオープン・クローズ。fprintf、fscanf
準備学習
全ての授業形態において、以下の準備学習を行う。
講義の時間にも演習を行うが、予習・復習においても自宅のパソコンなどでC言語の開発環境を用意し、教科書の章末問題(練習)を解いてみるとよい。
IPメディア授業とインターネットメディア授業ではMicrosoft社のVisual Studioをコマンドプロンプトから使用する形態で説明を行うが、本講義で扱う内容は非常に基本的な内容であるためほとんどのC言語の開発環境で問題なく学習ができる。
自宅のパソコンに開発環境を用意する方法についての質問には答えられないので、インターネットなどを活用し各自調べること。IPメディア授業を受講する各センターでの実習環境、スクーリングにおける実習環境は会場の都合に合わせて用意される。
また、インターネットメディア授業では、通信教育部ポータルサイトの無限大キャンパスにて課題を提出してもらう必要がある。こちらはPETA2というWebページ内でC言語のプログラムの作成と実行が可能な環境を利用しており、質問なども受け付けているので活用して学習を進めてほしい。
課題(試験やレポート等)に対するフィードバック方法
IM授業は、練習問題を解答すると、解答に応じたコメントを画面に表示する。
成績評価の方法およびその基準
科目試験による評価100%
教科書
書 名:やさしいC 第5版
著者名:高橋麻奈
発行所:ソフトバンク クリエイティブ株式会社
ISBN:9784797392586
参考書
なし
その他
本講義では、プログラミングの基礎を学習することに重点を置いているため、教科書の8、9、10章と12章の後半の内容は省略している。
8章の「関数」の概念は、生産的で再利用可能なプログラムには必須の物であり、C言語だけでなくあらゆる言語で役に立つ。
9、10章で紹介されるポインタはC言語の特徴であり、ハードウェアに密着したプログラムに適している。
12章の後半はバイナリファイルやコマンドライン引数などが紹介されており必要に応じて学習するとよい。

学習内容の理解に役立つ資料を以下のページにて公開する。
https://s314.do-johodai.ac.jp/pb/
試験期間
シラバス検索画面トップページ(https://syllabus-tsushin.do-johodai.ac.jp/)下部の「2025学年暦」を参照
学習プリント
なし
教職科目
情報5の1(必修)、情報6の4
関連受講科目
なし
担当教員の実務経験
実務経験なし
レポート課題
レポート課題はありません