サポンテ 勉強ノート

サポンテの勉強ノート・読書メモなどを晒します。

関数ってなに? --- プログラミング初心者以前

「関数」をはじめから丁寧に

「関数というのはかなり問題のある訳語です」と何かの本で見かけました。どの本だったのか失念してしまいましたが、プログラミングにおいては私も同じように感じます。

現在の世界では「関数とは何か」ということを理解するのは大変重要ですが、これを初心者にちゃんと解りやすく書かれた文章がほとんど有りません[^1]。これは初心者以前の用語であって、初心者向けの書籍であってもすでに知っている前提です。

関数なら学校で習った?

関数という言葉は中学校の数学でも登場します。しかしながらコンピュータで言うところの関数は、中学数学で習う関数の概念とはかなり異なり、また高校数学以降で習う関数の概念とも若干異なるため、ちゃんと説明を受けて理解しておかないと、続く学習に支障が出ます。いわゆる「つまづき」になってしまいます。

そもそもプログラミングは小学生から学ぶことになりそうです。中学数学を学ぶまで待つわけにはいきません。小学生のうちはカリキュラムの中にまだ関数の概念を持ち込まないのだとしても、覚えの早い子は自分で手を伸ばしてどんどん学んでいきます。そうした時に応えられる情報が必要です。

この記事は小学生に向けて、あるいは、プログラミングを学ぶ小学生に応える立場にいる大人に向けて書いたものです。また、数学における関数について説明したものではありません。

続きを読む

ジュビリー (パトリシア=ライリー=ギフ著、さ・え・ら書房)

ジュビリー

ジュビリー

  • 作者: パトリシア・ライリーギフ,Patricia Reilly Giff,もりうちすみこ
  • 出版社/メーカー: さえら書房
  • 発売日: 2017/10/27
  • メディア: 単行本
  • この商品を含むブログを見る

すべての子ども達には無限の可能性が

母親に捨てられたジュディスという女の子は、置き去りにされた家に住む叔母さんと暮らしていました。叔母さんはジュディスのことをジュビリー__「最高の喜び」と呼んで愛情深く接しています。しかし母親に置き去りにされた記憶から、それ以来、声を出すことが出来なくなってしまいました。またそれが友だちとうまくなじめない原因にもなり、心を痛めることが重なってしまいます。叔母さんのことは大好きですが、叔母さんの誕生日に母親から届いたカードの内容がとても気になります。

著者はブルックリンで20年間小学生の教師をしていたとき、移民の多い土地柄、この本のジュディスのように選択性無言症の子どもや、そうでなくても英語が話せない子どももいたそうです。もちろん移民である以上、そのご両親も同様の不安の中で生活しているはずで、その中の子ども達は学校でも家庭でも心安らかにいられないかもしれません。

その中でもときおり、子ども達から勇気をもらう出来事があるようです。それは著者にとってほんとうにジュビリー__最高の喜びである出来事なのでしょう。

ジュディスも、やがて母親が自分を置いていった理由や友だちが自分を避ける理由の中に自分の非がなかったことを知り、自分を愛してくれる人(叔母さん)がいること、自分の愛するもの(犬)がいること、最高の喜びの中に生きていることに気づきます。

すべての子ども達には無限の可能性があること、すべての子ども達の中にジュビリーが存在することが信じられる物語です。

ドラゴン・キーパー 最後の宮廷龍(キャロル=ウィルキンソン著、もきかずこ訳 金の星社)

ドラゴン・キーパー 最後の宮廷龍

ドラゴン・キーパー 最後の宮廷龍

本の紹介

名前のない奴隷の女の子がぬれぎぬから龍守りの主人の元に居られなくなり、龍とネズミとともに旅に出ます。龍は、古代中国の皇帝がその権威のために手元においておいた宮廷龍の最後の生き残りでした。

続きを読む

プログラマの成果物はソースコード

はじめに

プログラマの成果物は__いろいろありますが、主にはソースコードです。

というと「当たり前のことだ」と思うでしょうか。しかし「動くプログラムだろう?」という人も多いはず。

続きを読む

小さな可能性(マルヨライン=ホフ著 小学館)

小さな可能性 (児童単行本)

小さな可能性 (児童単行本)

本の紹介

小さな女の子キークのパパはお医者さん。困っている人たちを助けるために紛争地域に出かけていきますが心配でなりません。パパが無事に帰ってくる可能性を少しでも大きくするためにキークがしたことは...。

続きを読む

Visual Studio で(Git の)コミットする前に気をつけるべきこと

ファイル単位でコミットを分割したい場合

開発作業ではファイルを追加->ステージング->コミットを繰り返していきますが、ファイル単位でコミットを分割したい時があります。

肝のプロジェクトファイル

Visual Studio ではプロジェクトに含まれるファイルの一覧を保持するファイルがあります。すなわちプロジェクトファイル(「.csproj」「.vbproj」など)です。

注意が必要な場合

例えば「画面001の開発を完了」という感じのコミットを作りたいけれども実際には次の「画面002」のファイルも一部既に用意してある、といったケースです。

「画面002」に関連するのはまだコミットには含めたくないファイルですが、プロジェクトファイルには、すでに記述があります。

このまま「画面002」だけ除外してコミットしてしまうと、コミットしていないファイルの参照も含まれてしまうことになります。他のメンバーがリポジトリをクローンすると、Visual Studio 上では行方不明のファイルとして表示されます。

コミット除外対象にプロジェクトファイルを含めるとどうなるでしょうか。

今度は逆に「画面001」の関連ファイルがプロジェクトに含まれないものになってしまいます。

いずれにしても他のメンバーには状況が解りません。ひょっとしたらビルドが通らないかもしれず、一時的にせよ迷惑をかけることになるかもしれません。

続きを読む

入門 git(Travis Swicegood著/オーム社)

あいさつ

気づけばひと月ぶりの投稿です(Qiita にはちょくちょく投稿していました)。やはりアルバイト始めて体力が限られてきました。

はじめに

バージョン管理システム Git について書かれた入門書です。

ハンズオンから始まって、応用的な使い方まで網羅的に詰め込んであります。前半の丁寧さに比べて後半の詰め込み具合が気になりますが、実際には前半の部分がちゃんとできていれば日常的な Git 操作に不自由しないほどになりますし、習熟が進んできたら後半の内容も理解できるようになります。そういう意味では後半はもっと詰め込んでも良かったのかもしれません。

私の場合、上記の本で基本的なことを学んで運用をはじめ、最近また改めて読み直しましたが、初めて読んだ時に理解できなかった部分がスムーズに頭に入ってきました。おそらく、またしばらく時間をおいてから三たび読んだ時に、また新たな発見と成長があるものと思っています。ツールの習熟は手になじみ、その文化背景が心にしみ込むまで繰り返し繰り返し行うしかありません。この本は一気に読むのではなく、ツールを使いながらレベルアップしたくなったら次を読む、という読み方が良いかもしれません。

続きを読む