プログラミング基礎A (2024年度)


講義の進め方

講義の目的

数学に計算機が使われたり(四色問題等)、計算機のための新しい 数学が生まれたり、いわゆる計算機科学(computer science)と(応用)数学 とは密接に関連している。

本講義では、直接的には、プログラミングの技術を学び、 またそれを通じて計算機の仕組みを学ぶ。 しかしながら、プログラミングの技術そのものの習得が目的では無く (大学は専門学校では無い!)、 プログラミングを行うことによって「自分の頭脳の延長」として 計算機を自在に使いこなせるようになることを目的とする。 パソコン上でOfficeなどの出来合いのソフトを使うことは、紙と鉛筆の 延長にはなるが(またそれも大変便利であることは否定しないが)、 頭脳の延長とは言えない。 プログラミングを習得することにより、計算機の「本当の」便利さを 実感し、プログラミングの楽しさを実感してもらえれば幸いである。

(一方、将来数学者になる学生は多くは無く、一般企業に就職する学生が 大半であろう。就職時、あるいは就職後にプログラミング技術が 役に立つことは間違いなく、そのような実際的メリットを否定するものでも無い。 )

計算機環境

大学全体でBYOD(Bring your own device)化を推進していて、 端末室は一部を除いて廃止されることになっています。よって、 自前のノートPCを持参してもらって 講義を進めることにします。 プログラミング環境の整え方は、 プログラミング環境 のページを見て下さい。 分からないことがあれば、 情報Q&A を利用することもできます。

提出物

提出物には、 があります。小テストは、形式を整える必要はありません。 作ったプログラム (あるいは実行結果) を単に提出してください。

レポートは、 「レポートの書き方」 に従って形式を整えて下さい。

プログラミング言語

基本的に、FORTRANに始まる書いたプログラムが上から下に順に実行される 「手続き型言語」は本質的にはどれも似たようなものであり、 一つマスターすれば他はすぐにマスターできると思っている。 がしかしあえて選ぶとして。

最初に学ぶプログラミング言語としては近年はJavaが使用される事が多い。 プログラミング言語としても、現代的で仕様が美しくコンパクト、 複数のプラットフォームで同一のプログラムが動作し、GUIやマルチスレッド 等も使いやすい、等のメリットがある。 初学者にとってのメリットは、配列の添字溢れの警告をはじめとした「優しさ」 が大きいだろうか。 また、rubyやpythonなどのスクリプト言語が同じような理由で採用されることも多い。

一方、C言語はUNIX OSを記述するための言語として生まれ、 CPUの動作と密着した記述が出来る「低レベル」言語である。 メモリ上のアドレスを格納する「ポインタ」を生でユーザに見せている ところが特徴として挙げられる。 誤った記述をするととんでもない動作をすることも多い、「優しくない」言語で ある。 しかしながら、変に隠蔽されていない分、計算機の動作が実感しやすいという 大きなメリットがある。

大きなアプリケーションを大勢で開発するなら現代的な言語が必須であるが、 研究のためのプログラムはCのような小回りの効く言語の方が書きやすいことも多い。

実際に世の中に出回っているアプリケーションの大半は、C++(Cにオブジェクト指向 の機能を加えたもの。Cを含んでいる)で書かれている。

本講義では、とりあえずC言語を学んでいくことにする。 後半は、言語そのものの学習よりは、言語を用いてプログラムを組み立てる ためのアルゴリズムの学習を中心にする予定。


4月16日の講義

4月23日の講義

4月30日の講義

5月7日の講義

5月14日の講義


C言語入門

レポートの書き方

TeXの資料


プログラミング基礎A (2024年度) /