본문 바로가기
스크래치/스크래치 기본

1. 스크래치에 대해서

by 할거없네 2017. 10. 28.

스크래치에 대해서


안녕하세요. 승승이입니다.


이 글을 쓰는 시점은 2017년 10월 28일입니다.

네이버에서 썼던 제 블로그 글을 조금 더 추가해서 써볼까 합니다.


먼저 우리나라의 코딩교육이 2018년도부터 제대로 도입을 하는거 같네요... 의무화인거 같습니다.

저도 어렸을때 코딩을 배웠더라면 참 재밌게 했을텐데 제가 컴퓨터를 접했을 때는 타자연습이나 아래한글정도 배우는 수준이었습니다.

세상이 바뀌면서 컴퓨터를 다루는 수준을 조금 더 높게 요구하는거 같습니다.

비교하자면 영어도 그렇구요. 제 교육과정에서 영어는 중학교때 알파벳을 배웠습니다. 요즘은 더욱 빠르게 하구요.

물론 영어도 사는데 꼭 필요한 과목은 아닙니다. 그러나 정말 유용하고 어디서든 사용하고 있죠. 간판과 메뉴, 노래가사등 정말 수없이 많이 영어가 쓰여 있어서 불편하기에 이르게 됩니다.


다른 과목들도 그렇습니다. 영어만큼은 아니지만 과학과 수학에 대해서 과학적 지식과 수학적 지식을 모르면 어쩌다가 가끔식 불편할때가 있습니다. 미적분을 모른다고 사는데 지장이 없으나, 대학교 수준의 지식을 습득하는데는 기본바탕이 됩니다. 물리법칙 공식들도 실생활에서는 거의 쓸일이 없지만 위와 비슷한 이유로 필요하고, 대학교를 안간다 하더라도 요즘에 판치는 사이비 유사과학에 덜 휘둘리겠죠...


코딩도 사실 대부분이 왜 배우냐라는 입장이 많습니다. 배울게 많은데 더 부담된다고.


맞는말입니다. 그러나 음악, 미술과 같이 하나의 교양으로써 배우는것도 참 좋다고 생각됩니다.

앞으로는 어플이나 게임들도 우리가 지금 작성하는 문서와 같이 스스로 필요한걸 만들고 사용하는 시대가 올지도 모르는 일이니까요. ㅎㅎ

미래가 어떻게 될 지 모르겠지만 수많은 회사들이 컴퓨터 능력에 문서작업뿐만 아니라 코딩 능력도 요구하는 시대가 될지도 모릅니다. 당장에 엑셀 매크로 능력자까지 필요하는 경우도 있으니까요.


당장에는 요즘 대학교 공대에서는 코딩능력이 거의 필수적입니다. 적어도 제가 다녀온 학교에서 전자, 전기공학은 당연하고 기계같은 경우 전기차, 건축공학의 경우 IOT를 적용한 건축물을 졸업작품을 내놓더라구요. 즉, 프로그래밍해서 무언가 제어하는 수준은 거의 필수적이게 되었습니다. 지금 배우고 있는 아이들이 대학교 간다면 이것보다 더 높은 수준으로 작품을 만들게 될 것입니다.


그래서 코딩능력이 마냥 잠깐 쓰다가 버려지는 지식이 아니라, 다시 언젠가 만나게 될 과목이 될 것입니다.





스크래치는 mit가 만든 교육용 툴입니다.

우리나라에서는 '코딩'열풍에 힘입어서 많은 학생들이 배우고 있습니다.

스크래치 전에는 C언어등을 배웠는데, 어린 학생들이 하기에는 이해하기 어렵습니다. 그래서 언어 공부는 특정 컴퓨터 학원에서 배우거나 대학교 수준에서 배웁니다.

그런데 대학교에서 C언어를 배우기에는 너무 늦은 감이 있습니다. 대학교 1학년때부터 C언어에서 'Hello world!'출력부터 배우기 시작하는데, 코딩에 대한 이해도가 낮으면 수업을 따라가기에 바쁩니다.

이렇게 교육의 정점인 대학교와 같은 고급 교육과정에서 코딩을 배우는 이유는 크게 3가지 입니다.


1. 수학과 물리의 시뮬레이션 (대학교 전반적임, 요즘 문과도 컴퓨터 시뮬레이션 필수)

2. 로봇 및 전자제어, AVR등 보드 개발 (전기, 전자과)

3. 게임 및 어플리케이션 (컴퓨터 공학)


1. 수학과 물리의 시뮬레이션

현장에서 어떠한 제품을 만들 때 설계를 진행합니다. 이때 설계는 아무렇게 하는게 아니고 치밀한 수학적인 계산이 필요합니다. 가령 제품의 두께가 두꺼울수록 튼튼하겠지만 값이 비싸집니다. 가격은 낮추고 성능을 높이기 위해서는 최적화 되기 위한 설계가 동반되어야 하는데, 설계 변경마다 제품을 만들어보는 것은 엄청난 돈이 듭니다. 하지만 컴퓨터 프로그램으로 만들어 보고 조금씩 수정하면서 조절을 한다면 가격은 어마어마하게 줄여들 수 있습니다. 시뮬레이션은 직접 만들어 보기 전에 이렇게 만들면 어떻게 될까 하는 성능의 평가에 있습니다. 그러기 위해서는 제품에 대한 수학적 모델링을 할 수 있는 지식이 필요하기에, 미래의 엔지니어들에게 수학과 과학적 지식을 지속적으로 요구되고 있습니다. 또한 이를 통해서 시뮬레이션을 하기 위해서는 그 수학 모델링을 컴퓨터 언어로 코딩하는 과정에서 코딩 능력이 요구됩니다. 대학교에서 대표적으로 사용되는 수학 시뮬레이션 프로그램은 Matlab이 있습니다. 수학과 과학적 수식을 코드로 풀어 써서 이것을 시뮬레이션을 하는 것이 특징입니다. 






2. 로봇 및 전자제어, AVR등의 보드 제작

프로그램을 단순히 컴퓨터에서 동작하는 게임만 생각하는 사람은 많지 않을 것입니다. 우리 주변에서 보고 있는 모든 전자제품들은 이것을 제어하는 컨트롤러가 있습니다. 컨트롤러들은 각각 프로그램이 내장되어 있어 적절하게 움직이게 됩니다. 이것을 만드는 것도 고급 능력중에 하나입니다. 가장 핵심적인 동작은 '센서'의 감지와 '모터'의 동작이 있습니다. 센서값을 읽어서 모터가 어떻게 동작하는지 명령을 내려줘야 합니다. 특히 '모터 제어'의 중요성을 강조 하고 싶은데, 전기가 동력으로 사용할 수 있는 거의 유일한 수단이 '모터'이기 때문에, 대학교의 전기와 전자과의 최대 과업중 하나는 모터에 있다고 할 정도입니다. 모터 제어 기술은 대학교 고학력에서 배울 정도의 고급 능력인데, 이것을 구현하기 위해서는 전기적인 지식이 바탕되어야 하며, 역시 프로그램 코딩 실력이 받쳐주어야 합니다.







3. 게임 및 어플리케이션 

대략 2005년도정도 부터 스마트폰의 보급이 시작되었습니다. 국내 보급의 시초를 따지면 아이폰4의 도입이라고 보시면 되죠. 그로 인해서 컴퓨터 공학과에서는 요즘에 주로 스마트폰의 어플리케이션 개발을 많이 하고 있습니다. 대부분이 생각하고 있는 '코딩'을 배우는 목적이라고 생각하시면 됩니다. 우리나라에서의 컴퓨터 공학과를 나와 IT쪽을 배운다면 온라인 게임 개발이나 스마트폰 어플리케이션, 그리고 제가 미처 언급하지 않은 수많은 응용 분야들이 있겠네요. 이쪽 분야는 컴퓨터 프로그래밍의 아주 깊게 파고드는 기술입니다. 물론 게임만들기 위한 쉬운 툴도 여러가지 있습니다. 가장 대표적으로 RPG만들기 시리즈가 있겠습니다.





코딩은 결국 대학교에 와서 거의 써먹게 되는 주요 분야 중 하나입니다. 과거에는 학새들에게 가르치기에는 너무나 어려운 수준이었지만, 지금은 스크래치나 엔트리와 같은 교육용 툴의 개발과 보급으로 선행 학습이 가능하게 되었습니다.

스크래치와 같은 코딩 교육을 통해서 배우는 것은 무언가를 만들고 싶을 때 프로그래밍 언어로 구현할 수 있는 감각(알고리즘 설계)입니다.  스크래치를 통해 게임 및 다양한 프로젝트를 만들면서 실력을 늘려보면, 다른 프로그램 툴을 사용해서도 여전히 만들 수 있습니다.







댓글