低学年向けプログラミング教育用テキストの作成info.numazu-ct.ac.jp/comm01/include/netcommons... ·...

4
低学年向けプログラミング教育用テキストの作成 牛田 啓太 群馬工業高等専門学校 電子情報工学科 概要 群馬工業高等専門学校(群馬高専)電子情報工学科では1 年次より専門科目「情報処理」C 言語プログラミング教育実施している。従来,本科目教材,市販テキストにプリントわせたものであったが2006 年度よりオリジナルテキストを作成,改良ねて現在っている本稿ではこのテキスト作成について報告するはじめに 1. 群馬工業高等専門学校(群馬高専)電子情報工 学科では1 年次より専門科目「情報処理」(通年, 2 単位)においてプログラミング教育ってい (低学年専門科目カリキュラムは1)。 本科目プログラミングへの導入,手続きの 記述,C 言語プログラミングの基礎といった内容 構成されている(授業計画1;通年 30 のうち中間試験 2 回分いてしている)。C 言語プログラミングはほぼプログラミングC[1] 1 相当する内容でありそれ 探索・整列基本アルゴリズムがわったもの となっている高専 1 年次学生にプログラミング教育実施るにあたりテキストの選択困難であった。大 学課程向けのテキストは,例題演習問題前提となる知識,一方,一般向書籍 には授業内容1 でカバーできる編集方針のも のが見当たらないプリント別途配付してうにしても,散逸しやすくそのくなりが ちで,学生にとって使勝手いものではなか ったそこで2006(平成 18)年度より,本科目用 のオリジナルテキストを作成,従来「市販テキ ストプリント形式であった教材ていくことにした2008(平成 20)年度までは 市販テキストを併用2009(平成 21)年度回数 内容 1–3 コンピュータ・情報処理・プログラミング 4–7 手続きの記述8–9 C 言語プログラミング入門 10–11 選択処理(if 文) 12–14 処理(while ループfor ループ15–16 整数型浮動小数点型 17–19 配列変数 20–22 簡単なアルゴリズム 23–27 関数 28 まとめ 1:群馬高専電子情報工学科 1 年次専門科目 「情報処理」授業計画 1:群馬高専電子情報工学科専門科目 13 年,座学のみ情報処理 計算機概論 1 2 3 マイコン 論理回路 プログラム言語 数値解析 電気回路 電子回路 電子工学 応用物理 I 工学基礎系 電気・電子系 情報・通信系

Upload: others

Post on 12-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 低学年向けプログラミング教育用テキストの作成info.numazu-ct.ac.jp/comm01/include/netcommons... · 第1 章 コンピュータと情報処理 .7 第2 章 手続きの記述と流れ図

低学年向けプログラミング教育用テキストの作成

牛田 啓太群馬工業高等専門学校 電子情報工学科

概要 群馬工業高等専門学校(群馬高専)電子情報工学科では,1年次より専門科目「情報処理」で C言語プログラミング教育を実施している。従来,本科目の教材は,市販テキストにプリント類を組み

合わせたものであったが,2006年度よりオリジナルテキストを作成,改良を重ねて現在に至っている。本稿では,このテキスト作成について報告する。

はじめに1.

群馬工業高等専門学校(群馬高専)電子情報工

学科では,1年次より専門科目「情報処理」(通年,2単位)においてプログラミング教育を行っている(低学年の専門科目カリキュラムは図 1)。本科目は,プログラミングへの導入,手続きの

記述,C言語プログラミングの基礎といった内容で構成されている(授業計画は表 1;通年 30回のうち中間試験 2回分を除いて示している)。C言語プログラミングは,ほぼ『プログラミング言

語 C』[1]の第 1章に相当する内容であり,それに探索・整列の基本アルゴリズムが加わったもの

となっている。

高専 1年次学生にプログラミング教育を実施するにあたり,テキストの選択は困難であった。大

学課程向けのテキストは,例題や演習問題に対し

て前提となる知識が多く,一方で,一般向け書籍

には授業内容を 1冊でカバーできる編集方針のものが見当たらない。プリント類を別途配付して補

うにしても,散逸しやすく,その量も多くなりが

ちで,学生にとって使い勝手の良いものではなか

った。

そこで,2006(平成 18)年度より,本科目用のオリジナルテキストを作成し,従来「市販テキ

スト+プリント」の形式であった教材を置き換え

ていくことにした。2008(平成 20)年度までは市販テキストを併用し,2009(平成 21)年度よ

回数 内容

1–3 コンピュータ・情報処理・プログラミング

4–7 手続きの記述と流れ図

8–9 C言語プログラミング入門10–11 選択処理(if文)12–14 繰り返し処理(whileループ,forループ)15–16 整数型と浮動小数点型

17–19 配列変数

20–22 簡単なアルゴリズム

23–27 関数

28 まとめ

表 1:群馬高専電子情報工学科 1年次専門科目 「情報処理」授業計画

図 1:群馬高専電子情報工学科専門科目 (1~3年,座学のみ)

情報処理

計算機概論

1年 2年 3年

マイコン

論理回路

プログラム言語

数値解析

電気回路

電子回路

電子工学

応用物理 I工学基礎系

電気・電子系

情報・通信系

Page 2: 低学年向けプログラミング教育用テキストの作成info.numazu-ct.ac.jp/comm01/include/netcommons... · 第1 章 コンピュータと情報処理 .7 第2 章 手続きの記述と流れ図

りオリジナルテキストに一本化した。以降,この

テキストの作成について報告する。

テキストの執筆・作成方針2.

テキストの執筆・作成においては,次のような

事項に配慮した。

中学校卒業程度の知識を前提とする• 他科目との連携を考慮する• 親しみやすい・読みやすい文章,質の高い組• 版,使いやすさへの配慮を心がける

以下,それぞれについて述べる。

中学校卒業程度の知識を前提とする2.1. テキストの「対象読者」は中学校を卒業したば

かりの高専 1年生である。したがって,前提とする知識等として,「中学校卒業程度」を強く意識

した。

次項で述べる他科目の知識を活かす問題を除い

ては,中学校卒業程度の知識から逸脱しないよう

にした。たとえば,例題となることが多い分散・

標準偏差の計算,基数変換などは除いている。

また,コンピュータに関する知識については,

パソコンの基本的操作ができる,一般的かつ著名

なソフトウェアには触れたことがある,プログラ

ミングはまったくの未経験,を想定している。

他科目との連携を考慮する2.2. 群馬高専の他科目のカリキュラムを意識し,相

乗効果が生み出せるよう配慮した。

電子情報工学科では,1年次前期の専門科目「計算機概論」で,情報の表現,計算機のハードウェ

ア・アーキテクチャを概略的に総覧する。この科

目と関連深い内容は「情報処理」でも積極的に扱

い,同内容を複数回教えることによる知識の定着

を狙っている。

また,一般科目,特に数学に対し,その進度を

考慮して,「情報処理」の内容で扱える場合に,

その数学的知識を使用する例題・課題を用意した。

たとえば,2次方程式の解の判別,絶対値を利用したマンハッタン距離の計算,組み合わせの数の

計算,度数法と弧度法の変換を,数学の進度に合

わせるように取り上げている。

親しみやすく読みやすい文章,質の高い組2.3. 版,使いやすさへの配慮を心がける

自学自習も可能なように,また,復習時には「読

んでわかる・思い出せる」ように配慮した。

文体は敬体(です・ます調)を基本とし,平易

な表現・用字を旨とした。

本文中の例題は,前項までで述べた配慮に加え,

堅苦しくないものを設定している。

レイアウト・構成は見開き 2ページ完結を基本とし,節の冒頭で概要を箇条書きであげている。

誌面に圧迫感が出ないよう,また,書き込みスペ

ースとしても使用できるよう,本文の左マージン

は広く取った。見出しは多めに立て,授業時およ

び復習時に「話題の区切り」をつけられるように

した。

編集に際しては,重要な事項,間違えやすい事

項は当該箇所への参照にとどまらず,再掲するな

どの配慮をしている。用語は,JISの規格票 [2,3]中の表現も含め,複数の言い方が通用しているも

のはそれらも掲げるようにした。特に重要なもの

は原綴りも示した。

制作にあたっては,日本語組版にも配慮し,プ

レゼンテーションとして,学生がレポートなどの

文書作成の際に参考にしうる品質を目指した。

作成したテキストの概要3.

テキストは,

2006年度から 2008年度まで(市販の書籍を• 併用)は軽印刷で 4分冊(1分冊約 50ページ)2009年度(本テキストのみ)はオンデマン• ド印刷で 1分冊(216ページ)

として作成した(2008年度版・2009年度版の外観は図 2)。判型はいずれも B5判である。2008年度版より,過年度に本テキストで授業を受けた

学生の厚意で,表紙等にイメージイラストが追加

されている。

2009年度版で 1分冊化するにあたって,DTPソフトウェアを使用して増補・新装した(2009

Page 3: 低学年向けプログラミング教育用テキストの作成info.numazu-ct.ac.jp/comm01/include/netcommons... · 第1 章 コンピュータと情報処理 .7 第2 章 手続きの記述と流れ図

図 2:「情報処理」テキスト (左:2008年度版,右:2009年度版)

年度版の目次は図 3)。図 4は,2009年度版の誌面の一部である。

作成したテキストの運用については,講義時は,

テキストの見開き 2ページを 20~30分程度で説明している。なお,本科目の授業は,表 1の授業予定第 8回分より,プログラミング演習を交えて実施している。

学生の反応4.

本テキストについて,学生から直接的な評価ア

ンケートなどは実施していないが,次のような反

応・反響があった。

学年末に実施する授業評価アンケートでは,• 本科目の評価は全科目の評価の平均を大きく

上回っている。

2年次の学生が,2年次の科目「情報処理」で,•

指定テキスト(『プログラミング言語 C』)のほかに本テキストを携帯している姿が見られ

る。3年次でも,少数だが本テキストを携帯している学生が見られる。

群馬高専電算部では,新入部員にプログラミ• ングを指導する際に,テキストとして使用し

ているとのことである。

他学科の,プログラミングに興味を持った学• 生が,電子情報工学科生に紹介されて本テキ

ストを譲ってほしいと求めに来ることがあ

る。

こういった反応から,作成したテキストは学生

に好意的に受け止められていると考えられる。

むすび5.

本稿では,低学年(1年次)のプログラミング教育用のテキスト作成について報告した。前提と

する知識,学科内および全校的なカリキュラム内

での位置づけ,活用のしやすさやプレゼンテーシ

ョンとしての質などを配慮して,2006年度から作成し,改良を重ねてきた。

学生の反応・反響から,本テキストは学生に好

意的に受け止められているとみられる。今後も,

より高い効果が得られるよう,改善を続けていく。

謝辞

本稿で報告したテキストの作成に際しては,群

馬工業高等専門学校電子情報工学科スタッフおよ

び学生の皆さまのご協力がありました。感謝いた

します。

参考文献

B. W.カーニハン,D. M.リッチー,“プログラミ[1] ング言語 C 第 2版”,石田晴久(訳)(共立出版,東京,1989)“プログラム言語 C”,JIS X 3010:1993(日本規格[2] 協会,1993)“プログラム言語 C”,JIS X 3010:2003(日本規格[3] 協会,2003)

図 3:「情報処理」テキスト(2009年度版)目次

第 1章 コンピュータと情報処理 ..................... 7第 2章 手続きの記述と流れ図 ....................... 27第 3章 C言語プログラム入門 ....................... 55第 4章 流れの制御 ............................................ 73第 5章 整数型と浮動小数点型 ....................... 99第 6章 配列変数 ..............................................105第 7章 C言語によるアルゴリズム .............131第 8章 関数 ......................................................147付録 ......................................................................183演習問題 ..............................................................206資料 ......................................................................211さくいん ..............................................................213

Page 4: 低学年向けプログラミング教育用テキストの作成info.numazu-ct.ac.jp/comm01/include/netcommons... · 第1 章 コンピュータと情報処理 .7 第2 章 手続きの記述と流れ図

9091

情報処理[電子情報工学科・

1年]

forループ

(1)

444

for

• ループは「for (.

..; .

..; .

..) {

… }」という形式で,「第

1式で初期化し,第

2式

が満たされる間,第

3式を評価しながら繰り返す」

for

• ループは,whileループに近く,whileループに書き換えられる

3つめの繰り返し構造はforループです。複雑な書き方をしますが,実のところ,

これがもっとも頻繁に利用する繰り返しです。

forル

ープ

4444

4 forループは,

3つの式を記述し,繰り返しさせるもので,次のような書式です。

for (式

1; 式

2; 式

3) {

繰り返す処理

}

forループの動作は,次のようになっています。

「式

1」を評価する

1. 「式

2」を評価し,成り立っていなければ繰り返しから脱出

2. 繰り返す処理を実行

3. 「式

3」を評価する

4. 2.へ戻る

5. ですから,forループは,「式

1で初期化し,式

2が成り

立っている間,式

3を評価しながら繰り返す」と言い表

せ,流れ図で表せば,右図のようになります。この形は,

とりもなおさず前判定型の繰り返しです。ですから, f

or

ループは,whileループを使って,一般に次のように書

きなおせます。

式1;

while (式

2) {

繰り返す処理

式3;

}

結局whileループを使って表せるわけですが,forループは繰り返しに関する式を

まとめて書くことができて,特に回数の定まった繰り返しをすっきりと書くことがで

きるので,重宝されます。

繰り返す処理

式3

式1

No

式2 Ye

s

指定回数の繰り返し

4444

4 forループでもっとも頻繁に使われる形式は,「指定回数の繰り返し」です。これ

は,カウンタとなる変数を適当に定め,それをカウントアップしていけばよいのです。

では,例として,「みりん」と

10回出力させて,最後に「ごくろうさん」と出力さ

せるプログラムを書いてみます。

「みりん」と

10回出力させて「ごくろうさん」

プログラム

15:

#include <stdio.h>

11

21

main() {

31

int i;

41

51

61

for (i = 1; i <= 10; i++) {

printf("みりん¥n");

71

}

81

printf("ごくろうさん¥n");

91

}11

1

iははじめに

1に初期化され

*1,1

0以下の間,1ずつ増え

ながら「みりん」を出力しています。iは

1から始まって

2,3,

4,5,

6,7,

8,9,

10と増えていき,

11 になると

「i <= 10」が満たされなくなって繰り返しが終了します。ですから,この間の繰り

返しは

10回です。

whileループでも同じ処理は書けますが,「

(i = 1; i <= 10; i++)」と書い

てあるところから,こちらのほうが「

10回繰り返す」ことが見やすくなっています。

入力した回数だけ「『みりん』を出力」を繰り返すように,

課題

61

4.8.

2のプログラムを書き

換えなさい。ただし,

0以下の数を入力したときは

1回も「みりん」と出力させずに

終了するものとする。

1から,入力した正の整数までの和を求めて出力させるプログラムを書きなさい。

課題

62

*1 

FORT

RANからの名残で,「適当な整数」を表す変数にi,

j,k,……,を使う習慣があります。

「みりん」と出力

i++

「ごくろうさん」

と出力

i = 1

開始

終了

No

i <= 10

Yes

図4:「情報処理」テキスト(

2009年度版)の誌面