#1 왜 프로그래밍을 배우는 걸까?
프로그래밍 (Programming) 이란 특정 목적을 달성하기 위하여 설계된 알고리즘을 컴퓨터 언어를 통해 구현하는 과정을 일컫습니다. 과거에는 IT 직종에 종사하는 프로그래머 고유의 영역으로 생각되었으나 현재는 세계 여러 나라에서 소프트웨어 교육을 정규 교과 과정에 포함시키기도 하며, 어린 아이들도 장난감 코딩 컴퓨터를 갖고 놀기도 합니다.
왜 프로그래밍을 공부하는 것일까요? IT 기술자가 되기 위해서? 컴퓨터 분야의 일자리가 많아서?
그렇지 않습니다. 사실 프로그래머라는 직업 자체는 오히려 경쟁도 심하고 업무 강도도 높은 직업에 속합니다.
"우리아이는 IT 기술자가 될 것도 아닌데 학교에서 왜 코딩을 배워야 하나요?" 라고 생각할 수도 있습니다.
그럼 다시 한번 질문해 볼까요? 수학자가 될 것도 아닌데 수학은 왜 배울까요?
아마 많은 분들은 답을 알고 있습니다. 수학적, 논리적 사고를 배우기 위해 받는 교육이죠.
프로그래밍도 마찬가지입니다. 프로그래머가 되기 위해서가 아니라, 컴퓨터처럼 논리적이고 효율적으로 사고하기 위해 배우는 것입니다.
이를 컴퓨팅 사고 (Computational Thinking) 라고 합니다.
#2 컴퓨팅 사고 (Computational Thinking)
코딩 경험이 없는 사람은 쉬운 코딩 기초를 배울 때도 매우 생소해하며 심리적 장벽을 느낍니다. 누구나 처음엔 어려워하는것이 코딩입니다. 그러나 코딩을 오래 공부한 사람은 전혀 새로운 언어도 금방금방 익혀서 써먹곤 합니다. 심지어 전혀 모르는 언어로 진행하는 프로젝트를 맡았는데, 책 한권 사놓고 뒤적거리며 구글링 몇번 해 가면서 필요한 코드를 쓰고 수정하기까지 합니다. 이것이 가능한 이유는 바로 후자의 사람이 컴퓨팅 사고에 매우 익숙하기 때문일 것입니다.
컴퓨팅 사고란, 컴퓨터가 문제를 해결하는 방식과 같이 복잡한 문제를 분해하여 단순화하고, 논리적인 알고리즘을 통해 효율적으로 해결하는 능력을 통칭하며, Jeannette Wing 박사가 2006년에 ACM 에 기고한 논문으로부터 대중화된 용어입니다. 이 논문에서는 컴퓨터와 같이 사고하는 능력은 컴퓨터 과학자에게 국한된 것이 아니라 읽기, 쓰기, 더하기, 빼기와 같이 모든 사람에게 필요한 근본적인 사고 능력이 되었다고 주장합니다.
컴퓨팅 사고는 문제해결을 위해 다음과 같은 특징을 포함하고 있습니다. (위키백과 참조)
- 자료를 분석하고 논리적으로 조직화
- 데이터 모형화, 자료 추상화, 모의시험
- 컴퓨터 도움을 받을 수 있도록 문제를 구성
- 가능한 해결책을 식별하고, 테스트하고, 구현
- 알고리즘적 사고를 통해 해결책을 자동화
- 본 과정을 다른 문제에 대해 일반화하고 적용
이러한 컴퓨팅 사고는 프로그래밍에만 적용되는 것이 아니고 산업과 실생활의 모든 분야에서의 문제 해결에 적용될 수 있을 만큼 실용적입니다. 예를 들어 잃어버린 열쇠를 찾는 경우를 가정해 보겠습니다.
무작정 찾아본다
vs
열쇠가 방에 없다면, 차 안을 찾아본다. 차 안에도 없다면, 코트 주머니 속을 찾아본다.
어느 곳에서도 찾지 못했다면 열쇠를 새로 만든다.
후자의 경우 컴퓨팅 사고 능력을 잘 활용했다고 볼 수 있으며, 컴퓨터 프로그래밍 언어의 “If, elif, else”와 유사한 구조가 나타나는 것을 알 수 있습니다. 이는 실생활 뿐만 아니라 복잡한 산업계의 여러 문제들에도 응용할 수 있으며 새로운 창의적 사고의 방법으로 매우 주목받고 있습니다.
이러한 컴퓨팅 사고 능력을 키우는 가장 좋은 방법은 바로 프로그래밍을 공부하는 것입니다. 프로그래밍은 복잡한 문제를 여러가지 작은 문제로 쪼개거나, 문제들의 상호 관계를 파악하여 구조화하고 추상화하며, 이를 해결하기 위한 알고리즘을 생성하는 모든 과정이 포함되어 있습니다. 우리나라에서도 이러한 흐름에 발맞춰 초, 중, 고등학교에 소프트웨어 교육을 도입하려는 계획을 수립하고 있으며 여러 대학에서 소프트웨어 특성화 수업을 실시하는 등 전공이나 나이와 상관없이 컴퓨팅 사고를 기를 수 있는 방법을 모색하고 있습니다.
'지식 & 정보 > 교양 과학' 카테고리의 다른 글
[2020 노벨 물리학상 1편] 105년의 기다림, 블랙홀로 노벨상을 받다? - 로저 펜로즈의 증명 (0) | 2020.12.29 |
---|---|
화이자와 mRNA 백신, 과연 우리는 마스크를 벗게 될 것인가? (0) | 2020.12.29 |
인류원리란 무엇인가? 기적같은 확률을 뚫고 우리가 여기 존재할 수 있는 이유 (1) | 2020.12.23 |
스티븐 호킹의 시간여행자 파티 (0) | 2020.12.23 |
바이러스 vs 박테리아.. 뭐가 다를까? (0) | 2020.02.18 |
댓글