小学生のC言語独習に手助けとなるプログラミング読本

まーくん
お父さん、C言語の本を何か買ってよ。
お父さん
そうだね、本屋で一緒に選ぼう。

息子まーくん(マインクラフト歴約2年、Scratch歴約1年、C言語歴0ヶ月)は、4年生の頭からC言語を独習するやる気を出しています。

プログラミング学習の助けになる本を一緒に選びました。とりあえず、文字があまり多くなく、イラスト入りで、お父さんでもわかるものを。

入手したのは次の三冊です。


Cの絵本/アンク

スラスラわかるC言語/岡嶋裕史

プログラミングの世界へようこそ/尾川一行/中川聡

まーくん
Cの絵本は一番読みやすいね。これならゲーム作る時の変数とか乱数とか使えそう。
まーくん
スラスラわかるC言語は、スラスラわからない。文字も小さいし。
お父さん
お父さんはこれが一番分かりやすいけどな。自虐的な独り語りの調子で書かれていて、ストーリーがおもしろい。つまづきそうな文法のところも詳しいよ。
まーくん
プログラミングの世界へようこそは、難しいのでとりあえず後回し。

変数はどうやって使うんだろう?

文字表示は?printf。改行は?あっ、\nって書けばいいんだ。

画像を読みこんで動かしたいんだけど、そんな説明ないなー。

そうっと見てみると、文字だけでやる探検ゲームを作っていますね。

ねこが現れた!
攻撃!1
防御!2
回復!3

数字を入れるとそのアクションが実行されて、敵や自分のHPが減る仕組みです。押された数字キーを変数に代入し、変数を使って条件分岐しているみたいです。

Scratchでやっているのと変わりませんね。

  • このエントリーをはてなブックマークに追加
0

小学生のPCスマホやネット利用に正解ないけどウチの方法

デジタルネイティブと呼ばれる、生まれた時からネット、スマホ、SNSや写真動画共有サイトなどが身の回りにある今の子供たち。

そんな子供たちにいつからネットを使わせる?どうやってネットを正しく理解させる?という正解のない問いかけをまとめた記事を見つけました。

IT業界のパパ・ママは、自分の子どもにネットをどう使わせてる? (連載:10代のネット利用を追う)
https://internet.watch.impress.co.jp/docs/column/teens/1110573.html

IT業界のパパ・ママも、子どものネット利用に悩んでる

子どもにデジタル機器を持たせた年齢と機器は?

お悩みは一緒です!よくわかります!ウチも同じ、と共感できます。ぜひご一読を。

PCはファミリーアカウントで時間や閲覧制限

ウチの場合、両親ともネットやIT業界と無関係の仕事をしています。

お父さんはパソコンの使い方には少し詳しく家に何台もPCを持っているけど、FacebookやInstagramなどは及び腰で始められないし、スマホは機種変せず5,6年は使ってしまう方。

お母さんは、FacebookやInstagramを使っているけど、デジタル機器に強くなく、楽しめればいいやというライトユーザ。

子供にPCとネットを使わせ始めたのは、息子まーくんが小学一年生、娘しーちゃんが小学三年生の時からです。
Eテレの子供向け番組内で、タレント同士がテレビゲームで対戦するものがあって、その影響で本人たちがPCを使いたがりました。

もともとNintendo DSなどのゲーム機は親が興味ない性質なのでウチにはなく、子供に今も与えていません。

お父さん
子ども用にファミリーアカウント作ってあげるから、自分のパスワードでログインしてね
お父さん
ゲーム時間は15分以内でどう?親のアカウントで時間を設定するから、この時間の中で遊んで
まーくん
はーい。

ゲームやネットの時間は当初から一日15分間で、今でも守れない時もあるけど、目安になっています。
子供たちはとにかくゲームがしたいので、15分間の中ではYouTubeを見る時間はもったいなく、まずやりません。最近のまーくんのプログラミング学習は、お父さんがいる時間は自由にやらせています。大体は土日になります。

ウチには、子どもたちが生まれる前から、ごはん中はテレビを消すという決まりがあります。子どもたちは生まれた時からこの決まりの中で育ってきていますので、言葉だけでテレビを消すように仕向けることは難しくありません。

スマホはアプリで時間制限?制限するより理解させること

スマホを使い始めたのは、しーちゃんが小学5年生の後半から。大人のおさがりで、SimカードがないのでWi-Fiに繋げて使います。

そのおかげで外に持っていくことはなく、出かけるときはスマホから離れられますが、さすがに家ではスマホをいじることが増えました。

お父さん
ドコモのあんしんモードを入れて、これで最初から設定変更やアプリ起動、YouTube閲覧を制限しておこう。
お父さん
ネット閲覧の履歴はぜんぶ残るから見るページには気を付けてね

(実際に履歴が分かるように仕組みを作っています)

しーちゃん
ふーん。なんか色々とできないようになってるのね。

YouTubeは小学校のクラスで話題になるようですが、ウチではむやみにYouTubeを見せないことで、ダラダラとPCに向かわない雰囲気にしていいます。

他には、ネットやSNSはいかにして人の時間を奪おうとしているか、を何度も丁寧に説明しています。

お父さん
どうしてネットのゲームはタダで出来るんだと思う?
しーちゃん
えー?わかんない。誰かがお金払ってるんじゃないの?

それは、広告を載せて広告主からお金をもらっているから、ユーザはタダでゲーム出来るのです。

お金をもらうために、ユーザをいかに長い時間Webサイトにくぎ付けにするかという方法を、頭のいい大人が考えているのです。
頭のいい大人が本気を出して作っているので、子供を一日中ネット漬けにすることぐらい朝飯前なのです。

お父さん
1日24時間は、美味しいものを食べたり、友達と遊んだり、本を読んだり、絵を書いたり、受験をするなら勉強をしたりするためのものだね。

その時間を、スマホゲームやネットゲーム、SNSやYouTubeは意図的に奪おうとしているのです。

別に子どもにしてみれば、課金しなければお金が無くならないし、スマホは楽しいし別にいいのでは?、と思うでしょう。

ただし、君たちが知らずに多くの時間を費やした向こう側で、大人はたくさんお金を儲けているのだ、君たちは儲けていないけど向こうの人を儲けてさせているんだよ。

ネットの発展で多くのことが便利になり、ユーザのメリットが大きくなっています。

ですが、ユニークユーザ数の増加を指標とするネットサービスは、人の時間を奪って商売にしている側面があります。

世の中の仕組みを伝え、子ども自身の頭で考えられるよう、気付きを与えられると望ましいと思います。

  • このエントリーをはてなブックマークに追加
0

小学生のC言語プログラミングで学習動機付けのポイント

まーくん
お父さん、C言語って何から始めるのかなー?
お父さん
最初はなんだろうね、お父さんにもよくわからないが

息子まーくん(マインクラフト歴約2年、Scratch歴11ヶ月)は4年生になりました。親の呼び方も、パパからお父さんへ。
それに前後して、本を読んで急にC言語の学習に興味を持ちました。

C言語の学習方法について調べると、Windowsに付属のテキストエディタでも書けるとネットに載っていますが、プログラムを書く作業とコンパイルをする作業の両方が必要なので、何かの開発環境を選ばないといけません。

このページを参考にしました。

WindowsでのC言語の開発環境

初心者の小学生には、多機能なVisual Studioは敷居が高すぎると思いますので、、、

初心者が挫折しないように作ってある、初心者用ソフトをインストール。
窓の杜~学習用C言語開発環境
https://forest.watch.impress.co.jp/library/software/gakucgengo/

苦しんで覚えるC言語さんが開発したソフトです。

まーくん
よーし、プログラム実行!

結構ノリノリです。

最初から入っているプログラムは、ただプロンプトの画面を出すだけです(笑)

【初心者必見】C言語でゲームを超簡単に作れるサイト5選
https://www.sejuku.net/blog/4740

今度はこのページにのっているテトリスをやってみたいようです。

いい感じです、まずはゲームで楽しさを体験できればいいですよね。
授業のように基本のキから始めても飽きてしまうでしょう、言語を学ぶことが目的になるのではなく、ゲームを作ることが目的になれば良いのかな、と思っています。

  • このエントリーをはてなブックマークに追加
0

小学生が自分でC言語学習にやる気を出すプログラミング読本

パパ
まーくん、新しく本買ってきたよ、置いておくね
まーくん
ふーん、またScratch?

息子まーくん(マインクラフト歴約2年、Scratch歴10ヶ月)は、引き続きScratchでプログラミングを楽しんでいます。大作ゲームを作り上げたいと、一つのゲーム作りにずっと取り組んでいるみたいです。

まーくんにしてみれば、プログラム=ゲームという狭い視野で考えていますが、そこに一石を投じてみたくなりました。

パパが、「冷蔵庫も、テレビも、炊飯器もプログラムで動いてるんだよ」といっても、あまり興味は持たれないでしょう。何か視野を広げる本はないものか、と考えているときに、プログラムだけどそれにとどまらない本を見つけました。


世界一わかりやすい! プログラミングのしくみ /サイボウズ

まーくん
パパー、僕、C言語勉強してみたいんだ、どうすればいい?
パパ
えーー?自分からそんな気持ちになるなんて!?
パパ
考えは分かったよ、パパも良く判らないけど、一緒にやってみようね

まーくんに強い学習動機を与えた本の内容はこんな感じです。

プログラミングの「考え方」が身につく!

ハードウェアの基礎知識から、プログラムの考え方まで コードを書かない&イラスト中心でわかりやすい! 小学校中学年~高学年むけプログラミング入門書の決定版!
技術は発展し変わって行く。だから、プログラミングの「方法」はすぐ古くなってしまう。 未来のプログラマーを目指す子どもにとって、本来身につけるべきことは、「方法」ではなく「考え方」ではないだろうか。

第1章 プログラムってなんだろう?
第2章 プログラムで動くもの
第3章 人間を手伝うプログラム
第4章 スマホの中のこびとたち
第5章 なかったことにできる!!
第6章 インターネットのしくみ
第7章 こびと同士の会話
第8章 宇宙の声をきくこびと
第9章 みんなでつくる百科事典
第10章 こびとの指示書はこれだ!
第11章 どの言語を学べばいい?
第12章 失敗を恐れない

たぶん、まーくんの心に響いて、学ぼうという行動に移すまでモチベーションを上げさせたのは、以下の何ヶ所かの部分だと思います。

第10章の「実際のプログラムの例」の見出し部で、スクラッチとC言語のプログラムを横に並べて、同じことができると述べています。その中で

隣の「C言語」は、英語と記号がいっぱいだけど同じ内容の指示書だよ。プログラマーが仕事で書いているのは、こういう英語と記号を使ったプログラムだよ。

また、別の見出し「言語にはたくさんの種類がある」では

スクラッチとC言語の二つを例にあげたけど、プログラミング言語には他にもたくさんの種類があるよ。(中略)プログラマーは、「何がしたいか」によって言語を使い分けているんだよ。

その他にも、ここが子どもに響いたのではないか、という箇所を少し抜粋します。

第11章

言語は使い分けられる
いろいろな場所で動くこびとさんに合わせて、それぞれ違う言語を使うんだ。
だから、どれか一つの言語を学んだらパーフェクトなんてことはない。プログラマーは目的に合わせてたくさんの言語を学んで使い分けるんだよ。

言語は諸行無常
どの言語を勉強するのが将来のために一番いいのかな、と気になる人のいるだろう。
でも、言語は簡単に滅ぶものなんだ。10年後にどうなっているかは誰にも分からない。
(中略)
将来のことは誰にもわからない。もし誰かが「この言語を学んでおけば将来ずっと大丈夫だ!」って言っていたとしても、信じられないなぁ。
だから、将来のためにどの言語を学ぶのが良いかを考えるよりも、まず作りたいものを考えて、それを作ることができる言語を学ぼう。

最初は何でもいいんだよ
何がいいんだろうと悩んで足踏みするぐらいなら、何でもいいから適当に一つ選んでかじってみるといいよ。
(中略)
どのプログラミング言語を学んでも、他のプログラミング言語を学ぶ時の助けになる。

二つ目の言語を学ぼう
一つのプログラミング言語を使っていろいろプログラムが作れるようになったら、二つ目のプログラミング言語をかじってみるのがおススメだ。二つのプログラミング言語を比較することで、同じところ、違うところがわかる。
(中略)
そうやっていろいろな言語をかじって、同じところ、違うところを知っていくことで「プログラミング言語を学ぶ力」が見に着く。この力を身に着けることがとても大事なんだ。

保護者のみなさまへ、という親御さんに向けた挿しこみ記事が、とても秀逸だと思いました。

わかりやすく、偏りが少なく、子どもを勇気づける良書だと思います。

  • このエントリーをはてなブックマークに追加
0

小学生がブロガーになるとITリテラシーに好影響

まーくん
パパー、僕もブログやってみたいー、やらせてよー
パパ
えー、ブログ?何を書くの?続けられるのかなー、不安。

息子まーくん(マインクラフト歴約2年、Scratch歴10ヶ月)の姉・しーちゃんは、タブレットを使ってアメーバブログ(アメブロ)をやっています。買っているペットの写真や面白い挙動、ネタを時々投稿して、同じペットを飼う同好の方と交流しています。

しーちゃん
まーくん、私の真似ばかりしないで!もう、ぷんぷん!

といっても、やりたいのならチャンスは与えてあげようと思い、アカウントを作ってみました。続くか飽きるかはわからないので。

まーくん
よーし、ペットの可愛い写真を投稿するぞ!

やっぱり。。。

思いのほか、毎日毎日投稿が続いています。写真をアップロードし考えた文章を載せているのですが、嬉しいことに、キーボードの入力がどんどん早くなってきました!

本人はキー入力を早くする目的ではなく、ブログ投稿と閲覧数、いいねの数が楽しみで続けているのですが、案外そんなものなのですね。
タブレットでブログを投稿している姉のしーちゃんは、タブレットのひらがな入力がめきめきと上達していますが、まーくんはキーボードで投稿させたのが良かったようです。

そこで、娘、息子にアメブロの本を2つ買って与えてみました。

アメブロ Perfect GuideBook 改訂第3版/榎本 元
息子が毎晩、布団に入った後の読書としてこの本を読んでいます。姉ちゃんはこの本を読んで、スマホ・タブレット版アメブロで出来ないことがPCで出来ると学習したらしく、ブログを書くのにPCとタブレットを併用するようになりました。よかったね。


たくさん読まれるアメブロの書き方/木村 賢
お姉ちゃんが自分の部屋に持ち帰ってしまい、息子が読めません。アメブロでどのようにアクセスを稼ぐか、効果的なタイトルの付け方、内容の書き方、写真の選び方など、ためになる内容がいっぱいです。いいね!が欲しいもんね。

  • このエントリーをはてなブックマークに追加
0

小学生のJavaScript学習はドットインストールが良いか

まーくん
パパー、僕でもわかるプログラミング教えてくれるページってないかなー?
パパ
小学3年生が普通のプログラムねぇ。。。まずはキーボードを自在に使えないと、Scratchから先には進めないんじゃない?

なあんて、息子まーくん(マインクラフト歴約2年、Scratch歴10ヶ月)にマジレスを返してしまう、ダメダメなパパ。。。

それでも、その要望に向かって探しました!
ドットインストール
https://dotinstall.com/

「ドットインストール」とは?
3分動画でマスターできる、初心者向けプログラミング学習サイトです。
あなたもプログラミングを始めてみませんか?

動画を見ながら、初歩の初歩からプログラミングをマスターできるというのが売りです。基本的には大人がプログラムを学ぶためのページですね。

ホームページの作り方、JavaScriptでお手軽プログラミング、PHP、Ruby、その他多数のプログラミングを学習できます。2011年から開始している、サービスを開始してから長いサイトです。

あたかもエンジニアが隣に座って横で教えてくれている、といった体験を提供しているので、途中でつまづくこともありません。気軽に学習を進めていくことが出来ます。

動画は、先生がプログラミング画面にキー入力しながら、内容を口頭で説明する形で進みます。親切な作りです。

まーくんは、「JavaScriptで5秒当てゲームを作ろう」に挑戦です。パパが準備したテキストエディタに、動画の通り入力していくのですが、なんと…書かれた通りに入力できない!

インデント、半角スペース、波括弧、丸括弧、セミコロンなど、見たとおりに真似して入力すればいい、と大人は思うのですが、
・半角スペース→全角スペースに
・波括弧{}、丸括弧()→入力する数を間違える
・セミコロン;→行末のセミコロンを忘れる

当然の結果として、プログラムは全然動きませんし、どこが間違っているのかまーくんにはすぐに分からないのです。小学生のプログラミング学習には、こんな類のハードルがあるとは思いもよりませんでした。

まーくん
あれー?ちゃんと動かない!バグだよ、バグ!パソコンおかしいよ!
パパ
(いろいろと文法を間違えてるが。。。まずは楽しくなることが大事だから直しちゃえ) ちょっと貸してごらん
まーくん
やった、スタートボタンが出てきた!

これは大変だ。。。プログラミング学習の落とし穴、恐るべし。ScratchやCode.orgはホント良く出来てます。

  • このエントリーをはてなブックマークに追加
0

Hack for PlayでのJavaScript学習は小学生が夢中になる

パパ
ゲームをしながらプログラミングを学べるWebを見つけたよ

今日は、子どもが楽しいゲームを通じてプログラミングに興味を持つきっかけになるであろう、ハックフォープレイを息子まーくん(マインクラフト歴約2年、Scratch歴9ヶ月)に勧めてみました。

ハックフォープレイ
https://www.hackforplay.xyz/

子どもは、ドラクエ風二次元マップで自分のキャラクターを動かし、ステージクリアを目指します。
もちろん、敵キャラを倒さないと先に勧めないのですが、敵キャラのHPが999なのに自分のアタックが1しかない、という状況になってます。自分のHPが少ないので、絶対に勝てません。

そこで登場するのがプログラミング。先のステージに進むために、敵キャラのHPが記述されたJavaScriptコードを、ユーザの方で書き換えてしまいます。

まーくん
HPゼロにすりゃいいんじゃね?
まーくん
やった!戦わなくても敵が死んだ!

このゲームの中で、プログラムを改変することが当然のツールになっています。プログラムをいじれる人間様が、ゲームを支配できる!という達成感が半端ない。

まーくん
ボス来たー!つよすぎー。
パパ
どうするの?

プログラムで、自分のHPを最強に書き換えてボスキャラと対峙させます。耐力削り合いだけどなんとか勝てそう!やった!

まーくん
面白かったー!友だちにも教えよう。

楽しんでくれたようです。
ハックフォープレイは、パパは最近知りましたが以前から有名なようです。

未踏スーパークリエータが作った「ハックフォープレイ」でゲームをプログラミング!
https://www.watch.impress.co.jp/kodomo_it/try-programing/1088462.html

  • このエントリーをはてなブックマークに追加
0

小学生のプログラミング教育に特化したHour of Codeの感想

まーくん
パパー、。。
パパ
ん、また何かプログラム教わったの?
まーくん
当たり!

息子まーくん(マインクラフト歴約1.5年、Scratch歴9ヶ月)、プログラミングバトルの予選を突破ということでお知らせしましたが、予選会や二次選抜の講義でいろいろとプログラミング教育のWebサイトを知ったらしく、パパが知らないことを聞いてきます。

今日は、Code.orgというプログラミング教育のサイトからリンクされている、Hour of Codeに挑戦です。Webサイトはhttps://hourofcode.com/jpより。

まーくんがやりたいのは、マイクラの二次元ワールドで、プログラミングによりキャラクター(SteveかAlex)を操ってステージクリアするMinecraftアドベンチャーです。

お題は各ステージで決まっていています。
基本、キャラクターのスタート位置から移動して、羊を捕まえる、木を切る、羊の毛を刈る、作物を植える、クリーパーに見つからないように移動して家に戻る、などを自動で動くようにプログラムします。

Scratchによく似た命令ブロックを繋げてプログラムを書きます。

CreativeMerlin / Pixabay

一通り全ステージをこなしたようですが。。。

まーくん
もうやーめた、かんたーん

どれどれ。。。

ブログラミングの初歩を教える、というスタイルに特化してますね。まーくんには手ごたえがなくて続かなかったようです。

  • このエントリーをはてなブックマークに追加
0

マイクラプログラミングは学習の動機付けに効果はあるか

まーくん
パパー、マイクラのプログラムやってみたい!ニワトリを空から降らせられるんだよ、雨みたく
パパ
へー、そうなんだ。。。で?

息子まーくん(マインクラフト歴約1.5年、Scratch歴8ヶ月)が、マイクラをプログラムで動かすと、楽しいことができると知ったようです。どうも、プログラミングコロシアムの講義で習ったらしい。

マイクラキャラをプログラム通りに歩かせたり、欲しいときに鶏や豚や羊を出現させたり、鶏を空から降らせたり(実際にはあり得ない)。

まーくん
パパー、何をすればいいか調べてよー
パパ
仕方ないなー、もう

と言いつつ、マイクラがプログラムで自動化できるのは興味あります。

ネットで探したところ、Code Connection for Minecraftをインストールする必要があるとわかりました。この記事を参考にしています。

インストールして、マインクラフトと連携させると、プログラムが可能なクリエイティブステージが作れるようになります。

今回、標準のMakeCodeという言語を使ってみます。プログラムの思想はほぼScratchと一緒です。命令ブロックをグラフィカルに繋げて、必要な動作を作ります。

まーくん、ニワトリを降らせてみよう、繰り返しを100、プログラム開始のZ座標を地上から高いところにして、と。

すごい!鶏が次々と空から生まれて、ふわふわーっと落ちてきます!

空からニワトリ発生!

指定した座標から発生してます。

地面はニワトリで埋め尽くされました。

息子と一緒に大笑い!あり得ない!これこそWhy?

まーくん
飽きたー、できること少ないし
パパ
あり得ない動作をして、大人的には面白いのになー。確かに、マイクラの中だけしかブログラムできないから、こりゃ飽きるね。

息子的には、マイクラはゲームとして、ブログラミングは別途できたほうが良いみたいです。

でも、少し前だったらこのソフトで相当楽しめたと思うのだけど、息子もずいぶん経験を積んで、視点が上に向いているようです。

  • このエントリーをはてなブックマークに追加
0

小学生向けプログラミング大会で上位に行く家庭教育の効果

ママ
パパ、まーくんが小学校からもらってきたパンフのプログラミングバトルに参加してみたいって
パパ
プログラミングバトル!?なにそれ?

息子まーくん(マインクラフト歴約1.5年、Scratch歴8ヶ月)がプログラミングバトル(競技会)に出たいと言い始めました。

GPリーグ プログラミングバトル(競技会)県内予選
https://programming.or.jp/

プログラミングに興味のある小学生のプログラミングバトル(競技会)への参加者を募集します。
初心者大歓迎です。クラスの仲間と一緒にプロコロに参加しよう!

何やるのか良くわからないけど、恐らく本人もわかってないけど、申し込んでみました。

そして当日。もちろん保護者同伴。

会場の某大学キャンパスに小学生がたくさん集まり、大変な大賑わい。こんなにプログラミングに興味を持つ小学生と親御さんがいるんだねー。

バトルというから、プログラミングで作り上げたプログラム同士で戦わせたりするイメージだったけど、実際は大講義室に集めてプログラミングのお話を聞いたりして、最後にペーパーテストで選抜するみたいです。

保護者は講義室外にて待つように言われ、講義室からは講師の先生の話や、時折子供たちの歓声が聞こえます。

まーくん
パパー、予選突破したよ、僕
パパ
えっ!ホント!?

驚いたことに、まーくんは約300人の中からTOP20に残ってしまいました。親はもちろん嬉しい!
ですので、選抜のトレーニングジムにも参加が許されました。

一連のイベントの流れは、チバテレの番組「プログラミングコロシアム」で放映されます。
過去放映番組は番組ページからYouTubeで見られます。

パパ
ところで、いったいどんな問題が出たの?
まーくん
別にー、コンピュータはどこに使うのとか、コンピュータの中身の質問とか。スクラッチの問題ちょっとしかなかった。
まーくん
パパとパソコン組み立てたことあるから、パソコンの中身の質問とか簡単だったよ。
パパ
よかった、いろいろ体験させておくもんだなぁ

高学年の生徒も多くいる中で、小学3年生での予選突破は立派でした。

パソコンでも、タブレットでも、スマホでも、子供がゲームやプログラミングに使っているハードウェアがいったい何者か、家庭で話題に出しておくと良いのではないでしょうか。使わなくなった古いケータイやデジカメを子供に分解させてみてもよいかもしれません。
えてしてネジ形状が特殊で、星形だったりT型だったりするのですが、ネットでその手のドライバーは普通に購入することができますよ。
(iphone 分解 ドライバー などで検索します)

  • このエントリーをはてなブックマークに追加
0