컴퓨팅사고력(Computational Thinking, 이하 CT).
CT는 컴퓨팅교육, 소프트웨어교육의 목표라고 한다.
작년 구글 교육자를 위한 CT코스를 완역했는데,
bit.ly/ctkorea .
CT에 대한 이슈들이 많아져서
다시 요약한다.
원문은
https://computationalthinkingcourse.withgoogle.com/preview
에 있다.
구글은 컴퓨팅 사고력(CT)을 네 가지 코스로 나눠서 설명한다.
분해, 패턴 인식, 추상화, 알고리즘 설계다.
분해 - 자료, 과정, 문제를 작고 다룰 수 있는 부분으로 나누기
패턴인식 - 데이터 안에 있는 패턴, 동향, 규칙 들을 관찰하기
추상하기 - 이 같은 패턴들을 만드는 일반 원칙 정하기
알고리즘 설계 - 탑, 채팅로봇, 계산기, 바운스 볼
라고 개요한다.
먼저, CT(컴퓨팅 사고력)와 CS(컴퓨터 과학)의 차이점을 설명하며 시작한다.
CT 문제를 단계나 부분으로 나누지만, CS는 컴퓨팅을 그래프해서 시각화한다.
CT 패턴이나 추이를 인식하고 발견하지만, CS 데이터를 시각화하거나 컴퓨터의 속도를 보여준다.
CT 는 문제를 해결하는 지침이나 임무를 완수하는 단계를 진행하지만, CS는 프로그램을 코딩한다.
CT는 규칙, 원칙, 통찰에 의해서 패턴이나 추이를 일반화하지만, CS는 복잡한 프로그래밍을 하기 보다 복잡한 자료 구조를 인식한다.
즉 CS는 정보에 관한 학문이다.
정보를 어떻게 표현하는가? 정보를 저장하는 최상의 방법은?
정보를 어떻게 처리할 것인가?
즉 CS 는 계산의 학문이다.
따라서 컴퓨터를 사용한다.
반면 CT는 사고하는 방법과 기술을 포함한다.
이것은 컴퓨터 프로그램을 작성할 때 사용하지만 다른 영역에서도 사용한다.
예를 들어보자
순차. CT에서 문제를 단계나 부분으로 나눈다. 문학에서도 시를 분석할 때, 운율, 구조, 음색, 말투 등으로 나눈다.
반복. CT는 패턴이나 추이를 인식하고 발견하는 것이다. 경제학에서는 국가 경제의 상승과 하락의 곡선 패턴을 찾는다.
알고리즘. CT는 문제를 해결하는 지침이나 임무를 완수하는 단계를 진행한다. 요리과목에서는 다른 사람이 사용할 조리법을 작성한다.
함수. CT는 규칙, 원칙, 통찰에 의해서 패턴이나 추이를 일반화한다. 수학에서는 2차 다항식의 인수를 발견하고, 화학에서는 화학 결합 및 상호작용에 대한 규칙을 정한다.
컴퓨터 과학자의 기본적 기술과 생각하는 방법은 CT다.
CT는 모든 과목과 주제에서 응용할 수 있다.
사고하는 방법은 문제를 해결하기 위한 과정과 순서를 만드는 모든 순간에 사용된다.
CT는 항상 프로그래밍 언어를 사용하는 것은 아니다.
오히려 가능한 더 많은 방법을 사용한다. 코드를 작성하는 방법이 아닌 생각하는 방법
CT는 늘 컴퓨터나 기술이 적용되는 것에 관련되지는 않다.
CT는 수세기동안 과학자들이 해왔던 과정이다.
전통적인 과학적 방법 단계에서 CT는 실험과 분석 단계에 해당한다.
이제 각 코스를 요약한다.
1. 알고리즘 탐색
알고리즘은 단계를 하나 하나 밟아가며 직접 만들어보며 문제를 해결하거나 주어진 일을 수행하는 것이다. 알고리즘은 인터넷 정보를 검색할 때나 네비게이션을 이용할 때 들어 있다. 물론 어떤 일들은 알고리즘 없이도 가능하지만 매우 복잡한 단계를 빠르게 수행하는 데 유용하다.
1) 여행하기 - 유럽 15개국의 수도를 여행하는 효율적인 길을 찾을 때 컴퓨팅을 이용해서 최단거리의 길과 최단 시간이 걸리는 찾을 수 있다.
2) 시간에 따른 단어 (n-gram viewer) - 컴퓨팅을 이용해서 시간에 따른 단어 사용을 탐색할 수 있다. 두 단어 간 관계를 탐색할 수 있다. 특정 시기 단어의 빈도를 검색할 수 있다.
3) 유전학 - 인간의 DNA는 수천가지의 유전자로 구성되어 있다. 유전자 하나를 연구하는 데 평생이 걸린다. 컴퓨팅을 이용해서 유전 정보와 같은 긴 시간 패턴을 계산할 수 있도록 해준다. 샘플을 분석해주고, 돌연변이 영향이나 치료를 시뮬레이션 해준다.
2. 패턴 찾기
1) 자료 압축
분해 - 개별 화소뿐 아니라 전체 이미지 처리
패턴인식 - 이미지 품질뿐 아니라 이미지 크게에 영향을 미치는 값에 서로 다른 비트마스크를 적용
추상화/일반화 - 이미지 품질을 떨어뜨리지 않으면서 이미지 크기를 작게해주는 비트마스크를 정할 때 패턴 이용
알고리즘 설계 - 비트마스크 속성 발견
2) 음악
예)----
학교종이 땡땡땡 노래에 들어간
순차 - 순서대로 부름
반복 - 솔솔라라솔솔미 반복함
조건 - F. mf, p
함수 - 전체 부름
편곡 - 디버깅
---
분해 - 노래나 노래를 구성하는 여러 요소(박자, 음표, 화음)의 부분들을 살피며 스스로 검사
패턴인식 - 음표의 길이나 횟수와 같은 변수 조정, 좋아하는 설정 찾기
추상화/일반화- 기존 두 화성에 필요한 화성 하나 추가
알고리즘 설계 - 전체 과정 통해 익힘
3) 거북 명령 기하학
분해- 사각형 그리기와 같은 목표를 일련의 단계나 차례로 바꾸기
패턴인식 - 도형의 선분을 그리는 것과 단계를 반복하는 것의 상관관계 알기
추상화/일반화- 다각형의 면의 수와 각 사이의 관계를 알기 위한 단계를 만들고, 회전각의 패턴 사용
알고리즘 설계 - 여러 종류의 다각형을 만드는 알고리즘 개발, 알고리즘을 확장하는 다양한 방법(거북이 완수하는 소요시간 정하기 위해 도형의 선분의 수를 셈)
4) 분류하기 (20고개하고 생물 맞추기)
분해 - 서로 다른 방법으로 생물 분류
패턴인식 - 같은 특성 가진 몇몇 생물을 효과적으로 분기하기 위한 방법 개발
추상화/ 일반화 - 모든 생물을 분류하는 데 필요한 질문과 분류 방법의 수 예측
알고리즘 설계 - 생물 분류하는 효율적인 방법 알게됨
3. 알고리즘 개발
1) 하노이 타워 - 하노이 탑으로 알려진 이 퍼즐은 컴퓨터를 사용하기 전 오래된 알고리즘의 예시로 자주 등장한다. 퍼즐로도 재미있지만, 재귀함수의 예나 알고리즘의 효율성의 중요도를 설명하는 예로도 유명하다. 고리의 수가 증가함에 따라 필요한 단계의 수는 기하급수적으로 증가한다. 오늘날 인터넷이나 사업 현장에서 사용되는 많은 알고리즘은 초당 수십억명을 처리할 수 있어야 한다. 컴퓨터 과학자는 알고리즘의 복잡성을 줄이면서 질을 향상시키는 방법을 탐색하고 있다.
2) 대화로봇 - 대화로봇에 사용된 알고리즘은 매우 간단하다. 조건과 조건들의 조합으로 된 명령어다.
대화로봇은 논리 진술문으로 '만약'과 '그렇지 않으면'을 사용한다.
알고리즘은 이렇다.
1] 사용자 질문 입력
2] 알고리즘 질문과 일치되는 유형 찾기, '만약' 질문 속 단어가 답변의 문장과 일치하면 답변 기록
3] '그렇지 않으면' 즉 다른 경우 초기 설정된 "질문을 이해 못 하겠습니다" 보이게 한다.
3) 계산기
복잡하고, 시간이 오래 걸리는 수학적 문제 해결
컴퓨팅 사고력을 이야기하는 매우 다양한 견해들이 있다.
그 중,
구글 CT는 다양한 CT에 대한 논의 중 날 해방시켜 주었다.
이 코스는
2016년 1월에 종강되었지만,
다양한 논의를 커뮤니티에서 계속하고 있어서 흥미롭다.
커뮤니티 주소 -
https://plus.google.com/communities/104843475244210707629
다양한 CT에 대한 견해로 머리가 복잡했다면
함께 구글 CT에 세계로 빠져보는 것은 어떨까?
구글 CT 과정이 너무 대박이여서
2틀동안 5분 영상을 한국어로 번역했다.
댓글
댓글 쓰기