주요 내용
컴퓨터과학
알고리즘이란 무엇이며, 왜 중요한가요?
동영상 대본
알고리즘이란 무엇일까요? 어떤 문제를 해결하기 위한 절차의
집합이라고 정의해 볼 수 있습니다 어떤 문제를 해결하기 위한 절차의
집합이라고 정의해 볼 수 있습니다 집에서 학교에 가는
알고리즘이 있을 수도 있고 그릴치즈를 만드는 알고리즘 마트에서 필요한 물건을 찾는
알고리즘이 있을 수도 있습니다 컴퓨터 과학에서 알고리즘은 컴퓨터 프로그램이 어떤 문제를 해결하기
위해 필요한 명령어들의 집합입니다 알고리즘이 컴퓨터 과학을
과학으로 만듭니다 좋은 알고리즘을 찾고
언제 써야 할지 알아야 흥미롭고 중요한 프로그램을
만들 수 있습니다 흥미롭고 중요한 프로그램을
만들 수 있습니다 유명한 몇 가지
알고리즘을 살펴봅시다 구글 행아웃은 어떻게 인터넷 간에
실시간 영상을 빠르게 전송할까요? 구글 행아웃은 어떻게 인터넷 간에
실시간 영상을 빠르게 전송할까요? 오디오, 비디오 압축 알고리즘을 사용합니다 구글 맵스가 어떻게 텍사스 달라스에서
플로리다 올랜도까지 경로를 찾을까요? 여러분이 디즈니랜드에 갈 수 있도록 말이죠 경로 찾기 알고리즘을 사용합니다 픽사는 어떻게 가상에 공간에서 캐릭터의
3D 모델을 조명을 반영해 색칠할까요? 픽사는 어떻게 가상에 공간에서 캐릭터의
3D 모델을 조명을 반영해 색칠할까요? 렌더링 알고리즘을 사용합니다 나사는 ISS의 태양광 패널을
어디로 언제 움직일지 어떻게 알까요? 나사는 ISS의 태양광 패널을
어디로 언제 움직일지 어떻게 알까요? 나사는 ISS의 태양광 패널을
어디로 언제 움직일지 어떻게 알까요? 최적화 & 스케줄 알고리즘을 사용합니다 이런 알고리즘은 여러분이 매일 사용하는 그릴치즈 만들기 같은 알고리즘보다
훨씬 복잡합니다 하지만 결국에는 다 똑같습니다 어떤 문제를
해결하기 위한 절차의 집합이죠 이미 있는 알고리즘에
대해 알고 있는 것이 있다면 수고를 덜하고 맞는 것을 적용해
프로그램을 더 빠르게 만들 수 있습니다 예를 들어 게임을 만드는데 컴퓨터에 대항해 할 수 있도록
만들고자 한다고 합시다 체커게임을 보고 영감을 얻을 수 있습니다 컴퓨터 과학자들은 절대 지지 않는
체커 프로그램 만드는 법을 찾았습니다 컴퓨터 과학자들은 절대 지지 않는
체커 프로그램 만드는 법을 찾았습니다 가능한 움직임으로 이루어진
아주 큰 트리를 탐색하는 미니맥스 알고리즘을 이용해서 말이죠 여러분의 게임이 체커와 비슷하다면 이 기법을 이용해
알고리즘을 만들 수도 있습니다 아니라면 알고리즘의 한계를 알고 실력이 좋은 컴퓨터 플레이어가 필요하다면
게임을 다시 디자인하게 될 수도 있습니다 실력이 좋은 컴퓨터 플레이어가 필요하다면
게임을 다시 디자인하게 될 수도 있습니다 새 알고리즘을 만들 줄 아는 것도 중요합니다 그 정확도와 효율을
계산할 줄 아는 것도 그렇고요 생명과학에서는 분자의 구조를 디자인하는 등의
새 알고리즘이 계속해서 개발되고 있고 분자의 구조를 디자인하는 등의
새 알고리즘이 계속해서 개발되고 있고 이는 질병과 싸울 신약 개발에 필수적입니다 물리학에서 알고리즘은
기후와 날씨 유형을 시뮬레이션으로 만들고 물리학에서 알고리즘은
기후와 날씨 유형을 시뮬레이션으로 만들고 다른 알고리즘은
자동화된 우주 망원경이 모은 별과 우주에 대한 광대한 자료를
찾고 분석합니다 별과 우주에 대한 광대한 자료를
찾고 분석합니다 모든 과학 분야와 심지어 칸아카데미같은 웹사이트에서도 광대한 데이터 셋을 분석하려면
효율적인 알고리즘이 필요합니다 아니면 수 많은 가능한 결정점을
지능적으로 선택하기 위해서 말이죠 아니면 수 많은 가능한 결정점을
지능적으로 선택하기 위해서 말이죠 여러분이 관심 있을
분야의 거의 대부분에서 새 알고리즘은 광대한 계산력을 끌어내 새 알고리즘은 광대한 계산력을 끌어내 사람들이 정말 필요하고
원하는 것들에 사용하도록 해 줍니다 모든 알고리즘이 동등하지는 않습니다 좋은 알고리즘이란 무엇일까요? 가장 중요한 두 가지는
문제를 해결할 수 있고 이를 효과적으로 하느냐입니다 대부분의 경우 알고리즘이 항상 우리가
정답이라고 알고 있는 답을 주어야 합니다 대부분의 경우 알고리즘이 항상 우리가
정답이라고 알고 있는 답을 주어야 합니다 가끔은 정확하거나 최선이 아닌
답을 내놓는 알고리즘도 괜찮을 수 있습니다 가끔은 정확하거나 최선이 아닌
답을 내놓는 알고리즘도 괜찮을 수 있습니다 정확한 답을 내놓는 알고리즘이
아주 아주 오랜 시간이 걸린다면 말이죠 정확한 답을 내놓는 알고리즘이
아주 아주 오랜 시간이 걸린다면 말이죠 예를 들어 물건을 나르는 트럭의
가장 효율적인 경로를 찾는다고 합시다 예를 들어 물건을 나르는 트럭의
가장 효율적인 경로를 찾는다고 합시다 예를 들어 물건을 나르는 트럭의
가장 효율적인 경로를 찾는다고 합시다 하루의 시작과 끝은 창고에서 합니다 모든 경우의 수를 보려면
몇 주 이상이 걸립니다 모든 경우의 수를 보려면
몇 주 이상이 걸립니다 하지만 나쁘지는 않지만 최선은 아닌
경로를 구하는 알고리즘을 사용한다면 몇 초만에 구할 수 있습니다 몇 초만에 구할 수 있습니다 어떤 경우에는 좋은게 좋은겁니다 알고리즘의 효율은 어떻게 측정할까요? 코드를 실행하는 데
걸리는 시간을 측정할 수 있습니다 하지만 이는 그 특정 구현 방법, 언어, 컴퓨터의
특정 입력값에 대한 정보만을 제공합니다 하지만 이는 그 특정 구현 방법, 언어, 컴퓨터의
특정 입력값에 대한 정보만을 제공합니다 하지만 이는 그 특정 구현 방법, 언어, 컴퓨터의
특정 입력값에 대한 정보만을 제공합니다 그 대신 컴퓨터 과학자들은 점근적 분석을 사용합니다 이는 알고리즘을 사용 언어와 하드웨어와
상관 없이 비교할 수 있게 합니다 이는 알고리즘을 사용 언어와 하드웨어와
상관 없이 비교할 수 있게 합니다 그래서 확실히 어떤 알고리즘이
다른 것보다 더 좋다고 할 수 있도록요 그래서 확실히 어떤 알고리즘이
다른 것보다 더 좋다고 할 수 있도록요 두 다트머스 교수님 덕분에 칸아카데미에서
점근적 분석에 대해 배울 수 있습니다 두 다트머스 교수님 덕분에 칸아카데미에서
점근적 분석에 대해 배울 수 있습니다 두 다트머스 교수님 덕분에 칸아카데미에서
점근적 분석에 대해 배울 수 있습니다 톰 코멘은 대학교 알고리즘 강의에서
가장 많이 쓰이는 교과서의 첫 번째 저자입니다 톰 코멘은 대학교 알고리즘 강의에서
가장 많이 쓰이는 교과서의 첫 번째 저자입니다 Algorithms Unlocked의 저자이기도 합니다 데빈 발콤은 다트머스 대학에서
CS입문 강의를 개발하고 로보틱스를 연구합니다 세계 최초 종이접기 로봇을
만든 사람입니다 톰과 데빈은 AP CS나 CS101에서
배울 수 있는 알고리즘에 대해 설명합니다 톰과 데빈은 AP CS나 CS101에서
배울 수 있는 알고리즘에 대해 설명합니다 검색 알고리즘, 정렬 알고리즘
회귀 알고리즘 그리고 제가 개인적으로
가장 좋아하는 그래프 알고리즘 등이 있습니다 상호작용이 가능한 시각화 자료와 퀴즈, 코딩 챌린지가 여러분의
배움의 과정에 도움이 되어 줄 것입니다 퀴즈, 코딩 챌린지가 여러분의
배움의 과정에 도움이 되어 줄 것입니다