본문 바로가기

문학과 예술 그리고 산책에서 찾는 비즈니스의 기회

코딩에 대한 교양이 필요하다

728x90
반응형

​코딩 의무교육 시대에 코딩 교양서가 나와서
재미있게 읽었다.

​​“책 소개 글 중에서”
“코딩 및 프로그래밍 언어를 배운다고 ‘코딩’에 대해 다 안다고 말할 수 없다. 체계적으로, 그리고 무엇보다 차근차근 친절하게 설명하면서, 코딩이란 무엇이고 우리에게 코딩이 왜 필요한지를 이 책은 알려주고 있다. 『세상을 만드는 글자, 코딩』은 어떻게 코딩을 하는지 그 방법을 자세하게 싣고 하나하나 따라 하도록 되어 있는 여타 실용서나 컴퓨터 관련 기술서와는 다른 ‘최초의 코딩 교양서’이다.

코딩의 필요성, 프로그래밍과 코딩의 차이, 코딩을 하기 위해 꼭 필요한 컴퓨터 및 프로그래밍 언어 이해하기 등에 대해 이야기한다. 더 나아가 0과 1, 즉 비트(bit)로 구성되어 있는 세상 만물에 대한 이해로 그 폭을 넓히고 있다.”


“P.33~34 : 오랜 역사 동안 인류는 도구를 이용해 무언가를 자르거나 붙이거나 다듬거나 하면서 원하는 것들을 생산해왔습니다. 흔히 ‘만든다’라고 할 때 제일 먼저 떠오르는 것은 톱질하는 모습, 망치질하는 모습, 삽질하는 모습입니다. 하지만 컴퓨터가 발명된 후부터 인류는 그 무언가를 다름 아닌 ‘글자’로 만들게 되었습니다. 지금 우리 주변에 존재하는 많은 것들이 실은 글쓰기를 통해 만들어졌습니다. 무슨 소리냐고요? 여러분이 읽고 있는 이 책도 당연히 글자로 만들어졌습니다. 컴퓨터에 설치된 워드 프로세서로 글을 썼고, 그 글이 저장 매체에 보관되었다가 인쇄기로 인쇄되었습니다. 이때 사용된 ‘컴퓨터’, ‘워드 프로세서’, ‘저장 매체’ 그리고 ‘인쇄기’와 같은 것들이 모두 코딩으로 만들어졌습니다. 소프트웨어는 말할 것도 없고, 전자제품들 역시 코딩으로 만들어졌습니다. 지금부터 설명하려는 것이 바로 이런 종류의 ‘만들기’입니다. 현대 사회에서 ‘키보드질’은 망치질이나 삽질을 완벽하게 대체했습니다.”
​​


목차
대충 말해도 통할까? | 프로그래밍이랑 코딩이랑 다른 거야? | 내 주변에 존재하는 소스코드 | HTML 맛보기 | 파이썬 맛보기 | 스크래치 맛보기 | 이 책에서 펼쳐질 이야기들
Chapter 1 코딩은 아무나 한다 ―프로그래머 이해하기
1. 삽질 대신 하게 된 키보드질
기계야, 내 글을 읽어보아라 | 수십억 부가 팔린 베스트셀러
2. 구글은 20억 줄도 넘는 글이다
스타크래프트는 뭐로 만들었을까? | 프로그램이 음악과 같은 창작품이라고? | 여러 명이 함께 쓸 수 있을까?
3. 코딩이 전문가만 하는 거라고?
학문 취급도 못 받던 기술 | 내 아이디어를 대신 구현해줄 사람이 있을까? | 프로그래머가 되려면 | 비트 세계의 기초과학
Chapter 2 프로그래밍 언어는 나와 컴퓨터를 이어준다 ―프로그래밍 언어 이해하기
1. 발명된 인공 언어
인위적으로 제작된 언어 | 프로그래밍 언어는 만국 공통어
2. 누가 내 말 좀 번역해줘! ―프로그래밍 언어의 역사
컴퓨터는 영어를 못 하잖아 | 직접 소통하기 위한 언어 | 치환되는 언어 | 번역되는 언어 | 기계어보다 낮은 언어 | 해석되는 언어
3. 배워야 할 언어가 왜 이렇게 많아? ―프로그래밍 언어의 종류
7,000여 개의 자연어 | 700여 개의 프로그래밍 언어 | Hello World 컬렉션
4. 무엇을 어떤 순서로 써야 할까?
고정된 수를 정의하라 | 변하는 수를 선언하라 | 관계를 정의하라 | 프로그래밍 예제
5. 컴퓨터는 순서대로 읽지 않는다
프로그램은 소설이 아니다 | 조건에 맞아야 읽는다 | 반복해서 읽는다
6. 사건이 발생했다! 액션을 취하라! ―윈도 애플리케이션 코딩하기
명령어로 대화하기 | 그림으로 대화하기 | 사건이 발생해야 펼쳐 읽는 책 | 프로그래밍 예제
7. 1권 말고 1페이지씩 주세요
1장의 읽을거리인 웹페이지 | 웹페이지 코딩하기 | 멈춰 있는 페이지 | 움직이는 페이지
8. 말도 안 되는 문장들
번역을 못 하겠어 | 실행을 못 하겠어 | 나보다 계산을 못하네 | 벌레 잡기
9. 독자들의 찬사를 받는 명문장 ―올바른 프로그래밍
프로그래머가 가장 힘들어하는 일 | 이름 짓기 | 주석 달기 | 독자 배려하기
Chapter 3 코딩은 만물의 근본이다 ―세상 만물 이해하기
1. 내 주변에는 어떤 것들이 코딩으로 만들어졌을까?
지능이 만들어내는 3가지 | 코딩된 세상에 내가 살고 있다
2. 내가 살고 있는 현실이 매트릭스는 아닐까?
모니터를 뚫고 나온 가상현실 | 뇌에서 출력한 영상을 보다 | 숫자로 만들어지는 감각들 | 우리는 컴퓨터 시뮬레이션 속에 살고 있다
3. 하드웨어를 코딩한다고?
전자제품을 구성하는 칩들 | 칩 안에 박힌 소스코드
4. 나의 뇌를 코딩할 수 있을까?
의식과 분리된 지능 | 지능은 계산하는 알고리즘일까? | 원자로 만들어진 자연지능 | 비트로 만들어진 인공지능 | “우리의 신경망을 따라 우리가 AI를 만들고” | 최적의 연결 강도를 찾아라 | 인공 신경망의 학습 예제 | AI에게 권리를 인정해줘야 할까? | 물질이 지능을 출현시키는 원리
5. 생명체가 알고리즘이라고?
마침내 발견된 인간의 소스코드 | 인간 소스코드를 편집하는 엔지니어 | 유전자가 사용하는 디지털 코드 | | 디지털 코드대로 조립하는 생명체 | 늙을수록 늘어나는 버그 | 카피 앤 페이스트가 가능해야 생명체
6. 우주가 코딩되었다고?
우주는 수학의 언어로 쓰여 있다 | 1080개의 똑같이 생긴 원자들 | 우주의 소스코드를 추적하는 과학자들 | 태초에 비트가 있었다
Chapter 4 비트는 디지털 세계의 원자다 ―디지털 이해하기
1. 비트만 있으면 무엇이든 만들 수 있다
0과 1은 스마트폰 속 어디에 숨어 있을까? | 컴퓨터는 0과 1을 가지고 논다 | 글자를 0과 1로 바꾸기 | 음악과 사진을 0과 1로 바꾸기
2. 컴퓨터 속을 돋보기로 보면 숫자가 보일까?
컴퓨터가 사용하는 펜 | 구멍 뚫기 | 빛으로 태우기 | 전자를 넣었다 빼기 | 충전하거나 방전하기 | 자석으로 기록하기 | 한 방에 인쇄하기 | DNA에 기록하기 | 원자에 글자 새기기
3. 비트로 만들어진 모니터 속 세상
문서 속에 숨어 있는 0과 1 | 음악 속에 감춰진 0과 1 | 영화를 만들어내는 0과 1
4. 우주를 디지털로 복사할 수 있을까?
비트로 표현되는 자연 세계 | 대충 흉내 내도 될까? | 오차를 무시해도 될까? | 박제된 자연 | LP 레코드판은 CD보다 음질이 좋을까? | 인간은 아날로그일까, 디지털일까?
5. 찰칵할 때 마다 생산되는 메가바이트
1킬로는 1,000이 아니라 1,024 | 비트 | 바이트 | 킬로바이트 | 메가바이트 | 기가바이트
6. 고작 글자 수 줄이는 게 사업 아이템이라고?
0과 1이 너무 많아 | 비슷한 곳은 뭉개라 | 안 바뀐 부분은 재활용하라 | 인코딩과 디코딩
7. ‘복붙’ 할 때 에러가 난다면?
DNA에도 에러가 난다고? | 0이야, 1이야? 헷갈려! | 짝수 개 줄까, 홀수 개 줄까? | Check it out! | 디지털에 원본이 어디 있어? | 영생하는 사진
Chapter 5 컴퓨터는 책 읽는 기계다 ―컴퓨터 이해하기
1. 비트 세계의 장인, 데미우르고스
이데아의 비트를 출력하라 | 아버지의 세금 계산을 도와라 | 미완의 작품 | 튜링 머신과 폰 노이만 구조 | | 언어 처리 기계 | 들어와서 머물다 나간다
2. 컴퓨터로 들어가는 것은 0과 1이다
컴퓨터의 귀 | 컴퓨터의 눈, 코, 입 | 키보드와 마우스
3. 컴퓨터가 내놓는 것은 0과 1이다
컴퓨터의 입, 손, 얼굴 | 0과 1을 소리로 바꾸는 스피커 | 0과 1을 빛으로 바꾸는 모니터 | 0과 1을 실물로 바꾸는 3D 프린터
4. 책꽂이에서 꺼내서, 책상 위에 펴두고, 연습장에 푼다
책꽂이는 하드디스크 | 책상은 램 | 연습장은 CPU 캐시 | 복잡한 일도 결국 단순한 일의 반복이다
5. 교과서와 참고서
자가 점검을 위한 바이오스 | OS라는 교과서 | 앱이라는 참고서 | 차례대로 줄을 서시오
6. 공중에 떠다니는 글자들
컴퓨터는 커뮤니케이션이다 | 전선 속을 이동하는 글자들 | 번쩍이는 빛을 타고 날아가는 글자들 | 안 보이는 전파를 타고 날아가는 글자들 | 바닷속을 헤엄치는 글자들 | 소리를 타고 이동하는 글자들 | 외계인에게 보낸 편지 | 행성 간 통신에선 너무나 느린 빛의 속도 | 글자는 길을 따라 걷는다 | 내가 ‘아’ 할 테니 너는 ‘어’ 해


(관련기사, 출처: 한국일보
​더 쉽게, 더 일찍…진화하는 코딩교육
2018-03-21 (수) 성행경 기자

돈내고 학원 다니지 않아도, 유치원생도 게임·애니 뚝딱
세계각국 일찌감치 교육 의무화, 핀란드에선 5~6세 코딩대회도

한국 내 초등학교 4학년 민우는 요즘 코딩으로 간단한 게임과 애니메이션을 만드는 데 푹 빠져 있다. 방과후학교에서 코딩을 배운 뒤로는 엄마 스마트폰으로 모바일게임을 하는 시간이 크게 줄었다. 대신 본인이나 친구들이 만든 게임을 하거나 애니메이션을 돌려보는 시간이 늘었다. 민우가 주로 이용하는 코딩 언어는 ‘스크래치’다.

매사추세츠 공대(MIT)와 레고가 공동 제작한 스크래치는 ‘드래그앤드롭(drag & drop)’ 기능을 이용해 코드를 만들 수 있는 블록으로 작업한다. 블록을 끌어다 조합하면 간단한 게임과 애니메이션을 제작할 수 있다.

각각의 블록은 한가지 기능을 하도록 명령하고 블록들이 연결돼 ‘스크립트’로 불리는 코드 덩어리를 만든다. 직관적이고 간편하게 코딩할 수 있다는 장점 때문에 스크래치는 민우 같은 코딩 입문자에게 안성맞춤이다.
주로 8~16세를 대상으로 하며 40개 이상의 언어가 사용된다. 스크래치로 코딩의 재미에 푹 빠진 민우는 고학년이 되면 ‘파이선(Python)’ 같은 고급 코딩언어도 배워볼 참이다.

코딩이 공교육으로 편입되면서 벌써 사교육 열풍을 우려하는 목소리가 나오지만 코딩언어 역시 날로 진화하므로 쉽게 배워 활용할 수 있다. 굳이 학원을 다니지 않아도 될 만큼 간단하고 편리하다. 스크래치 같은 코딩언어는 유치원생도 쉽게 배울 수 있다. 핀란드에서는 5~6세를 대상으로 한 코딩대회가 열릴 정도다.

코딩 입문자들을 위한 플랫폼도 다양하다. 미국의 비영리 교육단체 ‘코드’가 만든 홈페이지(www.code.org)도 그중 하나다. 빌 게이츠 마이크로소프트(MS) 창업자와 마크 저커버그 페이스북 창업자 등이 1,000만달러(약 108억원)를 투자해 만든 사이트다.

언어를 막 배운 4~6세를 대상으로 한 과정1을 비롯해 과정2(6세 이상), 과정3(8~10세), 과정4(10~13세) 등 연령대별로 세분돼 있다. 스크래치처럼 드래그앤드롭 방식으로 블록을 움직여 간단한 게임을 만들 수 있고 자바스크립트·파이선 같은 고급언어를 사용해 복잡한 게임이나 애니메이션을 제작할 수도 있다. 지금까지 2,700만명이 이용했다.

‘엔트리’(www.playentry.org)는 ‘한국판 코드’다. 코드처럼 블록을 이용해 코딩을 쉽게 배울 수 있도록 프로그램을 제공한다. 코딩과 소프트웨어의 기본원리를 쉽게 배울 수 있도록 온라인 코딩 파티 등 다양한 이벤트도 열고 있다.

스크래치와 파이선 등 코딩 언어의 진화는 곧 코딩의 대중화로 직결되고 있다. 지난 2016년 기준으로 가장 많이 사용한 코딩언어는 파이선(26.7%)이며 자바(22.6%), C++(9.9%)가 뒤를 이었다.

최성일 소프트웨어교육연구소장은 “자바나 C언어에 비해 쉽고 직관적인 코딩언어가 많이 개발되면서 코딩에 대한 거부감이 많이 줄었다”면서 “코딩언어가 진화했듯이 학교에서 코딩을 가르치는 방식과 평가 방식도 달라져야 할 것”이라고 말했다.

세계 각국은 일찌감치 코딩을 정규 교과과정에 넣어 소프트웨어 인재를 체계적으로 양성하고 있다. 중국은 2001년부터 필수과목으로 지정된 ‘종합실천활동’에서 정보기술 교육을 실시하고 있고 미국은 2011년 초중고교의 ‘컴퓨터과학’ 과목 교육과정을 컴퓨팅 사고력 중심으로 개정했다.

인도도 2013년부터 소프트웨어 교육을 초중등 필수과목으로 지정했고 영국 역시 이듬해부터 코딩교육을 초중고교의 필수 교과과정으로 도입했다. ‘발트의 호랑이’로 불리는 에스토니아는 1992년부터 모든 학생에게 코딩을 가르쳐 ‘정보기술(IT) 강국’으로 발돋움했다.

하지만 아쉽게도 한국은 코딩교육에서도 ‘패스트팔로어’(빠른 추격자) 신세다. 올해부터 중고등학교 1학년 학생들은 연간 34시간 이상 학교에서 코딩교육을 필수로 받고 내년에는 초등학교 5·6학년을 대상으로 연간 17시간 이상 소프트웨어 기초교육이 실시된다. 김정호 KAIST 전기 및 전자공학부 교수는 “우리나라가 앞으로 기대할 수 있는 분야는 소프트웨어밖에 없다”며 “다소 늦었지만 코딩교육을 통해 창의적인 인재를 길러내려면 좀 더 일찍인 초등학교 1학년부터 시작해야 한다”고 강조했다.

반응형