プログラミングA I

教科書

沼田哲史,C言語本格トレーニング,共立出版,2020年.出版社のページ著者によるサポートページ

講義資料

講義の目的と主旨

本講義の一般的な目的は,将来の情報技術を中核的に扱う技術者・研究者の育成を見据え,計算機システムの根源的な構造・機構を学ぶことです.そのために,システム記述言語であるC言語を題材に,命令型および手続き型のプログラミング一般に関する基本的な考え方やプログラミングの方法論の基礎を展開することを主旨としています(ここでいう「基礎」とは「初歩的な内容」という意味ではなく「根源的な内容」という意味です).

C言語は歴史的に十分に枯れている言語であり,教科書も超がつく初心者向けから上級者向けまで多数出版されており,その充実度は他言語に対して群を抜いています.少し探すだけで,自分に合ったC言語の本を複数冊簡単に見つけることができます.しかも,C言語の環境はあらゆるOSで無料で手に入ります.つまり,やる気さえあれば,C言語は十分に独習可能です.また,ChatGPTなどの検索ツールの発展により,ポピュラーな言語で初歩的なプログラムを書くことが半自動的にできる現代において,簡単なプログラムを手作業で書かせることでプログラミングを学ばせる教程自体にも,その教育上の有効性や実用上の必要性を疑問視する声が上がっています.さらに,プログラミング言語開発技術が発達し,多様な言語が開発され,様々な分野で活用されている現代においては,敢えてC言語からプログラミングに入門する必然もありません.現代の大学でC言語を教えるからには,C言語を教える確固たる理由が必要です.

このような現状を踏まえると,職業訓練ではなく学問をする教育機関である大学においては,もはやC言語プログラミングは,必ずしも手取り足取り教えることではありません.大学の専門科目としては,C言語を題材にするとしても,C言語自体への習熟よりも,学問としてのプログラミングを扱うべきであり,学生には職人的な鍛錬よりも科学者としての視点の習得を課すべきと思われます.

本講義は,以上の視点から,受講者が「プログラミングという作業に習熟した」というよりも「プログラミングとは何かがわかるようになった」という実感を得られることを狙って構成しています.本科目では,C言語を,あくまで計算機システムの根源的な構造・機構に直接触れるための道具のひとつと位置付けています.そのため,C言語そのものの詳細で反復的な解説は,講義内容からは敢えて省略しています.その代わりに,C言語そのものについて充実した解説のある入門書を教科書として指定し,リファレンスマニュアルおよび練習問題集として使用します.

本講義で扱う「プログラミングの基礎」に関する話題には以下が含まれます.

本講義の特色は,プログラミングの考え方・方法論・発展の歴史について,多くの解説を含み,「なぜそう書くのか」「なぜそう書けるのか」「なぜそう考えるのか」などの,プログラミングの「なぜ」に答えるところにあります.プログラミングの根底に流れる原則を示し,それらの「なぜ」への今日での答えを提示することこそが,大学におけるプログラミング教育のあるべき姿であり,プログラミングの専門家としての責務であると考えます.本講義では,受講生は,教科書の予習により「C言語での書き方」を学び,講義により「プログラミングの基礎的な考え方」を学んだうえで,練習問題への取り組みを通じた演習・復習によって「プログラミングの実地体験」を行います.これら3つの異なる軸に3つの異なる活動によって螺旋的にアプローチすることで,プログラミングの科学的理解と実践的な体験の両方を並行して得ることを,本講義は目指しています.

本講義は受講生が予復習を自主的にしっかりやることを前提に設計されています.しかしながら,日本の大学では,この前提は満たされないことが多い印象です.そのため,本講義は多くの学生にとって難解に感じると思われます.この問題への対策として,次の週に説明する内容に関する練習問題の最小限の一部を課題として出すことで,強制的に予習を促すことにしました.一方で,復習として義務付けるレポートの分量は受講者の自主性に任せます.また,全ての練習問題には解答例が付されていますから,予復習の練習問題を完全に自分の頭で考えなければならないわけでもありません.これらの設定により,予習を強制しながらも,授業時間外の学修にかける時間を受講者の裁量で決められるよう,工夫しています.

諸注意

講義資料は講義受講者の参考のために公開しているものであり,その内容は講義と完全に一致しているとは限りません.掲載している資料は随時改訂いたします.講義の直接の資料は,学務情報システムなどを通じて受講者に直接配布します.

講義や資料に関する質問・コメントを歓迎します.上野までメールなどでお送りいただければ幸いです.

資料の著作権は上野が有しています.再配布はご遠慮ください.