-
-
처음 떠나는 컴퓨터과학 산책 - 하버드대 학생들은 왜 컴퓨터과학을 배울까?
김현철.김수환 지음 / 생능 / 2020년 11월
평점 :
품절
대학교의 교양 과목 중 가장 인기를 끄는 과목은 주로 인문, 철학, 심리학이나 경제학 일정도로 인문 사회 계열에 치우친 경향이 있습니다. 재미있기도 하지만, 특히 각 대학의 스타 교수님들의 과목이 큰 관심과 선택을 받기 때문이기도 합니다.
우리에게도 유명한 하버드 대학도 마찬가지였습니다. 유명한 멘큐 교수의 '경제학 원론'이나 마이클 샌델 교수의 '정의란 무엇인가'와 같은 교양 과목은 자리구하기가 힘들 정도로 인기였었죠. 그러나 2015, 6년을 기점으로 미묘한 변화가 생깁니다. CS50으로 불리는 "컴퓨터 과학(컴퓨터 사이언스, Computer Science)"이 새로운 유행으로 교양과목의 선두에 서게 되었습니다.
거의 대부분의 학생들이 프로그래밍 경험이 없고, 비전공자들이 점수따기 쉽지 않은 선택과목에 몰려든 이유는 무엇일까요?
디지털 경제로의 이행이 가속화되고, 4차 산업혁명이 본격적으로 진행되는현 시점에서 전 산업 영역에서 일어나는 "디지털 트랜스포메이션(Digital Tranformation)"에 부응하기 위해서는 각자의 전공영역에서 디지털과의 융합을 고려해야 한다는 절박함일거라 생각합니다. 즉, 컴퓨터적 사고(알고리즘적 사고)와 코딩 능력과 이해가 필수라는 겁니다.

오늘 소개해 드리는 <처음 떠나는 컴퓨터과학 산책>에서는 여느 대학의 전산정보학과나 컴퓨터 사이언스학과 등에서 처음 마주하는 컴퓨터 개론 혹은 전산정보학 개론 수준의 내용을 담고 있습니다.
우선 데이터와 정보의 상관관계로 부터 정보를 자동으로 처리(계산)하는 기계인 컴퓨터에 대한 설명으로 나아갑니다. 그후 컴퓨터가 사용하는 디지털 코드와 전기, 전자 장치를 이용하여 '정보'를 저장하고 처리 및 관리하기에 최적화된 1과 0 즉, 이진(binary) 형태의 표현법을 설명합니다.
따라서 컴퓨터의 관점에서 보면 비트(bit)로 코드화된 정보를 '디지털 정보'라 부르고, 디지털 정보는 '이진 코드화된 정보', 아날로그 정보는 '코드화하지 않은 정보'라 볼 수 있답니다.
이러한 이진 코드를 통해 문자(Text) 정보 표현, 문자(Text) 데이터 압축, 이미지(Image) 정보와 소리(Audio) 정보 그리고 숫자 정보를 표현하는 방법을 자세히 보여줍니다. 특히 멀티미디어 정보(이미지, 소리 등)의 빅데이터 AI 분석 시 반드시 이해해야 할 픽셀, 각종 인코딩 기법(gif, jpeg, png), 비트맵과 벡터 그리고 샘플링, 양자화, 부호화 등의 개념 정리는 추후 좀 더 깊이 있는 학습에 큰 도움이 될 것입니다.
그렇다면 컴퓨터가 이해하기 쉬운 정보와 컴퓨터에서 가장 많이 사용하는 정보의 구조는 어떤 것일까요? 컴퓨터에 일을 시키기 위해서는 컴퓨터가 데이터를 쉽게 처리할 수 있는 구조로 전환하는 것이 중요합니다.
컴퓨터가 처리하기 쉬운 정보의 구조화 방법은 목록형, 계층형, 테이블형, 그래프형 구조 등이 있으며, 정보를 이용해서 문제를 해결하는 과정은 입력->처리->출력(IPO) 의 과정을 거치게 됩니다.
컴퓨터를 통한 문제해결에 이용하는 방법이 '정보의 구조화' 였다면 컴퓨터에 일을 시키는 순서 즉, 어떤 작업을 수행하기 위해 컴퓨터에 내리는 명령을 순서대로 나열하는 것을 '알고리즘(Algorithm)'이라 할 수 있답니다. 본서에서는 알고리즘의 표현방법(자연어, 슈도코드, 순서도)과 구조(순차, 반복, 분기)를 통해 가장 기본적인 개념파악이 가능합니다.
이어지는 장에서는 여느 프로그래밍 기본서와 마찬가지로, 데이터 구조 및 배열, 정렬 알고리즘(버블, 선택, 삽입), 탐색 알고리즘, 값을 바꾸어 주는 함수(Function) 그리고 알고리즘을 통한 문제해결을 위한 다양한 전략이 상세히 설명되고 있습니다.
마지막으로 '기계 학습'이란 개념으로 알려진 '인공지능'에 대한 기본 개념과 기계학습과 딥러닝을 포함한 인공지능 모델 그리고 기계 학습의 분류(지도, 비지도, 강화 학습)를 통해 2020년 현재까지 개발된 기계 학습의 다양한 성과들을 예시를 통해 확인하고 있습니다.
특히 책의 말미에 설명되는 인공신경망 즉, '퍼셉트론'에 대한 개략적인 소개는 가장 진화된 형태의 인공지능 모델이라 할 수 있는 딥러닝 알고리즘에 대한 이해를 위해 초심자들이 한 번쯤 읽어 봄직 합니다.
인간의 뇌에서 뉴런과 뉴런 사이의 시냅스 연결이 지속적으로 자극되면 경험이 강화되는 것처럼, 입력층과 출력층 사이의 논리연산 과정에서 각각의 연결에 가중치(Weight)를 적용하는 개념을 도입함으로써 오늘날의 딥러닝의 시초가 되는 퍼셉트론 이론이 발표됩니다.
즉, 퍼셉트론은 다수의 입력 값과 가중치를 계산하여 하나의 출력(0 또는 1)으로 출력하는 입력층과 출력층으로만 구성된 알고리즘을 말합니다. 이때, 컴퓨터가 적당한 가중치를 찾아내는 '학습'을 하게 되며, 이렇게 찾아낸 가중치는 새로운 데이터를 판별하는 데 사용할 수 있습니다.
그러나 '배타적 논리합(Exclusive OR)' 연산 문제를 해결하지 못하여, 상당기간 암흑기에 접어든 인공지능 학계는 은닉층을 하나 이상 만드는 '다층 퍼셉트론'을 고안해 냄으로써 여러가지 구분 문제를 해결하게 됩니다. 이러한 다중 은닉층 모델을 '딥러닝'이라 부르며, 특히 인식(Recognition) 영역(이미지 인식, 음성 인식 등)에서 눈부신 성과를 내고 있습니다.
컴퓨터 과학의 가장 기초적인 수준인 정보와 데이터의 설명에서 시작하여, 정보의 구조화, 알고리즘, 그리고 인공지능으로 단계적으로 이어지는 잘 짜여진 커리큘럼을 가진 실용서로 평가하고 싶습니다.
앞서 말씀드린 대로 '디지털 트랜스포메이션'을 통해 산업 영역의 경계가 흐려지며, 디지털이 매개가 되어 서로 융복합을 통해 질적인 변화를 거듭하게될 디지털 경제 시대에 알고리즘적 사고와 코딩 능력이 전공을 막론하고 필수 역량으로 자리매김해 나가는 이때, 컴퓨터 과학의 기초를 이해하는 것이 무엇보다 중요합니다.
예를 들어, 상경계 학생들이 데이터 분석이 중요한 경영 컨설팅 업계로 진로를 잡기 위해 논리적 사고나 코딩 능력을 기른다거나, 의사가 되려는 학생들이 세포 분자학을 깊이 있게 연구하기 위해 코딩 기술을 연마하기에 앞서 기초가 되는 데이터 과학 개론의 이해가 선행되어야 한다는 말입니다.
컴퓨터 과학의 A to Z 를 쉬운 설명과 다양한 예시를 통해 익히고자 하는 분들께 추천하고 싶습니다.