Skip to content

Brilliant (✘) ​

중단


0 zap
0일 연속 진행중
총 42개 강의 완료

Computer Science Foundations ​

컴퓨터 과학의 핵심 아이디어에서 시작하여 알고리즘과 신경망으로 진행합니다.

Computer Science Fundamentals ​

15100 %
Ancient Search Technology ​

사서는 책을 저자, 제목, 주제별로 찾을 수 있는 방법이 필요했습니다. 하지만 책장에서 책은 한 가지 방법으로만 정렬할 수 있습니다. 사서들은 이 문제를 해결하기 위해 수세기 전에 한 방법을 만들어 냈습니다. 바로 카드 카탈로그를 이용하는 것입니다.

alt
출처 : Brilliant

카드 카탈로그의 색인 카드는 해당 책을 빠르게 찾을 수 있는 번호를 포함해 책에 대한 모든 주요 정보를 포함하고 있습니다. 만약 카드를 저자별로 묶어놓는다면 우리가 톨스토이의 책을 찾으려고 할 때 빠르게 찾을 수 있습니다. 저자에 따른 정렬만이 아니라 제목, 출판일 등등 도서관을 이용객에게 중요한 정보별로 어떤 것이든 이용할 수 있습니다.

일반적으로 컴퓨터를 이용해 아주 많은 양의 데이터를 검색해야할 때, 아래 두 가지 방법 중 하나를 수행하게 됩니다.

  • 모든 데이터를 하나씩 탐색하는 것. 컴퓨터는 이 작업을 아주 빠르게 수행할 수 있습니다. 특히, 병렬로 작업을 수행할 때요.
  • 별도의 목록을 탐색하는 것 - 즉, Index - 유용한 순서로 정렬돼있습니다. 마치 카드 카탈로그처럼요.
Where Should We Put Books? ​

또 다른 문제

만약 책장에 책이 꽉 차있는데, 중간에 다른 책을 추가해야한다면? 많은 책을 움직여야 합니다.

이 문제를 해결하기 위해 사서들은 책장에 추가적인 공간을 남겨두는 방식을 사용합니다.

하지면 여전히 문제는 존재합니다. 남겨둔 공간이 낭비되는 것이죠.

Who Cares Where We put the Books? ​

공간을 절약할 수 있는 또 다른 현대적인 방법이 있습니다.

책을 아무곳에나 두는 겁니다. 컴퓨터 시스템만이 책의 장소를 기억하는 거죠.

Naming ​

이 것이 우리 시스템의 주요 문제점입니다. 이름을 알기 위해서는 이름을 알아야합니다.

Beemesh 시스템은 모든 디바이스가 생산될 때부터 central authority의 주소를 알도록 했습니다. 컴퓨터가 제일 처음 Beemesh에 연결될 때 이미 TOWN-HALL의 주소를 알고 있게 되는 것이죠.

사실, 이건 인터넷이 작동하는 방식과 매우 흡사합니다. 우리의 컴퓨터는 인터넷에 연결되기 전부터 central naming authority의 주소를 알고 있습니다.

Abstraction ​

시청의 컴퓨터를 작동시키는 비용은 1시간에 2센트입니다. 이 계산에 따르면 Sophia의 느린 Python 프로그램을 900번 돌리는 비용은 35센트입니다.

Sophia의 시급은 50달러입니다. 그리고 Sophia가 더 빠른 알고리즘으로 프로그램을 개선하는데는 2시간이 걸립니다.

프로그램 개선이 더 저렴한 방법이 되기 위해서는 프로그램을 몇번이나 돌려야할까요?

Interfaces ​

Jing 시장의 요청을 수행하기 위한 3가지 다른 방법을 알아봤습니다. 하지만 Jing 시장의 입장에서는 이 셋이 모두 같은 Interface를 가지고 있었습니다. 그녀는 항상 Records Office를 통해 Fire Department 메모들을 요청했을 뿐이었습니다.

Jing 시장에게서 감춰진 영역이 있어서 신경쓰이게 하지 않고 다른 방법을 사용하도록 바꿀 수 있었습니다. 인터페이스에서 중요한 부분 중 하나입니다.

Algorithm Fundamentals ​

1774 %

Building Blocks ​

Pseudocode ​
Conditional Algorithms ​
Manipulating Numbers ​
Repetition ​
Arrays ​

Array Algorithms ​

Searching an Array ​
Sorting an Array ​
Insertion Sort ​

Selection Sort는 정렬되지 않은 영역을 반복적으로 스캔해 swap을 최소화 합니다.

Insertion Sort는 필요하지 않은 스캔을 줄이고 대신 swap 횟수를 늘립니다

The Speed of Algorithms ​

Timing Programs with a Stopwatch ​
Counting Operations ​
Best, Worst and Average Case ​
Comparing Algorithms ​
Understanding Big O ​
The Mathmatcis of Big O ​

Stable Matching ​

The Stable Matching Problem ​
Using Greediness ​

Deferred Acceptance Algorithm ​

Correctness ​

Termination ​

Running Time ​

Variants ​

  • Gale-Shapley 알고리즘을 현실적인 문제에 맞춰 수정
    • 자리가 2개 이상인 병원
    • 자리와 후보의 수가 불일치
  • 이상적인 조건에서 우선적으로 알고리즘을 만들고 현실에 맞춰 수정하는 과정

Who Benefits? ​

Data Structures ​

00 %

Introduction to Neural Networks ​

00 %