テクノベート基礎2:プログラミング基礎

プログラミングを学習できるツールでMITメディアラボのプロジェクトでスクラッチというものがある。

エンジニアではない我々がコードが書けるようになる必要は必ずしも必要というわけではないが、企画・運営に知識として必要になってくる。

2017年の世界長者番付
・1位:ビル・ゲイツ(Microsoft創業者)
・3位:ジェフ・ベゾス(AmazonCEO)
・5位:マーク・ザッカーバーグ(FacebookCEO)
・7位:ラリー・エリソン(oracle)

となっており、自らコードがかけるエンジニアである。

コンピュータの構造
主に下記5つからなっている
・(1)入力装置
・(2)演算装置
・(3)制御装置
・(4)主記憶装置
・(5)出力装置

画像1

(2)の演算装置と(3)の制御装置はコンピュータの頭脳で、中央演算処理装置(CPU)と呼ばれている。

コンピュータとプログラムの関係

プログラムは人間がコンピュータへ指示を出すため、プログラミング言語で書かれているものだが、コンピュータは1と0の羅列からなる機械語しか理解ができない。なので、人間とコンピュータの会話を成立させるために、コンパイラやインタプリタという通訳が必要。

画像2

※わたしのイメージ ↑↑↑

・プログラミング言語=人間が理解できる言語
・機械語=コンピュータが理解できる言語

先述したCPUは数億個のスイッチとなっており、1と0の信号を大量に処理している。

正しいプログラミングのコツ

アルゴリズムは人間がわかるように手順を示せばよいものだが、プログラムはコンピュータへの指示書なので、100%正しく書かなければいけない。

コツとしては下記3つ

・Definitioin(定義づけ)
→プログラムが動く前提条件を正しく定義(ex.IDと連動したスマホの背景の設定)
・Correctness(正当性)
→計算の結果や処理の順番が正しいこと(ex.電車の出発地、到着地、時間入力で順番通り表示させること)
・Case Coverage(網羅性)
→起こりうる状態の場合分けをすべて網羅されていること(ex.入力キーワードとして、トウキョウ、をいれたら、東京、トウキョウ、トーキョー、TOKYOなどと打っても出てくること)

プログラミングの宣言

・配列
同種類のデータを一グループにしたもの。プログラマがわかりやすく記載したもの。個々のデータに0から始まる添え字が連番で着く。
 ex.X(i)とすると、配列Xの添え字iの位置にある値を指している
・変数
動作の途中で一時的に記憶する入れ物のこと。一度に一つの値が記憶される。
 ex.変数αに1を代入する ⇒ α=1 と書く
・関数
一連の処理を独立した機能として定義したもの。必要に応じて呼び出し実行できる。膨大なプログラムを見やすくし、ミスを防ぐことができる。またモジュールともいわれている。オープンソースでもある。

プログラムの3つの基本構造

・順次
上から下へ流れる処理
・選択
指定した条件により、2つ以上の処理から1つを選択する構造
・反復
ある条件が満たされている間、同じ処理が繰り返される構造