강의

멘토링

커뮤니티

Programming

/

Algorithm & Data Structure

オープンソースデータ構造とアルゴリズム in C

Linuxなど代表的なオープンソースで使用される最新のデータ構造とアルゴリズムを扱う講義です。

  • jikim1770
알고리즘
코딩테스트
LinkedList
RedBlackTree#1
binary-search-trees
pattern-matching
C
Algorithm
Linux
gcc
data-structure

学習した受講者のレビュー

受講後に得られること

  • 一般化されたリンクリストの実装

  • レッドブラックツリーとそれを使用した拡張木

  • Flexible Arrayの分析と実装

  • パターンマッチング:BF、KR、SO、MP、KMP、BM

  • 一般化されたアルゴリズムの実装

  • ビット検索アルゴリズム

  • データ整合性チェック(パリティビット、ハッシュ)

図14

オープンソース分析による最新のデータ構造アルゴリズム技術の理解

  • stack,queue,linked list,tree で終わる基本資料の以降を扱います。

  • メモリの最適化と高速化のためのテクニックを扱います。

  • カーネルのように速度とメモリに敏感なシステムで使用するオープンソース内の技術を扱います。

学習内容

図3

セクション(1) Generic Linked List

どのタイプの構造体でも 1 つのリストだけで連結できる container_of を利用した Type 一般化技法を学びます。

セクション (2) Generic Hash

どのタイプのデータでも、O(1)時間で素早く検索できるデュアルポインタを使用したハッシュデータ構造の最新技術を学びます。

図4
図5

セクション (3) Binary Search Tree

バイナリナビゲーションツリーを最初から実装し、再帰呼び出しを利用した自動バランス機能まで学びます。

セクション (4) Red Black Tree

Red Black Treeの挿入/削除プロセスを実装として理解し、RB Treeを発展させた増強ツリーとインターバルツリーまで学びます。

図6
図7

セクション(5) Flexible Array

Flexible Arrayの概念を理解し、それを使用したメモリプーリング技術を実装として学びます。

セクション (6) Pattern Matching

Pattern Matchingの概念を理解し、歴史的に発展してきた代表的なKR、SO、MP、KMP、BM技法を実装で学びます。

図8
図9

セクション (7) Generic Sort

void* を使った一般化されたスワップ手法を扱い、それを使った一般化された sort を学びます。また、関数ポインタを使用した委任の概念も一緒に扱います。

セクション (8) Bit 関連 Algorithm

Bit演算子を使用したさまざまなアルゴリズム(FFS、Hamming weight、Bit Reverse)を実装で学びます。

図10
図11

セクション (9) データ整合性に関するアルゴリズム

歴史的に発展してきたさまざまなデータ整合性アルゴリズム(Parity Bit、Check Sum、CRC)を実装で学びます。

受講前の注意

練習環境

  • オペレーティングシステムとバージョン(OS):Windows 10,11 Ubuntu 18.04、20.04

  • 編集ツール:Windows vscode、Ubuntu VIM、gcc

  • コンパイラ: gcc

学習資料

  • 提供する学習資料の形式(PPT、ソースコード)

  • 授業時にpptを利用した板書を進め、これを授業資料として共有します。

選手の知識と注意事項

  • 本コースを聴くための選手知識:C言語基本、基本データ構造アルゴリズム知識

  • 本講義動画仕様:FPS-60、解像度-1280*720、オーディオサンプルレート-44,100

  • いつでも質問してください。レッスンはオープンソースバージョンのアップグレード時に変更されることがあります。

  • 講義の際に配布される学習資料は授業のみ参考にして無断配布は禁じます。

こんな方に
おすすめです

学習対象は
誰でしょう?

  • C言語関連開発者

  • 基本データ構造アルゴリズムを学び、最新の技術を知りたい方

  • オープンソース関連開発者

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

  • C言語基本およびデータ構造アルゴリズム

こんにちは
です。

858

受講生

107

受講レビュー

12

回答

4.9

講座評価

9

講座

김정인 강사님은 오픈소스가 중요하다며

리눅스 커널 및 딥러닝의 구현 소스를 취미 삼아 매일 분석 하는 오픈 소스 매니아 입니다.

소스를 통해 이해 한다며 무작정 소스 분석으로 모든 원리를 이해하려 하므로

수강 시 소스 폭탄에 주의 해야 합니다.

 

강의문의 : jikim@imguru.co.kr

カリキュラム

全体

69件 ∙ (17時間 15分)

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

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

受講レビュー

全体

10件

4.9

10件の受講レビュー

  • inflearninfosec1600님의 프로필 이미지
    inflearninfosec1600

    受講レビュー 3

    平均評価 3.7

    4

    45% 受講後に作成

    講義自体はとても良いですが、資料構造に初めて接する方がするには適当な講義ではありません。 資料構造とC言語を既に知っているという前提のもと、オープンソース(本講義ではLinuxカーネルを基準とする)と接木させる内容を扱います。 どれくらいのレベルが聞こえるかというと、C言語でリストとツリー程度は白紙状態で一人で何の助けもなく実装できるレベルが聞くのに良いです。 そして.. 星1個を削ったのは.. キーボードの音が声ほど大きいです。これは講義の集中力を乱してしまう非常に大きな要素として機能します。キーボードの音がイヤホンで叩かれることで伝えられるので、講義を聞く間、耳がはがれるほど..

    • berriesbright0j5730님의 프로필 이미지
      berriesbright0j5730

      受講レビュー 5

      平均評価 5.0

      5

      25% 受講後に作成

      上級Cをすべて聴いて受講中です。 単にLinked Listを挿入、削除、修正する概念を学ぶのではなく、 Linked Listの取り扱い方の変化をオープンソースの歴史とコンテキストとともにつかみます。 受講生のレベルに合わせて、あまり難しくないオープンソースの断片を自分で作ったLinked Listと互換性のある部分を通じて、ジェネリックが存在しないCでどのようにtypeに関係なく一般化をさせる方法について様々な技法を学びます。 ただ、資料構造について入門される方が聞くのは適切ではないので、基本的な資料構造に対する理解度を熟知してくるのが良いようです。 それなら、とてもお得な講義になると思います。 ^^ 今後出てくる講師様の多様な講義がさらに期待され、多くの方々が良い講座にも触れていて、上手くいって長い間良い講義が続くことができればいいと思います。

      • wjlee3529님의 프로필 이미지
        wjlee3529

        受講レビュー 1

        平均評価 5.0

        5

        100% 受講後に作成

        • asd704563784님의 프로필 이미지
          asd704563784

          受講レビュー 1

          平均評価 5.0

          5

          87% 受講後に作成

          尊敬しています。

          • abcd123123님의 프로필 이미지
            abcd123123

            受講レビュー 327

            平均評価 5.0

            5

            9% 受講後に作成

            期間限定セール、あと6日日で終了

            ¥61,600

            30%

            ¥10,957

            jikim1770の他の講座

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

            似ている講座

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