プログラムクラブしんゆり

6/15に開催された「プログラムクラブしんゆり」にボランティアとして参加してきました。
今回もScratchをしっかり予習してボランティアにのぞみました。

キーボードよりもマウスをかなり使うことになるので、小学生の小さな手に合ったマウスがあると、お子様も楽しくプログラミングに取り組めるようです。

コメントは重要な仕様書である

プログラミングはソースコードとして一つの機能を実現させるための手順書を記述するものです。
しかし、作成した本人でさえ どのような処理をしているかをコメントとして記述しておかなければ、容易に理解できないものです。
もし作成した直後であれば、様々なことが記憶に残っているので、このような問題に至らないのですが、しばらく時間を置いてから処理(ソースコード)を追いかける場合は、コメントがなければ必ず苦労することになります。
ましてや、他の開発者のものであれば、コメントがなければ、実に大変なおもいをすることになるでしょう。
さらに、そのソースコードに修正を加えていくことは、考えただけでも遠慮したくなるに違いありません。
以上のことから、コメントは自分にとっても、開発者にとっても重要で、プログラムの処理の流れを把握/理解するための仕様書といえます。

プログラムの先頭にはヘッダコメントを設ける

仕様書は、プログラムの保守、機能拡張を行うときに参考にします。しかし、最終的には何を見るかというと、やはりプログラムです。
仕様書などは時としてプログラムの更新と同期していないことがありますが、プログラムは唯一真実を語るものです。
したがいまして、プログラムには仕様が明記されていなければならないのです。
仕様書よりは有効な開発支援となるものですから、必ずコメントを記述しています。(日本語で記述しています)
ヘッダー部は、プログラムが使用されなくなるまでソースプログラムについてまわるものなのです。

きれいなプログラムには不良は少ない

プログラムは文章とよく似たものです。きれいな文章は読む人に感慨を与え、また理解されやすいですね。
“きれいなプログラム” すなわち、体裁が整っている論理的なプログラムは、机上デバックでテストしやすいので、おのずと不良を見つけやすく、後々の保守作業や機能拡張の場合も無理なく行うことができるのです。

小学生がプログラミングにチャレンジ

10月27日(土) 小学生が新百合ヶ丘の街のプログラミングにチャレンジ!!
パソコンからアプリケーションScratchを使用してゲームかアニメを制作しました。

場所:しんゆり交流空間 リリオス
主催:一般財団法人 川崎新都心街づくり財団
企画・運営:東京都市大学 林和眞研究室
後援:NPO法人しんゆり・芸術のまちづくり

私たちは、はじめボンティアとして参加をしていましたが、
途中から、小学生と一緒に Scratch というプログラミング言語でゲームを作成するという、参加者になってしまいました。

とても楽しかったです。
東京都市大学のみなさん、親切に教えて頂きありがとうございました。

 

エクセル短縮キー10選で”処理速度10倍”

エクセル短縮キー10選で”処理速度10倍”
(https://president.jp/articles/-/26071)

プログラミング言語

プログラミング言語とは、コンピュータプログラムを記述するための形式言語です。
たくさんの種類がある言語から一部を紹介します。

■Python
コードが非常にシンプルで文量も少なく、誰が書いても同じコードになるため読みやすいといった特徴を持っています。
「YouTube」や「Evernote」「Instagram」など世界的に有名なサイトの開発にもPythonが用いられています。
Pythonのコードは非常にシンプルで、エンジニアが書くコードの分量は少なくて済みます。よって初心者が身につける上で比較的学習しやすい言語です。これも人気のひとつでもあります。

■JavaScript
マウスを乗せたボタンの色が変わったり、ポップアップが出現したりなど、主にWebサービスを使うユーザー側の動きを作るために使われるプログラミング言語がJavaScriptです。ウェブページに動きをつけるのに最適で、フロントエンドエンジニアの必修言語です。

■Ruby
Rubyはまつもとゆきひろ氏(Matz)という日本人によって開発されたプログラミング言語です。
開発者のまつもとゆきひろ氏曰く「Rubyは『楽しさ』を第一目標とした言語」だそうで、プログラミングの教育にも使われています。

■Scala
ドワンゴやセプテーニ、オプト、海外だとTwitter社などのメガベンチャー企業の多くが利用しているプログラミング言語がScalaです。

■PHP
PHPは初心者でも取り組みやすい言語の一つとして、長きにわたり人気を保ち続けています。Webサービス開発でもPHPは多く活用されており、おすすめしたい言語です。
「WordPress」もPHPを活用して作られています。WordPressはCMS(Content Management System)サイトの一つで、ソースコードを書かなくても、利用者がサイトの更新を行えます。この開発にもPHPは使われます。

■Swift
2014年にApple社が開発したプログラミング言語です。iPhone/iPad向けのアプリを作る時はObjective-Cという言語を使う必要がありましたが、よりシンプルな開発が可能になった言語としてSwiftが誕生しました。

■R
統計的な情報の分析・解析に特化したプログラミング言語がRです。

■C#
C#はC言語をベースに、マイクロソフトが開発したプログラミング言語です。アプリケーション開発に用いられます。特にUnityを用いたVR開発では、主流のプログラミング言語として使用されます。
Javaと同じオブジェクト指向のプログラミング言語で、C#を学べば、Javaを学習するときにも取り組みやすくなります。

■Kotlin
Googleが発表したAndroidの公式言語がKotlinです。JetBrains社によって開発されました。

■C
プログラミング言語の元祖とも言える存在です。

オブジェクト指向とは

アラン・ケイ博士は
1970年、ゼロックス社のパロアルト研究所(現在、ゼロックスの完全子会社)の設立に参加し、
1970年代に史上初の本格的GUIを備えた暫定的ハードウエアである「Alto」と、エンドユーザーが自在にプログラミング可能で、それを全方面からサポートする機能を有する暫定的環境「Smalltalk」の開発において指導的立場をとった。

このSmalltalk環境の動作するAlto(暫定ダイナブック)を見学する機会を得たスティーブ・ジョブズが、そのアイデアを大いに取り入れてLisa、続くMacintoshを開発した、というのは有名な話である。

ケイとパロアルト研究所の同僚は、オブジェクト指向プログラミングというアイデアの生みの親で、オブジェクト指向と言う言葉は、Smalltalkのプログラミングスタイルを説明するために作られた。
⇒「クラス」と「オブジェクト」を備えた言語機能と自らのアイデアである「メッセージング」と組み合わせて「オブジェクト指向」と称した。後にビャーン・ストラウストラップにより「カプセル化・継承・ポリモーフィズム」として再定義されている。

上記のことから、オブジェクト(=モノ)指向とは現実世界の事象をコンピューター上で表現する事で抽象化された分かりやすいプログラムを作る技術ではなく、
クラスをメモリ上に展開したインスタンス(≒オブジェクト)中心のプログラムを作る考え方である。

クラスにはデータ、データに対する手続き(メソッド)が定義されており、オブジェクト指向では、クラス内メソッドを実行する事=メッセージをやり取りする(=メッセージパッシング)。
また、クラスにはカプセル化、継承等の仕組みがプログラム言語の仕様として用意されている、これにより保守性、拡張性が高まる。

プログラマになりたいあなたへの手紙

プログラマになりたいあなたへの手紙
プログラマに必要なたった一つの力

上記はプログラマとしての心構えなどについて語っている“読み物”です。

プログラミングを始めてまだ間が無い人にとって、先人たちが語るプログラマとしての心構えや考え方はそのまま役に立つと思います。また、ある程度以上の経験がある人にも自分の“立ち位置”を確認するうえで参考になると思います。