CodeGym /Java Blog /ランダム /21 世紀の労働者のための成功への規範と重要なスキル。計算的思考とは何ですか?
John Squirrels
レベル 41
San Francisco

21 世紀の労働者のための成功への規範と重要なスキル。計算的思考とは何ですか?

ランダム グループに公開済み
CodeGym が (少なくとも私たちの目には) Java でコードを書く方法をゼロから学ぶのに最適なオンライン コースである理由は数多くあります。綿密に計画されたコース構造、実践第一のアプローチ、膨大な数のタスク (1200 以上)、エキサイティングで面白いストーリーテリングなどですソーシャル機能など。しかし、私たちは学生の成功を支援するためにさらに努力することが、CodeGym を最高のものにしていると考えています。私たちの使命は、Java を学習し、その後 (またはコースの途中で) コーディングの仕事を見つけるのを支援するだけではなく、適切な知識と情報を提供して、個人的および専門的な開発をサポートすることです。 「成功への規範」と「21世紀の労働者のための重要なスキル」。 計算的思考とは何ですか?  - 1

計算的思考とは何ですか?

Computational Thinking (CT) は、業界の専門家が「成功への規範」および「重要なスキル」と呼ぶ概念です。比較的単純ではありますが、CT は単なるソフトウェア プログラミングをはるかに超えて役に立ちます。この用語は、1980 年に数学者でコンピューター科学者のシーモア パパートによって、プログラミング関連のさまざまな問題やタスクをより効率的に解決する方法として初めて提案されました。計算論的思考は、複雑な問題を扱いやすい一連の小さな問題に分解すること、および問題の本質と解決策をコンピューターが実行できる方法で表現することを含む一連の方法です。簡単に言うと、特定の問題を解決するようにコンピュータに教えるためのコーディングを開始する前に、通常は自分で問題を理解し、解決策を見つけ、そしてそれを処理する方法をコンピュータに教えて初めてです。計算的思考はこのプロセスをより速く、より簡単にするための方法ですが、プログラミングだけに限定されるものではなく、私たちの生活のさまざまな部分に適用できます。この概念が導入されたのは 1980 年に遡りますが、コロンビア大学のコンピューター サイエンス教授ジャネット ウィングが、すべての人が持つべき基本的なスキルの 1 つとして CT を学校カリキュラムの一部にすることを提案して以来、計算論的思考が大衆の注目を集め始めています。 。

計算論的思考はどのように機能するのでしょうか?

技術としての計算論的思考は、分解、一般化/抽象化、パターン認識/データ表現、アルゴリズムの 4 つの主要な手法で構成されます。これらはすべて同じように重要であり、正しい順序で (問題に) 適用すると効果的です。

  • 分解。

まず分解から始めます。分解とは、問題を 1 つずつ解決しやすい多数の小さな問題に分割することです。

  • 抽象化(一般化)。

次に、特定のタスク/問題に進み、それを解決するために重要な情報のみに焦点を当て、残りはすべて無視します。

  • パターン認識 (データ表現)。

次のステップでは、現在取り組んでいる問題と、以前に解決された (解決策が利用可能な) 他の問題との間の類似点を探します。目標は、現在のタスクに適用できるパターンを見つけることです。

  • アルゴリズム。

そして最後に、これまでのステップを適切に適用した結果を基に、段階的に問題を解決するためのアルゴリズムを開発します。その後、アルゴリズムはコンピューター (または人生におけるタスクを解決する究極のコンピューターである脳) によって実行されます。

計算論的思考の使用

大多数のソフトウェア開発者が定期的に取り組んでいる問題やタスクに対処するときに CT を使用する方法を知ることは、コーディングのキャリアを通じて非常に役立ちます。「コンピューターサイエンスはコンピュータープログラミングではありません。コンピューター科学者のように考えることは、コンピューターをプログラムできる以上の意味を持ちます。複数の抽象レベルで考える必要があります。計算的思考とは再帰的に考えることです。並列処理です。コードをデータとして解釈し、データをコードとして解釈します。次元解析の一般化としての型チェックです。それは、別名を付けたり、誰かや何かに複数の名前を付けることの利点と危険性の両方を認識しています。間接アドレス指定とプロシージャ呼び出しのコストと能力の両方を認識しています。プログラムの正確性や効率性だけでなく、美しさでも判断されます。ジャネット・ウィングは 2006 年の論文で、計算論的思考を学び、それをすべての大学新入生に教えることの重要性について説明しています。ご覧のとおり、計算論的思考はプログラマーやコンピューター科学者だけを対象としたものではありません。この言語は、あらゆる種類の職業の人々によって、仕事関連の問題を解決するためと日常生活の両方で (多くの場合無意識に) 使用されています。 ここでは、コーディング タスクや、私生活で対処する可能性のあるほとんどすべての深刻な問題 に、計算論的思考を適用し始める方法についての簡単なガイドを示します。

  • 分解を適用します。

分解は非常にシンプルですが強力なテクニックであり、一見すると複雑すぎるように見えるため、先延ばしやその他の困難を引き起こすことが多い問題やタスクに対処するのに役立ちます。ここで重要なのは、分解を定期的に使用できるように脳を訓練し、タスクを解決しやすい多数の小さなタスクに分割することです。分解は非常に単純で明白な方法のように思えるかもしれませんが、分解を知らない人がいかに多いかに驚くでしょう。そのため、大きなグローバルなタスク (Java の学習など) に取り組み始めることが非常に困難になっています。例えば)。

  • 抽象化を適用する。

抽象化の適用方法を知ることは、そのテクニックを知っていて、それを無意識に使えるように脳を訓練していれば、強力な能力となります。抽象化とは、他のすべてを無視して、タスクを解決するために必要な情報のみに焦点を当てることです。分解と組み合わせて使用​​すると、基本的には人生のほぼすべての問題や課題にアプローチできる方法です。厳密にプログラミングされたタスクを扱う場合、抽象化は集中力を高め、脳がすぐに消耗するのを防ぐのに役立ちます。

  • パターン認識を適用します。

パターン認識は、脳が使い慣れていて使いやすい思考パターンを適用することで、タスクをより速く解決できるため、コーディングにおいて非常に重要なスキルです。これは、生活全般の問題に適用する強力なテクニックでもあります。生活の中で直面している問題を分析し、生活の中で満足のいくパターンを見つけて(借用し)、それを現在の問題に移してみてください。

  • アルゴリズムの適用。

考えてみると、私たちの生活はすべてアルゴリズムの形成にかかっています。私たちはそれらを習慣と呼びます。私たちの脳は、より効率的で実用的であるという理由だけで、毎日習慣に依存する傾向があります。唯一の問題は、私たちのほとんどが無意識のうちにこれを行う傾向があり、その結果、間違った有害なアルゴリズム(私たちはそれらを悪い習慣または依存症と呼びます)を形成してしまうことがよくあることです。有用なアルゴリズムを意識的に形成する方法を知ることは、非常に有益なライフ スキルとなり、目標を達成し、成功することができます。プログラミングに関して言えば、最も迅速かつ効率的な方法で特定の問題を解決するためのアルゴリズムを作成する方法を知っているかどうかが、コーディング方法を知っているだけの人と経験豊富なプロのコンピューター プログラマーを区別するものです。

専門家は何と言っていますか?

結論として、コンピュータ サイエンスの著名な専門家が計算論的思考について述べていることは次のとおりです。アイルランドのメイヌース大学教授であり、『教育におけるコンピューター思考: どこに当てはまりますか?』の著者であるジェームズ・ロックウッド氏とエイダン・ムーニー氏によると、報告書では、計算的思考は「21世紀の労働者にとって不可欠なスキルである」と述べています。「学校で CT と CS (コンピューター サイエンス) の両方を教えることについて多くの研究が行われていますが、多くの 3 レベルの生徒はこれらの概念に触れたことがないでしょう。CS 学生と非 CS 学生の両方が優れた問題解決スキルを持っていることが重要であり、CT はこれに大きなメリットをもたらします。さまざまな方法が提案されていますが、CS 学生と非 CS 学生の両方を対象とした非必須の CT コースが特に効果的で有用な方法であるようです。これには行政と教職員の両方からの支援が必要ですが、このセクションとセクション 7 の両方に記載されている利点は、関係者全員にとって有益である可能性があることを示しています。大学で CT を教える方法も多岐にわたりますが、ほとんどの共通点はより実践的なものです。ディスカッション主導のコースであり、これらの方法のほとんどは成功しているようです。おそらく、CS の学生は「従来のプログラミング」への移行が容易になるため、この恩恵を受けると考えられます」と専門家は言います。英国の著名なテクノ専門家兼起業家であるコンラッド・ウルフラム氏も、大学で計算論的思考を教えることを提唱しています。はそれを「成功への規範」とさえ呼んでいます。「計算論的思考は成功への規範です。コンピュータベースの問題解決プロセスは、現実生活の課題に対処する上で非常に強力であるため、教育の中核となるべきです。少なくとも、あなたも私と同じように、教育の基本的な目的は、あらゆる種類の問題に対する最も効果的な解決策を見つけて私たちの生活を豊かにすることにあるということに同意するのであれば。」どう思いますか?計算論的思考は、人生の中でもっと実践すべきことだと思いますか? 以下のコメントセクションでご意見をお聞かせください。
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION