inflearn logo
知識共有
inflearn logo

コンピューティング思考(第2部)- ソフトウェアによる問題解決

読み書きや計算と同様に、AI時代を生きる誰もが必ず身につけるべき能力が、コンピューティング・シンキング(計算論的思考)能力である。コンピューティング・シンキングとは、簡単に言えば、プログラマーのように考えること、あるいはコンピュータ科学者のように考えることと定義できる。本講義は、大学で実際に行われている1学期分の講座をそのまま収録したものであり、プログラミングに初めて触れる人や、コンピュータを専攻しようとする初心者に必要不可欠な内容を扱っている。また、本講義を通じて、コンピュータを専門としない人や人文学を背景に持つ人が、専門プログラマーと円滑に意思疎通するための能力を身につけることができる。AIバイブコーディングのためにプロンプトを学ばなければならない時代においても、コンピューティング・シンキングを通じて、AIにより正確かつ効果的に指示を出す能力を養うことができる。

難易度 初級

受講期間 12か月

Algorithm
Algorithm
software-design
software-design
Business Problem Solving
Business Problem Solving
Algorithm
Algorithm
software-design
software-design
Business Problem Solving
Business Problem Solving

受講後に得られること

  • プログラマーやコンピュータ科学者のように考える方法を身につけることができる。

  • 初めてコーディングを始める入門者が、コンピューティング思考に親しむことができる。

  • さまざまな分野にコンピューティング思考を取り入れ、問題解決ができる。

  • プログラミング言語の文法ではなく、コーディングのための基礎概念を学べる。

プログラミング(コーディング)を初めて学ぶ前に必ず受講すべき講義

  • 人文系出身で、プログラミング(コーディング)に関する基礎教養を身につけたい初心者に適した講座

  • プログラミング分野の予備知識はないものの、バイブコーディングを始めてみたい入門者に必要な講義

  • プログラミング言語の文法を学んだことはあるものの、コーディング分野に踏み出せずにいる人に必要な講義

  • コンピューティング思考(第2部)を受講する前に、コンピューティング思考(第1部)を先に受講するのがおすすめです!!

大学の講義をそのまま移しました

コンピューティング思考の講義をぜひ受講すべき人は誰でしょうか?

  • 本講義は大学の1学期分の講座(第1部と第2部の両方を含む場合)をそのまま移したものであり、プログラマーやコンピューターサイエンティストのように考える方法を学びます。

  • プログラミングに初めて触れる人や、コンピューターを専攻しようとする初心者にとって、必須の内容を扱っている。

  • 非専攻者や人文科学を背景に持つ人々が、プロのプログラマーと円滑にコミュニケーションを取るための概念を、例を挙げながらわかりやすく説明しています。


本講義で参考にした教材

学習内容 📚

セクション(1) 第7章 データ構成

  • 変数の命名の重要性について理解する。

  • メモリ上でデータがどのように構成され、保存されるのかを理解する。

  • リストが配列としてメモリに保存される際に、インデックス付け(indexing)が使用される方法を理解する。

  • リストを追加または削除するのに便利な連結リストが実装される際に、連結(linking)がどのように使用されるかを理解する。

  • 道路網、電車路線、航空路線などでグラフが使われる例を見てみる。

  • グラフを数学的に定義し、メモリ上に実装してみる。

  • 木を定義し、木が使用されるさまざまな例を見てみる。

セクション(2) 第8章 データ処理

  • フォン・ノイマン型プログラム内蔵方式コンピュータの構造を理解する。

  • フォン・ノイマン構造がセルベースのスプレッドシートの動作方式と類似していることを理解する。

  • セルベースのスプレッドシートにおける算術演算、計算式、関数などがプログラミングの原理と類似していることを理解する。

  • メールアドレスや日付表記などの文字列が、プログラムで処理される仕組みを理解する。

  • 文字列におけるさまざまなパターンと、さまざまなパターン規則について見ていく。

  • さまざまなパターンを正規表現で表す方法を理解し、それを活用してみる。

セクション(3) 第9章 ソフトウェアの検証と確認

  • コンピュータでエラーが発生する理由について理解する。

  • ソフトウェアの設計および実装が、建築設計および施工と類似していることを理解する。

  • ソフトウェアの正確性検証と建築監理のための手順が類似していることを理解する。

  • ソフトウェアのための要件、設計検証および製品確認について理解する。

  • AIバイブコーディングの利点と限界を理解し、レビューと検証が必要であることを理解する。

  • ソフトウェアの検証および妥当性確認にソフトウェアテストを使用する理由と、テストの限界を理解する。

  • ソフトウェアテストのために文書、シナリオ、テストケース、テストレポートが必要であることを理解する。

  • ソフトウェアテストにおけるブラックボックステストとホワイトボックステストの違いについて理解する。

  • ブラックボックステストとホワイトボックステストのさまざまな詳細な例を見ていく。

セクション(4)第10章 計算の限界

  • コンピュータの性能向上とムーアの法則の物理的限界について理解する。

  • 計算性能は、記憶容量と処理速度によって定義できることを理解する。

  • マルチコアプロセッサの性能が向上し続けることが難しい理由を理解する。

  • コンピュータの性能を測定するためにベンチマーキングが使用される例を見てみる。

  • アルゴリズムの性能評価方法と、線形検索と二分検索(ソートを含む)の性能差について理解する。

  • アルゴリズムの時間計算量と、非実用的な(指数時間)アルゴリズムについて理解する。

  • 非実用的な古典アルゴリズムが、量子コンピュータでは実用的な解法として存在し得ることを理解する。

  • 停止問題のように、決して解決できない計算不可能なアルゴリズムが存在することを理解する。

  • 人工知能に関連して、チューリングテストとCAPTCHAが測定しようとしているものが何かを理解する。

セクション(5)第11章 同時行動

  • サッカートーナメントにおけるサッカーの試合を実行プログラム、サッカー場の数をCPUの数にたとえることができる。

  • サッカー場にそれぞれの試合を割り当てることが、CPUスケジューリングにおける同時実行性に類似していることを理解する。

  • 一度に多くの皿を回すことが、コンピュータにおける並列性と同時性の概念に似ていることを理解する。

  • ソーティングネットワークが動作する過程を通じて、並行性を利用した性能向上の方法を理解する。

  • 並行実行を妨げる基本的な制約(依存関係と競合状態)を理解する。

  • 性能改善のための同時性の可能性と、共有資源がどのように同時性を制約するのかを考察する。

  • 競合状態(TOCTOU)がどのようにエラーを引き起こすのかを理解する。

  • デッドロック(deadlock)とライブロック(livelock)の状況を認識し、説明できる。

セクション(6) 第12章 情報保護

  • セキュリティの構成要素およびサイバー犯罪(マルウェア、個人情報盗用、フィッシングなど)の一般的な形態について理解する。

  • 認証技術と個人認証がどのように機能するかを理解する。

  • 暗号学的概念(対称鍵暗号、公開鍵暗号、署名、メッセージ認証、証明書など)について理解する。

  • セキュリティ侵害の緩和戦略(ファイアウォール、ウイルス対策ソフトウェア、ソフトウェアの更新、バックアップ、ログなど)について理解する。

  • 攻撃緩和戦略(弱い接続部の保護、攻撃対象領域の縮小、徹底した防御、区画化など)の基本的なセキュリティ原理を認識し、適用できる。

  • オープンソースソフトウェアのような開放性が、どのようにセキュリティに貢献するのかを理解する。

受講前の参考事項

前提知識および注意事項

  • 高校課程のn次関数および指数関数のグラフについて理解していると、大いに役立ちます

  • 講義動画の品質(音質・画質)が十分ではないため、今後更新される可能性があります

  • 疑問点は質問/回答を通じて確認できます

こんな方に
おすすめです

学習対象は
誰でしょう?

  • コンピューティング分野の必須概念を身につけたい初心者または非専攻者

  • プログラミングに初めて触れるものの、将来的にバイブコーディングのための基盤を築きたい初心者

  • ビジネスシナリオを実装するプログラマーたちと円滑なコミュニケーションを望む非専攻者

前提知識、
必要でしょうか?

  • 特別な基礎知識は必要ありませんが、コンピューティング思考に対して柔軟な考え方ができること(コンピューティング思考 第1部の受講が必要)

こんにちは
strandkingsです。

キャリア認証

102

受講生

18

受講レビュー

4.9

講座評価

2

講座

e-mail: strandnero@gmail.com

ベンチャー、サムスン電子、ETRI勤務/ 米国シリコンバレーおよびロンドンIT企業勤務/ 17年間インソウル大学教授(コン工学科)

システムソフトウェア/Linuxオペレーティングシステム/コンピュータセキュリティ/インターネット通信/モバイルコンピューティング/移動通信網/ネットワークセキュリティ/モバイルセキュリティ/量子コンピューティング/量子通信/量子暗号

もっと見る

カリキュラム

全体

25件 ∙ (14時間 12分)

講座資料(こうぎしりょう):

授業資料
講座掲載日: 
最終更新日: 

受講レビュー

全体

8件

5.0

8件の受講レビュー

  • pk30000002371님의 프로필 이미지
    pk30000002371

    受講レビュー 5

    ∙

    平均評価 5.0

    5

    33% 受講後に作成

    • phc93142856님의 프로필 이미지
      phc93142856

      受講レビュー 5

      ∙

      平均評価 5.0

      5

      33% 受講後に作成

      • jucicoola1462님의 프로필 이미지
        jucicoola1462

        受講レビュー 14

        ∙

        平均評価 5.0

        5

        63% 受講後に作成

        • jy07533212님의 프로필 이미지
          jy07533212

          受講レビュー 5

          ∙

          平均評価 5.0

          5

          17% 受講後に作成

          • supee12296306님의 프로필 이미지
            supee12296306

            受講レビュー 3

            ∙

            平均評価 5.0

            5

            100% 受講後に作成

            strandkingsの他の講座

            知識共有者の他の講座を見てみましょう!

            似ている講座

            同じ分野の他の講座を見てみましょう!

            新規会員登録で25%OFF

            ¥6,520

            25%

            ¥8,700