강의

멘토링

커뮤니티

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言語基本およびデータ構造アルゴリズム

こんにちは
です。

847

受講生

98

受講レビュー

12

回答

4.9

講座評価

9

講座

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

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

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

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

 

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

カリキュラム

全体

69件 ∙ (17時間 15分)

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

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

受講レビュー

全体

10件

4.9

10件の受講レビュー

  • inflearninfosec1600님의 프로필 이미지
    inflearninfosec1600

    受講レビュー 3

    平均評価 3.7

    4

    45% 受講後に作成

    The lecture itself is very good, but it is not a suitable lecture for those who are new to data structures. It assumes that you already know data structures and the C language, and covers the contents of integrating them with open source (this lecture is based on the Linux kernel). The appropriate level for listening is the level where you can implement lists and trees in the C language on your own from scratch without any help. And.. the reason why I took off 1 star is that.. the keyboard sound is as loud as the voice. This is a huge factor that breaks the concentration of the lecture. The keyboard sound is transmitted through the earphones, so my ears were sore while listening to the lecture.

    • berriesbright0j5730님의 프로필 이미지
      berriesbright0j5730

      受講レビュー 5

      平均評価 5.0

      5

      25% 受講後に作成

      I am currently taking Advanced C. It is not simply about learning the concepts of inserting, deleting, and modifying Linked Lists, but it also explains the changes in how to handle Linked Lists along with the history and context of open source. Through a part where it is compatible with a Linked List that is not too difficult and is suitable for the level of the students, you will learn various techniques on how to generalize regardless of type in C, where generics do not exist. However, it is not suitable for those who are new to data structures, so it would be good to come with a basic understanding of data structures. If so, I think it will be a very useful lecture. ^^ I look forward to the various lectures that the instructor will give in the future, and I hope that many people will take good lectures and do well so that good lectures can continue for a long time.

      • wjlee3529님의 프로필 이미지
        wjlee3529

        受講レビュー 1

        平均評価 5.0

        5

        100% 受講後に作成

        • asd704563784님의 프로필 이미지
          asd704563784

          受講レビュー 1

          平均評価 5.0

          5

          87% 受講後に作成

          I respect you.

          • abcd123123님의 프로필 이미지
            abcd123123

            受講レビュー 326

            平均評価 5.0

            5

            9% 受講後に作成

            ¥10,953

            jikim1770の他の講座

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

            似ている講座

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