マジカルナンバー4とは?人の認知的限界と良いコードの原則
マジカルナンバー4とは、人が短期記憶で同時に扱える情報量の目安です。チャンクとの関係と、読みやすいコードへの応用を解説します。
マジカルナンバー4とは、人が短期記憶で同時に扱える情報量の目安です。チャンクとの関係と、読みやすいコードへの応用を解説します。
対象読者 高校数学で挫折する理由を知りたい方 数学の勉強へのヒントを得たい方 結論 算数は得意だったのに数学で挫折する人は多い。 進級・進学に伴い、どんどん難しくなっていく数学。あぁ、算数は簡単だったのに。。。 ...
必要条件?十分条件?どっちがどっち?ややこしい。 本記事では、「必要」や「十分」と名付けた理由や語感を数学的に明らかにする。 その上で、「必要条件」「十分条件」を日常会話で使いこなす勘所を解説する。 ...
小学校の先生は忙しかったので、 「1 + 2 + … + 100を求めよ。」という解くのに時間がかかる問題を出した。 しかし、ガウス君は即答した。 5050だと。 101が50個あるからだ。 ...
数学の「ならば」の定義である真理値表を眺めても、日常会話の「ならば」とは全く異なるように見える。 なぜこの真偽の羅列が「ならば」を表すことになるのだろうか。 ...
対象読者 理解しやすく保守しやすいコードを作りたい方 プログラミングの関数の「適切な」使い方を知りたい方 結論 関数(function)はプログラミング学習の初級で登場する基本中の基本である。 ...
対象読者 オブジェクト指向がなぜ必要か分からない方 結論 手続き型プログラミングとオブジェクト指向の違いは以下である。 手続き型プログラミングは中央集権であり、 オブジェクト指向は地方分権である。 手続き型プログラミングでは、クライアント(main文などの関数の呼び出し側)が全てを管理しなければならず、 責任が重すぎる。 故に、柔軟性や可読性が下がってしまう。この問題を解決する手段の1つがオブジェクト指向だ。 ...
対象読者 プログラミング初学者の方 色々ググってみたが、本タイトルについて理解できなかった方 結論 両者をググったものをまとめると、 ライブラリとは、再利用可能な部品をまとめたもの フレームワークとは、枠組みが予め決まっている部品をあつめたもの と出てくる。 ...
対象読者 以下に飽き飽きした方 「猫クラス、犬クラス」等の説明 オブジェクト指向の抽象的で難しい用語 結論 クラスはオブジェクト指向の土台である。 しかし、クラスを使う動機やメリットを理解することは容易ではない。 抽象的で難しい用語が溢れていて、初心者は圧倒されてしまうからだ。 ...
対象読者 合成関数の微分がイメージできない方 合成関数の微分の手順ではなく、意味を理解したい方 結論 合成関数の微分のことを「なんか分子分母を付け足して微分を展開できること」だと思ってはいないだろうか。以下の式展開は、\(dy\)を分子分母に付け足しているだけに見える。 ...
対象読者 ガウスの発散定理を視覚的に理解し、しっかり暗記したい方 結論 ガウスの発散定理は、 湧き出し量についての表面積視点と体積視点の言い換え 微小要素が打ち消し合って、外側の値だけが残る という2点を理解すれば、公式を忘れても、即座に導出できる(ストークスの定理の理解も同様)。 ...
対象読者 ストークスの定理を視覚的に理解し、しっかり暗記したい方 結論 ストークスの定理は、 回転量についての経路視点と面積視点の言い換え 微小要素が打ち消し合って、外側の値だけが残る という2点を理解すれば、公式を忘れても、即座に導出できる(ガウスの発散定理の理解も同様)。 ...
対象読者 論理学の背景を知りたい方 結論 論理学とは、人類共通の思考方法を形式化し、その性質を研究する学問である。その基礎となるのは、真理値と呼ばれる真か偽かいずれかをとる値である。 ...
対象読者 プログラマの思考法を知りたい方 プログラミングに興味がある非プログラマの方 プログラミング初心者の方 結論 プログラムは実体がなく、イメージしづらい。しかも、横文字の用語も沢山あって、初心者の方にはかなり取っ付きにくい。 なおかつ、コードを綺麗に書くための工夫やら規則やらもある。 ...
空集合はあらゆる集合に含まれる。なぜなのか。 そう決めれば都合がいいから 対偶で証明できる などと説明されがちであるが、否! 定義を追えば普通に証明できる。 空集合特有の約束事や対偶なぞ必要ない。 ...
コンピュータではデータを二進数で表現する。 では、その足し算はどのような回路で実現されているのだろうか。 本当は複数桁の2進数の足し算 を考えたいところである。 しかし、まずは最小の、1桁同士の2進数の簡単な足し算について考えるべきだろう。 難しい問題は分割して、より簡単な小さい問題から考えるとよいからだ。 そして、これを実現する回路が「半加算回路」である。 ...
半加算回路はAND・OR・NOTだけで表現できた。 では、この3種類の回路をすべて用意しなければならないのだろうか。 実は、ANDとNOTを組み合わせたNAND回路だけでもAND・OR・NOTをすべて構成できる。 つまり、半加算回路も理論上はNANDだけで作れる。 ...
半加算回路は、 1桁の2進数を足し合わせて和と繰り上がりを求められる。 しかし、これだけでは複数桁の足し算はできない。 そこで必要になるのが「全加算回路」である。 ...
対象読者 人工知能の歴史を数式なしで簡単に学びたい方 ディープラーニングは従来のAI技術と比べて何が凄いのか知りたい方 結論 人工知能は現在3回目のブームを迎えている。以下にそれぞれの技術的な主役を列挙する。 ...
対象読者 オブジェクト指向は難しい、と感じている方 オブジェクト指向言語を使っても恩恵を感じられない方 結論 巷では、オブジェクト指向プログラミングを特徴づける要素として以下の3つが挙げられる。 ...