4月17日(金)アルゴリズム基礎研修(1日目)

皆様、こんにちは。

 

本日から2日間は、「アルゴリズム基礎研修」の単元に入ります!

アルゴリズム」は処理の手順を漏れなく表現したもので、

プログラミングをする前の「設計」段階で必要となるものです。

 

f:id:insblog:20200417190510p:plain

 

これから本格的にプログラミングを行っていきますが、

その前に、「全体でどんな処理を行うか」設計しておくことがとても重要になります。

誰もがわかるアルゴリズムを書けるように、訓練していきましょう。

 

 

では、まず講義に入る前に、1分間プレゼンテーションの時間です。

今日の自己紹介プレゼンテーションは2名に担当していただきました。

 

f:id:insblog:20200417190543p:plain

 

特に、初めて説明する言葉について、「一言でいうと○○です」と言い換えたり、

「自分の趣味がいかに面白いか」を語ったりするなど、

最後を飾るにふさわしい、論理的で分かりやすいプレゼンテーションでした。

 

皆さん一人ひとりに発表していただきましたが、

日を追うごとに相乗的にプレゼンテーションスキル、

フィードバックするスキルが上がっているようでしたね。

 

 

そして、講義に入ります。

現場に配属されると、まずは既存のシステムの処理や、

プログラムを理解する力が求められますが、

処理の仕組みがきちんと理解できるようになるために、

アルゴリズムの知識は基本の基本になります。

 

自動販売機で、飲み物を買うときのアルゴリズムは?」

「もし買いたいものが売り切れていたら?」

まずは身近な例から、考えていきました。

処理の「流れ」をかけるように、概念を一つひとつ理解していきましょう。

 

f:id:insblog:20200417190612p:plain

 

午後は、「複数の値から最小値をを求めるには、どんな処理をするか」

「繰り返し処理をするには、どんなアルゴリズムにするか」

といった問題を自分で解いて、ブレークアウトセッションで、3人1組になり、

考え方を共有します。

 

ブレークアウトセッションをいくつか覗いてみました。

 

 

それぞれの書いたものを見てみると、同じ問いを見ているにもかかわらず、

一人ひとり書き方が違います。

 

自分のアルゴリズムを見せ合った後、

「こういう書き方をすると、効率的なアルゴリズムになるのか…新しい!」

「この処理を入れるのを忘れていたな」と、さまざまな発見もあった様子。

 

お互いにレビューをしあうと、より効率的で簡潔なアルゴリズムのポイントが

わかるのでとても良いですね。

 

f:id:insblog:20200417190640p:plain

 

講師も、ブレークアウトセッションを見て回りながら、

気づいた点をフィードバックします。

受講者のなかで、分かりやすいアルゴリズムを書いた人に、

どんな論理になっているかも紹介してもらうシーンもありました。

 

なかには、理解に苦しみながらも、なんとか書いてみた、という人もいました。

(一年前の自分を思い出します…)

プログラミング言語によって、比較演算子の書き方にもルールがあります。

SQLを書くときとは演算子が違うので、混同しないように

しっかり覚えておきましょう。

 

配列、変数の初期化などプログラミングに慣れていない人にとっては、

難しい概念が多いかもしれませんが、着実にエンジニアへの道を歩んでいます。

 

引き続き、外出自粛の週末を迎えますが、しっかり基本を復習して、

来週から学ぶことになる、難易度の高いアルゴリズムに臨んでいただきたいですね。

 

今週もお疲れさまでした!