ナカナカピエロ おきらくごくらく

写真付きで日記や趣味を書くならgooブログ

踊る大掃除線

2020-04-22 20:38:22 | 日記
踊る大掃除線

今日は水曜日。晴れのちにわか雨。

5時起床。

朝食を食べ、新型コロナウィルスの報道番組を観て、6時半~在宅勤務開始。

とりあえず、今までもやもやと考えていたアルゴリズムの考え方を整理するため、

ブログに記事を書いて切り出し投稿。

その後は、今日もポリア著の「いかにして問題をとくか」から読書。

「C言語ではじめるRaspberry Pi徹底入門」「教養としてのコンピューターサイエンス講義」

「データサイエンスのためのデータベース」を読書。

その後、バスマットを干したり、布団を干したり、トイレ掃除などを気晴らしにした。

ここで午前中の在宅勤務終了。

午後、12時半過ぎに、Alicia-san訪問。一緒にお昼ご飯を食べて、その後、色々と

Alicia-sanがお掃除してくれて、それに対応し始めたら、どんどん深入りしていき、

最終的には家をごった返すぐらいの大掃除になってしまった。

午後はとても在宅勤務しているといった内容ではない。しかも途中から頭痛が酷くなって。。。

まあ、しようがない。。。働いていたということにしてしまおう。で、午後の在宅勤務終了。

夕飯を食べて、Alicia-sanを19時過ぎに見送って、おつかいして帰宅。

ちょっと色々とあって、疲れた。。。風呂に入って寝る。

明日、明後日は真面目に在宅勤務せねば。。。

土曜日は畳の張替えの見積もりに業者が来る予定 with Alicia-san。

【今後の予定】
05月28日~05月29日  某電機メーカー子会社の新人研修サブ講師
06月01日~06月03日  某電機メーカー子会社の新人研修メイン講師
06月05日          某電機メーカー子会社の新人研修メイン講師
06月08日~06日12日  某電機メーカー子会社の新人研修メイン講師
06日15日~06日16日  某電機メーカー子会社の新人研修メイン講師

【やることリストのタスク】
・組込みエンジニア向けC言語入門(未定)
・某電機メーカー子会社の新人研修Java

【今日の読書】
スッキリわかるSQL入門 第2版 ドリル222問付き! (スッキリシリーズ) 中山清喬(SQL基礎演習講座の教科書)
スッキリわかるJava入門 第3版 (スッキリシリーズ) 中山清喬(某電機メーカ新人研修の教科書)
入門Verilog HDL記述―ハードウェア記述言語の速習&実践 (Design wave basic) 小林 優(P.55/250読了)
瀕死の統計学を救え! ―有意性検定から「仮説が正しい確率」へ― 豊田 秀樹
教養としてのコンピューターサイエンス講義 ブライアン・カーニハン(P.243/484読了)
新版 情報幾何学の新展開 (SGCライブラリ) 甘利 俊一(P.5/222読了)
数学原論 斎藤 毅(P.9/339読了)
C言語ではじめるRaspberry Pi徹底入門 菊池 達也(P.164/350読了)
いかにして問題をとくか G. ポリア(P.90/245読了)
データサイエンスのためのデータベース (データサイエンス入門シリーズ) 吉岡 真治(P.95/146読了)
ゼロから作るDeep Learning ❸ ―フレームワーク編 斎藤 康毅
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

アルゴリズムを考える ~プログラミング・ピエロ~

2020-04-22 07:54:37 | 日記
アルゴリズムを考える ~プログラミング・ピエロ~

コンピュータとは究極ただの計算機である。

計算機とは何かと問えば、そこにはデータがあり、そのデータを入力として計算し、

結果を出力する機械である。

そこには様々なアイデアの命が吹き込まれ、現在のコンピュータがある。

しかしその中核部分※は変わってはいない。

※ノイマン型コンピュータを指す。
 量子コンピュータやGPUなどの並列計算機は、ちょっと脇に置いておく。

その根底にあるコンピュータアーキテクチャの基礎となる言語は機械語、つまり

アセンブラ言語である。まずはこれを理解することをお勧めしたい。

私は情報処理技術者試験になおアセンブラ言語(CASLⅡ)が残っていることを

評価している。

しかしながらアセンブル言語に基づいてプログラムを書く人はごく限られている。

今や多くの所謂、高級と言われるプログラミング言語は濫立している。

手続型言語(オブジェクト指向言語)が確立されて、多くの有用なる機能は

モジュールされパッケージとして提供され、このパッケージに対して、

より多くの知識を有する者が、プログラマとしてもてはやされ、プログラミングを

学びたいという人たちが、この膨大なパッケージ情報の大海の中に放りだされて

それに飲み込まれて食傷気味となり、プログラミングとは格なるものかと諦念し

その入り口すら入れずに、この分野を去る者も多いだろう。

ここで話すことは、もっと原始的な我々の思考に直結したアルゴリズムの話である。

それはある種、数学の問題を解くのに似ている。

ある提言された問いに対して、仮定や条件を繰り込みながら演繹的に論理を積み重ね、

時に帰納的、再帰的に論理を繋いでいき、数式を組み立てるがごとく、

プログラミング言語においてアルゴリズムを考えていくのである。

ここには煩雑な知識に寄らず、純粋に論理的思考のみを楽めるという点において

数学に近しい。

ただアルゴリズムにおける仮定はデータにあり、演繹的な論理構造もごく限られている。

プログラムを組むにあたっては、構造化定理というものがあり、3つの演繹手法で

賄えることが知られている。

順次(sequence)、選択(ifthenelse)、反復(whiledo)である。

それにプログラミング言語では数学と同様に変数というものがある。

これは事前に定まっていない不定なデータに対して、仮に変数を割り当てられることを

意味する。計算機なので、最終的には実行時に変数は具体的な値に置き換わるが、

この変数の導入によって飛躍的に数学的思考の近しい自由度が与えられたと言ってもよい。

この変数の導入によって論理的には(物理的にはとは言っていない)上限を仮定した

可算無限を扱えるようになったと言える。

また論理的には(物理的にはとは言っていない)十分な微小区間による有限の点の集まり

によって実数への近似が可能となっている。

かようにして数学的思考によりアルゴリズムを考えることが可能となるのである。

とりあえず疲れたので、一旦ここで筆を置く。

~@データ構造とアルゴリズムの講義内容を考え中~
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする