5강. 알고리즘 (1)

학습개요 이번 강의에서는 알고리즘의 필요성과 정의에서부터 시작해서 알고리즘의 대표적인 설계 기법, 그리고 성능 분석 방법 등 알고리즘 전반에 걸친 주요 개념들에 대해서 우선 살펴본다. 그리고 정렬 문제를 해결하는 가장 기본적인 형태의 알고리즘으로서 선택 정렬, 버블 정렬, 삽입 정렬에 대해서 학습한다. 학습목표 알고리즘의 개념과 중요성을 이해할 수 있다. 대표적인 알고리즘 설계 기법의 종류와 개념을 이해할 수 … Read more

4강. 자료구조 (2)

학습개요 『컴퓨터과학개론』의 네 번째 강의로서, 컴퓨터 프로그래밍을 시작하면서 가장 기본이 되는 내용인 자료구조를 살펴본다. 비선형 자료구조인 트리와 그래프에 대해 알아보고, 그래프와 트리의 순회 방법과 표현 방법에 대해서 학습한다. 트리는 계층 구조를 표현하기에 적당하고, 그래프는 현실세계 네트워크나 네비게이션의 목적지와 출발지를 표현하고 계산하는 데 가장 많이 사용되는 자료구조이다. 학습목표 트리와 그래프와 같은 자료구조에 대해서 이해할 수 있다. … Read more

3강. 자료구조 (1)

학습개요 컴퓨터에서 다루고자 하는 데이터를 추상적인 개념으로 정의하고, 각각의 자료구조에 대한 특징과 장단점에 대해서 알아본다. 특히, 자료구조의 기본 개념과 가장 기본적인 자료구조인 배열과 리스트를 살펴본다. 그리고, 데이터에 대한 연산과 자료구조와의 정의를 통해 자료의 시간적 관계가 표현되는 스택과 큐에 대해서 알아본다. 학습목표 자료 구조와 추상화에 대해서 이해할 수 있다. 배열의 의미와 주기억장치 내에서의 저장 위치를 이해할 … Read more

2강. 컴퓨터와 자료 (2)

학습개요 이번 강의에서는 “데이터 표현”이라는 관점에서 컴퓨터 내부에서 데이터를 어떻게 표현하는지에 대해서 살펴본다. 우선 데이터와 정보의 개념적인 차이를 이해하고, 정수와 실수, 그리고 문자 표현과 관련된 다양한 개념과 방법들을 학습한다. 학습목표 데이터와 정보의 개념적 차이, 그리고 데이터 표현 단위 등을 이해하고 설명할 수 있다. 다양한 진법 간의 변환을 수행할 수 있다. 정수와 실수의 표현 방법을 이해하고 … Read more

1강. 컴퓨터와 자료 (1)

학습개요 『컴퓨터과학개론』과목의 첫 번째 강의로서, 컴퓨터과학의 주요 분야에 대한 본격적인 학습에 앞서 기본적인 몇 가지의 개념을 중심으로 살펴본다. 우선, 컴퓨터 그리고 컴퓨터과학이라는 것이 무엇인지를 살펴보고, 완전한 컴퓨터 시스템을 구성하는 요소에 대해서 학습한다. 학습목표 컴퓨터의 정의와 특징을 이해하고 설명할 수 있다. 다양한 관점에서의 컴퓨터과학에 대한 정의를 이해하고 설명할 수 있다. 하나의 완전한 컴퓨터 시스템의 구성요소를 이해하고 … Read more

15강. 그래프 (II)

학습개요 그래프에 대해서 할 수 있는 가장 기본적인 연산은 특정 정점이 그래프 내에 있는지 찾는 것입니다. 그러기 위해서는 그래프내의 모든 정점을 빠짐없이 그리고 중복 없이 돌아다녀야 합니다. 그것을 그래프 순회라고 합니다. 그래프 순회에는 두 가지 방법이 있습니다. 15장에서는 깊이 우선 탐색(Depth First Search; DFS)과 너비 우선 탐색(Breadth First Search; BFS)이라는 그래프 순회에 대해 설명합니다. 마지막으로 … Read more

14강. 그래프 (I)

학습개요 수학자 오일러(Euler)가 쾨니히스베르크 다리 문제를 해결하면서 사용한 그래프는 오늘날 가장 강력한 모델링 수단으로 세상의 많은 것들 특히 “관계”를 잘 표현합니다. 이 장은 먼저 그래프 개념을 소개하고 많은 용어를 정의합니다. 용어에 익숙해야 이어지는 내용을 잘 파악할 수 있습니다. 특히 그래프를 수학의 집합 즉 G=(V,E)로 정의하는 것을 잘 이해해야 합니다. 그리고 그래프를 컴퓨터로 다루기 위한 추상 자료형을 … Read more

13강. 멀티웨이 탐색 트리 (II)

학습개요 13장은 트리를 다루는 마지막 장입니다. 지금까지 배운 내용을 간략하게 정리해 봅시다. 7장에서 일반적인 트리를 정의하고 이어서 차수가 2인 즉, 자식을 두 개만 갖는 이진 트리를 다루었습니다. 그리고 여러 가지 확장된 이진 트리에 대해 11장까지 소개했습니다. 특히 11장에서는 이진 탐색 트리와 그것을 개선한 트리들에 대해 배웠습니다. 이때까지 우리는 자식을 2개 까지만 허용하는 이진 트리를 줄 … Read more

12강. 멀티웨이 탐색 트리 (I)

학습개요 앞에서 학습한 이진 탐색 트리를 장점을 살려서 더 효율적으로 사용하기 위해 만든 멀티웨이 탐색 트리에 대해 학습합니다. 처음으로 이진 탐색 트리를 확장한 것으로 m개 이하의 가지를 가질 수 있는 m원 탐색 트리가 있습니다. 탐색 트리의 제한을 유지하면서 2개 이상(m개 이하)의 자식을 가질 수 있습니다. BS 트리가 2-way 탐색에 해당합니다. m원 탐색 트리는 파일의 인덱스를 … Read more

11강. BS, Splay, AVL, BB

학습개요 삽입, 삭제 연산을 보다 효과적으로 작업하기 위해 만든 이진 탐색 트리에 대한 정의와 이진 트리와 같이 순회 방법에 대해서도 학습하게 됩니다. 이진 탐색 트리에서는 각 노드를 식별하기 위해서 별도의 이름을 붙여준 키(key)라는 용어를 사용합니다. 노드의 데이터라고 생각해도 됩니다. 정해진 노드()를 기준으로 왼쪽 서브 트리에 있는 모든 노드는 의 킷값보다 값이 작아야 하고, 오른쪽 서브 … Read more