楓プログラミングスタジオ たっきーBlog

JEUGIAカルチャーセンター桑名からスタートした「はじめてのプログラミング教室」は、『楓プログラミングスタジオ』に生まれ変わりました。小学生と中学生の子どもがメインですが大人初心者も大歓迎。教室でのワークの様子やプログラミングに関する記事を掲載します。弥富教室の体験と講座のお申込みは、https://kaede-pgstudio.net/contact/ まで。桑名教室は、JEUGIAカルチャーセンター桑名(Tel:0594-27-7211)まで。

Pywapi APIを使って、Pythonで天気予報を作ろう!(前半)

pywapi APIが使いたい

  • Pythonでインターネットから天気予報を取得するプログラムを勉強中。 f:id:takaaki-niikawa:20171003005257p:plain

  • Windows環境だと準備が難しいのか手間取っています。

    • pipを使ってインストールできるみたいですが、pipのversionが古く先ずアップデート。
    • pipのアップデートには成功。へー、こんな風に表示されるんですね。Linuxみたいで嬉しー。
    • だけど、pipアップデートしても環境に合わないらしく、自動でインストールはできません。
  • インストールログ(コマンドプロンプトより)

    • WindowsのPATHにPythonを設定しているため、pythonやpipコマンドが直接実行できます。
C:\>pip search pywapi
pywapi (0.3.8)  - Python wrapper around different weather APIs
You are using pip version 8.1.1, however version 9.0.1 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.

C:\>python -m pip install
 --upgrade pip
Collecting pip
  Downloading pip-9.0.1-py2.py3-none-any.whl (1.3MB)
    100% |################################| 1.3MB 150kB/s
Installing collected packages: pip
  Found existing installation: pip 8.1.1
    Uninstalling pip-8.1.1:
      Successfully uninstalled pip-8.1.1
Successfully installed pip-9.0.1

C:\>pip search pywapi
pywapi (0.3.8)  - Python wrapper around different weather APIs

C:\>pip install pywapi
Collecting pywapi
  Could not find a version that satisfies the requirement pywapi (from versions: )
No matching distribution found for pywapi
  • 自動がだめなら力技だー。
    • Code Archiveからダウンロードしました。

Google Code Archive - Long-term storage for Google Code Project Hosting.

C:\>python setup.py build
running build
running build_py
creating build
creating build\lib
copying pywapi.py -> build\lib

C:\>python setup.py install
running install
running build
running build_py
running install_lib
creating C:\python-3.5.2-embed-win32\Lib
creating C:\python-3.5.2-embed-win32\Lib\site-packages
copying build\lib\pywapi.py -> C:\python-3.5.2-embed-win32\Lib\site-packages
byte-compiling C:\python-3.5.2-embed-win32\Lib\site-packages\pywapi.py to pywapi.cpython-35.pyc
running install_egg_info
Writing C:\python-3.5.2-embed-win32\Lib\site-packages\pywapi-0.3.8-py3.5.egg-info

週末に続く…

  • 本日はAPIの入手とインストールまでで力尽きてしまいましたので、importは週末に続くと言う事で!

スクラッチでシューティングゲームを作ってみよー!!

こんばんわ、JEUGIAカルチャーセンター桑名でプログラミング教室先生しています、たかあきです。
次回のプログラミング教室は、特別テーマ「アクションゲーム作り」を予定しています。
想像力とこんなの作ってみたいというアイディアを持って来て下さいね。

さて、スクラッチではどんなアクションゲームが作れるのでしょうか??
先生よりゲーム世代の子ども達の方がピンとくるかもしれません。

6月に横にスクロールするマリオ風アクションゲーム作りを紹介しました。

takaaki.hatenablog.jp

今日は、シューティングゲームを紹介します!
先ずシナリオとしては、スペースシャトルと宇宙人の対決にします。

f:id:takaaki-niikawa:20171003003237p:plain

スペースシャトルはビームを発射できます(実は単なるボールのスプライトですけど…)。60秒間にスコアを競うゲームにします。ピンクの宇宙人に命中すると宇宙人は消えスコアが1つ加算されます。

f:id:takaaki-niikawa:20171003003553j:plain

次にゲームっぽくステージ2を準備しました。

宇宙人は、開始から45秒は1体ですが、ラスト15秒は2体に増え(2体目は緑の小さい奴)、2体目は倒すとスコアが2つ獲得できます。

ちなみに宇宙を飛行している雰囲気を出すため、スターを流して縦にスクロールしている様に見せています。

f:id:takaaki-niikawa:20171003003822j:plain

60秒のタイマーとステージ2の突入は、下記のようにプログラムしています。残り15秒でステージ2のメッセージを送り、60秒をカウントダウンするループが終了するとタイムオーバーのメッセージを送る仕掛けをしています。

 

f:id:takaaki-niikawa:20171003003928p:plain

 

工夫したところは、ビームの扱いです。発射するまではスペースシャトルにくっつけておき、スペースキーが押されるとループを抜け、上方に飛んでいく様に作っています。

 

f:id:takaaki-niikawa:20171003004326p:plain

 

じゃあ、残りは想像力を働かせて完成させてください!

生徒のみなさんは、どんなゲームを作るかな? 今から楽しみです!!

ドワンゴが設立したN高の本を読みました。これが未来の学校!

インターネットに普通の高校ができた!?

  • 今日は、先日に引き続き、N高等学校について記事を投稿します。 「普通の高校」を作ったと聞くと何の不思議もありませんが、「インターネット上に普通の高校を作った」となると大変不思議な話ですね。 N高は、2016年4月に開校したドワンゴとKADOKAWAが作った通信制の高校です。 一般的には通信制の高校と聞けば、授業の理解度やクラスメートとの交流、部活動といった面で制限があるのでは?と感じてしまいますが、その全てにおいて普通の高校と劣らないし、むしろ生徒が自由に学び、自発的に将来役立つことに挑戦していることに驚きました。
  • 今週「ネットの高校、はじめました。」を本を読みました。日頃読むスピードは遅いのですが、あっという間に読み終えました。初めは前半で雰囲気はつかめたので、第3章の「N高のはじまり」は読み飛ばそうと思いましたが、このN高ができるまでの過程を読んで、感動しました!

  • N高は、普通の生徒も、特別な生徒も、落ちこぼれた生徒も、みんなが行きたいと思う高校の様です。進学校にもなり得るし、プロを目指す子の本格的な職業訓練もできる。まさに未来の高校ですね。 当初、プログラミングのキーワードに興味を持って読んでいましたが、大人になってしまいましたがそんな高校今からでも行きたいです。

    • 子ども達に何も持たずに社会に送り出すことはさせたくない、親としては勿論一人の社会人としてもそう強く思います。「N高の役割は、社会で生きていくための武器を与えること」とのことです。

    • イチバン印象的なエピソードは、工業高校に行った貴章君の話。私と名前が同じなんですね。(^^; どうせ高校に行くなら工業高校に行って資格を取れ、と親に勧められ始めは工業高校に入学したが辞めてN高に転校した話です。自分と重なるところもあり…、資格を取ることが目的ではなく、N高は「社会で使える武器を見に付けること」がテーマで、今なら分かるこれは羨ましい。

さいごに

  • 感動した部分は、大人たちが真剣になって教育を変えようとしていること。それは危機感を感じているからなんです。 本来教育が先導しなければいけないが、世界や社会が変化しているのに教育は追いついていかない。新時代の教育を作ろうというドラマに素直に熱くなりました。
  • うちの娘たちどーですか?一つの選択肢として、賛成です。
  • 私もこれからの教育革命に関わって行きたいです。

nnn.ed.jp

教え方ではなく情熱を持つこと。子ども達の心に"火"を着けよう!

こんばんわ、桑名はじめてのプログラミング教室のたかあきです。 いつもブログを読んでいただき、有難うございます!

みなさんは、"N高等学校"を知ってますか!?

  • 私は、今週Qiitaに投稿されたsifueさんの記事を読み、初めて"N高等学校"の存在を知りました。 記事のタイトルは、「高校生にWeb上でプログラミングを教え始めたエンジニアがこの8ヶ月間で得た気づき」
  • カルチャースクールで小中学生にプログラミングを教え始めた私にとって、大変興味深い体験記でした。

qiita.com

  • N高等学校は2016年4月に開校したドワンゴとKADOKAWAが作った通信制の高校です。このN高では様々な課外授業に取り組まれています。その1つにプログラミング教育があり、一流のプログラマーがオンライン(インターネットを通した非対面)で高校生に授業を行います。
  • この記事からsifueさんが始めたきっかけやどんな風に取り組んでいるかが伝わりとても参考になりますし、こちらも興奮といいますか「やってやるぞ」という気持ちが湧いてきます。
  • 一番驚いたことは、「中学卒業したプログラミングをしたことない人が、Web企業にエンジニアとして就職できる」というミッションで取り組んでいることです。
  • 授業の内容はよく考えられており、JavascriptやWebアプリケーション、スマフォアプリのコースなど本格的な内容になっています。詳細は、sifueさんの記事をご覧ください。

心に"火を着ける"

  • 人の心に"火"を着けるのは簡単なことではありませんね。思考錯誤で教材を作り授業をされてきたと思います。 そして、高校生がそのモチベーションを保つことも容易ではありません。 大切なことは、楽しんで学んでいるか。成長する上で大切なことは、教え方ではなく情熱を持つことが必要だなと再認識しました。

  • じゃあどうやったら子どもが情熱を持つのでしょうか?-それは大人が子ども以上に情熱を持ち続け、子どもの力を信じていることなのでしょうね。

    • 私も子ども達の心に"火"を着けられる人になりたいと思います。今日、下記の本を購入しました。勉強します!!!
  • また、N高のメソッドが解説されているプログラミングの具体的な学習本も出版されているようです。

Pythonの入門書をご紹介! 『実践力を身につける Pythonの教科書』

桑名はじめてのプログラミング教室のたかあきです。
今日は、私がお勧めするプログラミング言語 Python(パイソン)の入門書をご紹介します。
マイナビ出版から出版されている『実践力を身につける Pythonの教科書』です。

f:id:takaaki-niikawa:20170917234335j:plain

 

私はこれまで、C言語を学んだことがありましたが、Pythonは初めてでした。最近Pythonの人気が高まっていること、コードがすっきりとしていてプログラミングを学ぶ人にとって理解しやすいとの情報を得て、Pythonに興味を持ちましたー。
そこで昨年Pythonの入門書を探していたところ、発売間もなくの『実践力を身につける Pythonの教科書』を発見しました。

 

この本に決めた理由は、下記の通り。

・1冊の本で基礎~応用までカバーする入門書を探していた。

・初心者でも理解できるよう丁寧に説明されていた。

・最初から最後まで詳しく解説されていること。

 

プログラミングの参考書には、基礎から応用までカバーされている本は少ないと思います。また基礎は詳しく記載されているが、応用になると情報量が乏しくなることもあります。

こちらの本ではPythonの基礎はもちろん、デスクトップアプリやインターネットから情報を取得する方法など実践的なことも解説があり、読んでいるとワクワク試したくなることばかりです!

 

先ずは、インストールから始ります。(Windows, Macを使った場合の説明あり)

f:id:takaaki-niikawa:20170917235838j:plain

 

テキストベースだけでなく、デスクトップアプリも手軽に作れます。グラフィカルになっただけで、本格的な感じがしますね。

f:id:takaaki-niikawa:20170918000017j:plain

 

ファイルからデータ読み込みだけでなく、インターネットからデータ取得することもできます。流行りの機械学習にも使えますね!

できることが増えると…こんなプログラムもできるかな。あんなことにも使えるなーと、イメージが膨らみます!!

 

f:id:takaaki-niikawa:20170918000238j:plain

 

ぜひ、一度手にとって読んでみてください。

プログラミング初心者も、経験者も、新しい言語に挑戦してみましょう。きっと初めてプログラムを作ったときの楽しさを思い出します。

 

 

 

わかった!動いた!、pythonで計算問題に挑戦だ!

こんにちわ、桑名はじめてのプログラミング教室のたかあきです。 現在、syu君、sho君の2人がpython(パイソン)に取り組んでいます。 今日は、pythonの練習をご紹介します。

python(パイソン)については、6/19の記事を参照ください。

takaaki.hatenablog.jp

■台形の面積を求めよう

sho君が取り組んでくれたのは、台形の面積を求めるプログラムです。 みなさん、台形の面積を求める方法は知っていますか? sho君さすが中学生、台形の面積を求める公式ばっちり知ってました!

  • 以下が今回の問題です。

f:id:takaaki-niikawa:20170917083425p:plain

  • この課題のポイントは、3つです。

    • 変数に上底、下底、高さの値をセットすること。(sho君はinput関数を使って、変数に値をセットしました)
    • 面積を求める計算をすること。公式は以下だったね。
      • (上底 + 下底) × 高さ ÷ 2
    • 計算結果(面積)をprint関数で表示すること。
  • 実行結果は、下記の通りです。

f:id:takaaki-niikawa:20170917083647p:plain

  • 基本的なプログラムの流れは、スクラッチと同じです。sho君もプログラムの流れは、すらすらと思い付いたみたいです。
  • じゃあパイソンではどうやって組むのかな? 自分で教科書を見ながら関数の使い方を調べていたこと、とても良いと思います。
    • 教室では、「10才からはじめる プログラミング図鑑」を手引きとして使用しています。この1冊で、スクラッチとパイソンの学習に使えるため私のお気に入りです!
    • 詳しくは、昨年12/10の記事を参照ください。

takaaki.hatenablog.jp

  • パイソンで書いたプログラムは、下記になります。
# 台形の面積を求める計算2
a = int(input("上底は?"))
b = int(input("下底は?"))
h = int(input("高さは?"))
daikei = (a + b) * h / 2
print("台形の面積は", daikei, "cm2")

forループを使って、計算しよう

syu君は、今回初めてforのループ(くり返し)を使ったプログラムに挑戦しました。

  • くり返しは、スクラッチの場合、「ずっとくり返す」、「( )回くり返す」「( )までくり返す」の3種類あるよね。 パイソンの場合、forを使って、「( )回くり返す」を作ることができるよ。

for i in range (10) みたいに10回くり返すという書き方と、 for i in range (1, 11) のように、ループ変数"i"が"1~10まで"の範囲でくり返すという指定方法ができます。

  • 以下、forループを使った10回入力した数を合計するプログラムです↓

f:id:takaaki-niikawa:20170917145518p:plain

いちどわかったら、forループを使ったプログラムは簡単。 たった4行でできましたー。

# 入力した数の合計を求める

sum = 0

for i in range(10):
    sum = sum + int(input("?"))
print("合計は", sum)

プログラムの流れはスクラッチと同じ。書き方を覚えたら、すいすい作れます!

みなさんも、プログラミングを通して、頭をきたえようー!

日本のすべてのエンジニアが Happyになるために

日本のすべてのエンジニアが Happyになるために

子どものプログラミング教育から少しだけ話が変わりますが…、

  • 最近日本の労働生産性が低いといった記事や書籍を見掛けます。第三次安倍内閣で「働き方改革実現会議」のテーマとして「賃金引き上げと労働生産性の向上」が取り上げられているとのこと。 この生産性とは、1人あたりのGDPであり、国の経済全体の平均であるとのこと。
  • しかし、どの産業においても、設計者や技術者、製造部門の担当者いずれも真面目で懸命に働き、私語やサボりどころか常に改善をすべく努力している人も少なくない。
  • そう考えれば日本企業の生産性は、マネジメントに原因があると考えるべきです。 そして従業員は、"すべてのセクションにおいてどうすれば生産性が上がるか?" を考えて働くべきですね。(もちろん、この話題に取り上げられている生産性の算出方法が妥当かという議論はあると思いますが…)

  • 私も毎日働き生活する中で、「深く考える」ということを見失うことが多いです。しかし、子ども達や若い世代に言いたいことは、 社会人になるまでは「勉強」は忍耐だと思っていましたが、大人になってからの「勉強」は楽しいです。 社会人は学生と比べて勉強に掛けられる時間は短くなりますね。 だからこそ、もういやいや勉強する必要はありません。いかに自分のために学ぶか。好きなことを学びましょう。

  • 大人には(本当は子どもも同じですが)、テストで平均以上の点数を取ることやクラスで上位を目指す必要はありません。 言うなれば"トップ"しかありません。つまり、自分がやりたいこと、掲げた目標を達成できたかどうかです。

さいごに

  • 日本人は生産性が低いだなんて言われたくありませんよね? 海外の企業で働く技術者の方が優秀だとか、賃金が高いとか聞きたくないですよね?
  • もっと学び、志の高いエンジニアや優秀なソフトウェア開発者が正当な賃金を得て、Happyに生きる社会を目指しましょう!