미국 공학박사 아빠의 코딩 연구소

코딩 공부를 시작해 볼까요? "코딩 교실"메뉴로 가서 그저 하나씩 따라가면 되요! 교실 입장

About

미국에서 공학박사 학위를 취득 후, 역시 미국 내 로보틱스(Robotics)/인공지능(AI) 분야에서 활동 중인
공학자이자 두 아이의 아빠예요.

지금까지 보고 느끼고 후회하며 배워 온 소중한 경험들을
제 아이들과 효과적인 방법으로 공유하고자 직접 코딩 교육 자료들을 만들고 있지요.

최근 코딩에 대한 관심이 많아졌지요.
하지만, 대부분 단순 문법 중심으로 배우고 있어요.
안타깝지만, 이런 식으로 공부하면 지루하고 오래 걸리고 쉽게 잊어버린답니다.

게다가, 문법만 공부하면 실제 코딩을 사용하는 능력을 기르기도 힘들지요.
코딩은 컴퓨터와 의사소통하는 도구, 즉, 언어예요.
어려운 단어나 문법 많이 안다고 논술 잘하고 말 잘하는 것 아니예요.
기본적인 단어들이나 간단한 문법이라도, 명확하게 생각을 전달하는 방법을 알면, 명문장과 명연설로 재탄생하는 법.

단순 문법 중심의 공부 보다는
실제 사례들을 통해 자연스럽게 코딩 문법을 익혀 가는 것이 훨씬 재미있고 응용력을 키우기 좋아요.

제 아이들을 위해 만든 강의 자료들을 이 곳에 모두 공개합니다.
저의 경험이 유용하게 나누어지기를 바랍니다.


미국 공학 박사 아빠

공지

# 본 사이트에 "키클 코딩랩"이라는 새 이름을 지어 줬어요. 이제 사이트에 접속하기 위해서, http://www.kiklecoding.com 혹은 http://engphd.ddns.net으로 들어오시면 됩니다.
이미 사용 중이던 http://www.engphd.com이나 http://engphd.ddns.net/engphd_coding도 계속 사용 가능하나, 2020년에는 중지할 계획이니 주의하세요.

# 본 사이트는 계속해서 확장 중에 있어요. 그로 인해, 일시적으로 페이지가 비정상적으로 보일 수가 있는데요. 그럴때면, Ctrl+F5를 눌러보세요.

새소식

# 본 사이트에 "키클 코딩랩"이라는 새 이름을 지어 주었어요. "키클"은 순우리말로 "키와 마음이 클 사람"이라는 의미랍니다. 제 아이들이 커가는 과정에 도움이 되고자 코딩 교육 자료를 만들듯이, 여러분들의 성장에도 도움이 되기를 바라는 마음으로 작명했답니다. 이름에 걸맞는 주소도 새로 만들었어요 --> http://www.kiklecoding.com

# Python 강의 라이브러리로 코딩을 고급스럽게가 올라왔어요.
코드의 효율성, 가독성, 확장성 등을 위해서 조금씩 깊이를 더해가면서 코딩의 수준을 높여볼까요?
그 첫걸음으로, 키클봇 라이브러리를 만들어서 살짝 고급스럽게 바꿔 볼게요.

# Python 강의 원격으로 키클봇 조종하기가 올라왔어요.
지금까지 공부한 내용들과 작성한 코드들을 모아서 작은 프로젝트를 수행해 보려고해요. 원격으로 키클봇(KikleBot)을 조종하는 클라이언트와 서버를 코딩해 보아요!

# Python 강의 네트워크 통신하기가 올라왔어요.
소켓(Socket)을 이용한 네트워크 통신 코딩을 할거랍니다. 현재 세상을 촘촘히 연결하는 인터넷 등의 네트워크에서 어떠한 방식으로 의사소통이 이루어지는지 알아 보세요. 튜플(Tuple)이라는 데이터 타입도 함꼐 공부할 거예요.

# Python 강의 키클봇 코딩하기가 올라왔어요.
클래스(Class)를 이용하여 로봇을 하나의 유기체로서 코딩을 할거랍니다. 클래스는 C++이나 Java같은 다른 프로그래밍 언어에서도 굉장히 중요한 개념이니 꼭 알아둬야 한답니다.

# Python 강의 간단한 로봇 게임 만들기가 올라왔어요.
While 문을 이용하여 무한루프를 코딩해 보고, 로봇도 키보드로 움직여 보아요.

# Python 강의 주식 분석의 기본인 이동 평균선 만들기가 올라왔어요.
Function을 이용하여 이동 평균 (Moving Average) 함수를 코딩해보아요. 그리고 이동 평균의 공학적/경제적인 의미도 함께 알아볼게요.

# Python 강의 무작위 방향으로 로봇 움직이기가 새로 올라왔어요.
Numpy의 array()와 uniform()을 이용하여 로봇을 좌, 우, 위, 아래 중 무작위 방향으로 움직여 볼거예요.
이를 통해, 요즘 많이 회자되는 기계학습(Machine Learning)의 한 종류인 강화학습(Reinforcement Learning)의 원리를 조금이나마 이해해 볼 수 있을 거예요.

Q&A

여러 질문들 중 공유할 만한 것과 그에 대한 답변들입니다.


[질문] VirtualBox의 Ubuntu 공유폴더에서 텍스트 파일을 생성하고 gedit에서 내용 입력 후 저장을 하려하는데, 저장이 안되고 "Text file busy"라는 에러가 뜨네요.

답변> 이 문제는 인터넷 상의 어떤 사람에 의하면, 약 2009년 쯤에 이미 보고가 되었는데, 아직 수정이 안되었다고 하네요. 저 또한 이 문제를 여전히 가지고 있는데요. 해결책이 없는 것은 아닙니다. 말하자면, 우회로가 있어요.

gedit의 Edit 메뉴의 Preferences 하위메뉴로 들어가세요. 그리고 새로 뜬 창에서 Editor 탭으로 들어가구요. "Create a backup copy of files before saving"을 체크한 후에 메뉴에서 나오세요. 이제 텍스트 파일을 원하는대로 편집하시고, 저장을 누르세요. 에러 메세지가 여전히 뜨지요? 에러 메세지의 오른쪽에 Cancel 버튼을 누르구요. 다시 저장을 누르세요. 그럼 신기하게도 저장이 잘 될거예요.

또 다른 우회 방법은, 텍스트 파일을 공유폴더 외의 다른 외부 폴더에서 생성/저장 후, 그 파일을 공유폴더로 복사해서 붙여 넣는 것이랍니다.
(위 질문/답변은 관련 강의에 반영되었습니다.)


[질문] 강의를 보면서는 코딩을 잘 따라했는데, 혼자서 다시 하라면 못 할 것 같네요. 원래 이런 건가요?

답변> 지극히 정상이랍니다. 음성이 결여 되어 있을 뿐, 이것도 언어이기 때문에 한 두번 연습해서는 자유롭게 구사할 수 없어요. 반복해서 보고, 직접 연습해보고 하는 과정이 필요하답니다.















강의들은 모두 무료입니다. 단, 저작권은 키클 코딩랩 에 있으며, 무단 복제 및 배포를 엄금합니다. 이를 어길 시, 본 사이트의 서버가 미국에 있으므로, 미국법에 의해 처벌될 수도 있습니다.

발자취

2019-09-11 "키클 코딩랩 - 미국 공학박사 아빠의 코딩 연구소"로 이름 변경
2019-06-28 코딩 교실 공개
2019-03-18 코딩 교실 제작 시작

바로가기