주요 내용
단원 1: 알고리즘
이 단원에 대하여
검색, 정렬, 재귀, 그래프 이론 등을 비롯한 기본 컴퓨터 과학 알고리즘 학습 준비를 위해 다트머스 대학의 톰 콜먼(Tom Cormen) 교수님과 데빈 발컴(Devin Balkcom) 교수님이 도움을 주셨습니다. 개념 이해하기, 시각화, 퀴즈, 코딩 응용 문제와 같은 다양한 자료를 활용해 학습해 보세요.
알고리즘은 무엇이며 왜 관심을 가져야 할까요? 알고리즘이란 무엇인지 알아보고 알고리즘을 이용하여 보다 효율적으로 해결할 수 있는 숫자 추측 게임과 루트 찾기 게임에 대해 다뤄보겠습니다.
검색 시마다 검색 공간을 이등분하여 항목 배열을 효과적으로 검색하는 방법, 이진 검색에 대해 알아보세요.
점근적 분석을 활용하여 알고리즘의 효율성을 설명하는 방법을 익히고, Big O, Big-Theta, Big-Omega 등의 점근적 표기법을 이용해 더욱 정확히 효율성을 설명해 봅시다.
값 배열을 정렬하는 간단한 알고리즘인 선택 정렬에 대해 알아보고 왜 선택 정렬이 가장 효과적인 알고리즘이라고 할 수 없는지 알아봅시다.
간단하지만 값의 배열을 정렬할 때에는 그다지 효율적이지 않은 삽입 정렬에 대해 알아봅시다.
알고리즘에서 자주 사용되는 재귀의 개념에 대해 알아봅시다. 재귀를 활용하여 계승과 거듭제곱을 어떻게 계산하며 어떻게 예술 작품도 만들어낼 수 있는지 알아봅시다.
고전적인 수학 퍼즐과 수도승들이 자주 푸는 문제인 하노이의 탑! 재귀적 기법을 활용하여 해결해 봅시다.
재귀를 적극 활용하여 하위 배열을 반복적으로 정렬 및 병합할 수 있는 정렬 알고리즘, 병합 정렬에 대해 배워 봅시다.
재귀를 활용하여 값의 배열을 보다 빠르게 정렬할 수 있는 효율적인 정렬 알고리즘, 퀵 정렬에 대해 배워 봅시다.
가장자리와 정점 및 가중치를 이용하여 그래프를 설명하는 법과 그래프 데이터를 연결선 리스트, 인접행렬, 인접리스트 등의 다양한 방법으로 저장하는 방법에 대해 배워 봅시다.
특정한 노드를 검색하거나 모든 노드를 방문했는지 확인할 수 있도록 너비우선탐색을 사용해 그래프를 가로지르는 방법에 대해 배워 봅시다.