처음 만나는 알고리즘 First Step 시리즈 3
이토 시즈카 지음, 정인식 옮김 / 제이펍 / 2017년 4월
평점 :
절판



알고리즘이 뭘까요? 큰애가 이번에 학년이 높아지면서 코딩수업을 학교에서 받게 되었어요

왜 우리 아이들이 코딩수업까지 학교에서 해야될까 싶었지만

4차 산업혁명을 맞이한 아이들에게 IT는 뗄레야 뗄 수 없는 분야 같긴했어요

너무 어릴때부터 컴퓨터에 노출이 되는게 아닐까 싶긴하지만요

그래서 코딩 수업을 하는데 도움을 주고 싶었어요

그런데 저는 컴퓨터 전공이 아니라서 코딩이라던지 알고리즘이라던지 전혀 무지했거든요

그런데 처음 만나는 알고리즘 이라는 제이펍 출판사의 책에서는

프로그래밍을 처음 배우려는 사람들이나 코딩에 아직 익숙하지 않은 사람들을 위해서

아주 쉬운 입문서라고 해서 관심이 갔어요

아이가 코딩을 처음 배우면서 어려워할 부분들을 제가 배워서 알려주고 싶었거든요

그리고 이 책에서는 정보처리기사에 자주 출제되는 주요 알고리즘을 직접 구현하면서

동시에 최대한 쉽게 설명하고 있다고 하네요

저는 정보처리기사 까지 생각한건 아니라서 조금 더 알 기 쉽게 알고리즘이란 뭔지

왜 알고리즘을 공부하는건지 에 대해서 이해할 수 만 있어도 좋다고 생각했어요

알고리즘은 처음 부터 기초를 제대로 익혀야 개념을 확실히 이해 할 수 있는건데요

책장을 펼쳤는데 몇장을 넘기고 부터는 무슨말인지 ㅠㅠ진짜 잘 모르겠더라고요

1장에서는 알고리즘의 의미와 배우는 목적

2장에서는 변수와 배열의 기본

3장에서는 기본적인 알고리즘

4장에서 12장까지는 알고리즘에 대한 본격적인  학습

이렇게 4장의 챕터로 나누어지는데요

1장은 어느정도 이해가 갔지만 2장부터는 사실 조금 막막했어요

어렴풋이 이런게 알고리즘이구나 하고 읽어내려갔지만 실제로 알고리즘을 직접 실행을 하는 부분들을 처음 접하는 저는

이해하기는 힘들었던것 같아요

데이터구조에서의 변수와 배열, 그리고 알고리즘을 중심으로 꼼꼼하게 알려주지만

저처럼 이걸 어디에 써야겠다는 목적없이 읽다보면 도통 무슨이야기인가? 싶을것 같았네요

하지만 우리 아이처럼 코딩이나 알고리즘이 뭔지 배워서 그걸 이해하고 실행하려는 사람들에게는

오히려 그림을 보면서 이해하기 쉬운 책이 아닌가 싶었네요

프로그래머가 되고 싶다고 해도 갑자기 많은 양의 알고리즘을 배운다는것이 그리 쉬운일이 아니라고 해요

그럼 진짜 어떤 프로그램을 만드는 프로그래머들은 대단한분들같네요

선형탐색법(리니어 서치)
이진탐색법(바이너리 서치)
단순 선택법(선택 정렬)
단순 교환법(버블 정렬)
단순 삽입법(삽입 정렬)
퀵 정렬
에라토스테네서의 체 (소수를 구하는 알고리즘)
유클리드 알고리즘 (최대공약수를 구하는 알고리즘)

4장~12장에서 학습할수있는 알고리즘들이에요 이름만 들어도 정말 코딩, 알고리즘 등의 세계가

내가 전혀 몰랐던 세계라는 생각이 들었어요

이번에 아이가 코딩수업을 하고 스크래치 수업을 한다고 해서 잠깐 스크래치에 대한 교육설명을 들었는데

명령어를 통해서 실행할 수 있도록 하는걸 배운다고 했어요

이 책에서도 알고리즘이란 문제나 과제를 해결하기 위한 절차를 하나하나 구체적인 순서에 따라 표현한 아이디어나 생각이라고 한대요

그러니 같은 명령어라도 어떻게 순서를 하느냐에 따라서 달라지는거겠죠?

요리 레시피도 알고리즘이고 악보 또한 알고리즘이라고 해요

또 우리가 잘 알고 있는 사용설명서도 하나의 알고리즘이라고하네요

이렇게 우리 주위에서도 많이 찾아볼수있는 알고리즘..

단순히 알고리즘이라는 단어만 듣고는 엄청 어렵다고 생각했는데 대략적인 개념이 잡히는듯했어요

알고리즘은 아이디어나 생각이기 때문에 눈에 보이지 않는데 눈에 보이도록 표현하면 사람들에게 전달 할 수있대요

그래서 문장이나 사진 도형적이 기호나 부호 일러스트 등으로 표현한다고 하네요

그런데 우리가 흔히들어본 C언어, 자바

이런 컴퓨터 언어, 프로그래밍 언어로 알고리즘을 작성하면 프로그램이 된다고 해요

어떻게 보면 우리가 게임을 할때 조이스틱을 움직이는것도 하나의 알고리즘이구나 하는 생각을 했어요

좋은 알고리즘은 알기쉽고 속도가 빠르고 효율적이며 재이용하기 쉬운것이라고해요

알고리즘에도 좋고 나쁨이 있다는것에 놀랐네요

알고리즘은 좋은 프로그램을 만들기 위해 필요하다고 해요.

좋은 프로그램이라 함은 속도가 빠르고 효율적이며 범용성이 높아야 한다고 하는데 그런  좋은 프로그램을 만들기 위해서는

그 골격이 되는 좋은 알고리즘을 만들 필요가 있다고 하네요

그래서 알고리즘을 공부하는 첫번째 목적은 좋은 알고리즘을 만드는데 있다고해요

알고리즘을 공부하고 싶어하는 분들이라면 이 책을 통해서 유명한 알고리즘들을 익히고 본인이 숙지해서 금세 써먹어볼수있을것 같아요

저는 알고리즘이라는게 이런거구나 하는것만으로도 유익한 시간이 되었네요

알고리즘 책을 읽으면서 우리아이가 지금부터 배워나가야할 것들이 이런거구나 싶은 생각을 하면서 또 반대로

수많은 알고리즘들을 숙지하려면 국영수를 공부하는것 이상으로 힘이 들것 같다는 생각을 했어요

지금 당장은 초등학교에서 스크래치를 이용한 코딩수업을 하고 중학교 부터는 C언어들을 필수로 배운다고 하는데

아이들의 학업이 점점 갈수록 더 치열해진다는 느낌이 들었네요

그리고 모든아이들이 알고리즘에 대한 이해도가 빨라서 빨리 알고리즘을 학습할수있을거란 생각은 들지 않았어요

어떻게 보면 정말 그 분야를 깊게 파고들어야할것 같았기 때문에요

우리아이가 배우는게 저에게는 생소하고 어려운 것 같았어요

책 마지막에서도 언급하지만 이 책은 처음 알고리즘에 대해서 배우는 사람들에게 어려워 난감하지 않게 알기 쉽게 쓴 책이라서

학문적인 엄격성을 다소 희생할수밖에 없었대요 알고리즘의 도입부 정보밖에 되지 않는다고요

이 책을 읽은 후 다른 입문서에도 도전해보라고요

이 책이 알고리즘의 도입부 정도 밖에 되지 않다니 정말 놀라웠어요

한번 보고 이해못해서 두번읽어본 저에게는 아직도 생소하고 어렵고 막막한데~ 도입부 밖에 되지 않다니...

정말 알고리즘의 세계는 심오한것 같네요

우리아이에게 알고리즘에 대해서 조금 더 쉽게 설명해주려고 했는데 실제 쓰이는 유명한 알고리즘에 대해서 읽어보면서

이건 내가 읽어서 알려줄게 아니라 아이가 직접 읽어보고 궁금한 부분을 선생님께 물어보면서 자기것으로 만드는게 좋을것 같았어요


저처럼 알고리즘이 도대체 뭐야? 하시는분들에게는 한번쯤 읽어보면 괜찮을것 같아서 많은 분들에게 추-천 드리고 싶네요


 


댓글(0) 먼댓글(0) 좋아요(2)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo