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


공 지

본 사이트는 지속적으로 업데이트 되고 있답니다. 혹시, 화면 구성이 이상하게 보인다면, "Ctrl+F5"를 이용하여 "새로 고침"을 시도해 보세요.

Linux 사용 시 겪게 되는 문제 해결 방법들을 이곳에 틈날때마나 하나씩 올릴 계획입니다. 도움이 되길 바래요.












4차 산업혁명의 시대라고 하는 요즘, 점점 더 중요성이 강조되고 있는 코딩!
스마트 폰으로 찍는 디지털 사진의 각 화소들이, 사실은 색상이 아닌 색상을 나타내는 숫자들로 구성이 되어 있다는 것 알고 있나요? 이 수들을 잘 계산하고 제어하여 원하는 결과를 얻게 해주는 것이 코딩이지요.
매일 즐기는 게임, 정보를 검색하는 웹 사이트, 알아서 움직이는 인공지능(AI) 로봇, 자동으로 속도를 조절하는 자율 주행 자동차. 이 모든 것들에도 코딩은 꼭 필요한 것이랍니다.
코딩은 공학과는 아무런 관련이 없는 사람들도 알아두면 그 유용함이 무궁무진하답니다.
가계부 계산, 주식 투자 분석 등 적용할 수 있는 범위가 아주 넓지요.

미국에서 공학박사 학위를 취득 후, 역시 미국에서 활동하고 있는 한 공학자가 직접 만드는 코딩 강의를 만나보세요! 현 코딩 교육법에서 느꼈던 아쉬움을 반영하여, 보다 쉽게 코딩을 공부하기 바라는 마음으로 만들고 있답니다.

강의에서 문법 설명을 틈날 때마다 하겠지만, 본인이 필요하다고 느끼면, 귀찮아 하지 말고 반드시 문법 노트를 수시로 보면서 복습하도록 하세요.
실제 사례의 관점에서도 보고, 문법의 관점에서 보는 등 입체적이고 다면적인 학습을 해야 훨씬 기억도 잘 나고 응용력도 늘어 난답니다. 또한, 말 그대로 새로운 "언어"를 익히는 것이기 때문에, 몇 번씩 다시 보는 반복적인 학습이 반드시 수반되어야 해요.
참고로, 강의 중에 수시로 Linux 명령어도 사용하게 될 거예요. 즉, 강의를 통해 Linux도 자연스럽게 배워가는 덤도 있다는 이야기죠~!

번호 제목 개요
0 Python 시작~! 왜 Python이 중요한지 간단하게 이야기 해보고, Ubuntu와 Python을 설치해 봅시다.
1 로봇 경로 만들기 보고서 등에 첨부할 간단한 로봇 경로를 보여주는 그래프를 만들어 볼까요?

[새로 배울 문법 / 라이브러리]
- import, list
- matplotlib
2 다른 순간의 로봇 위치들 보여주기 다른 순간에 관찰한 로봇의 위치들을 여러개의 그래프로 동시에 보여줘 볼까요?

[새로 배울 문법 / 라이브러리]
- matplotlib의 subplot
3 로봇 위치들을 동영상으로 보여주기 로봇의 시간에 따른 위치들을 그래프 상에서 동영상처럼 보여줘 볼까요?

[새로 배울 문법 / 라이브러리]
- for 루프
4 다른 마커로 로봇 위치들을 보여주기 로봇의 시작점과 도착점, 그리고 다른 위치들을 조건에 따라 다른 마커로 보여줄까요?

[새로 배울 문법 / 라이브러리]
- if/else 문
5 Numpy 이용하여 로봇 위치들을 동영상으로 보여주기 로봇의 시간에 따른 위치들을 그래프 상에서 동영상처럼 보여줬었죠? Numpy의 array를 이용해서 똑같이 만들어 보지요.

[새로 배울 문법 / 라이브러리]
- numpy와 array
6 데이터 분석의 기초인 균등분포 난수 공부하기 센서 신호, 경제 지표 등 실제 데이터들을 수많은 불확실성을 내포하고 있어요. 그 불확실성을 분석하기 위해, 난수를 많이 이용하는데요. 그 중 기계학습 등에서도 사용되는 균등분포 난수에 대해 알아 봅시다.
(막상 보면 어려운 내용 없으니 겁먹지 마세요~~!!)

[새로 배울 문법 / 라이브러리]
- numpy의 uniform()을 이용한 균등분포 난수 생성
7 무작위 방향으로 로봇 움직이기 로봇을 좌, 우, 위, 아래 중 무작위 방향으로 움직여 볼까요? 이를 통해, 요즘 많이 회자되는 기계학습(Machine Learning)의 한 종류인 강화학습(Reinforcement Learning)의 원리를 조금이나마 이해해 볼까요?
(막상 보면 어려운 내용 없으니 겁먹지 마세요~~!!)

[새로 배울 문법 / 라이브러리]
- 없음
8 주식 분석의 기본인 이동 평균선 만들기 경제 뉴스에서 주식 분석할 때 항상 나오는 용어인 이동 평균선 아시나요? 이동 평균(Moving Average), 사실 공학적으로는 신호 처리(Signal Processing)의 기초적인 기법 중 하나랍니다. Python의 Function(함수)으로 코딩해 보면서 공학적/경제적 소양도 하나 습득해 보아요~
(막상 보면 어려운 내용 없으니 겁먹지 마세요~~!!)

[새로 배울 문법 / 라이브러리]
- function
9 간단한 로봇 게임 만들기 키보드를 누르면 로봇이 움직이는 간단한 게임을 만들어 볼까요?

[새로 배울 문법 / 라이브러리]
- While 루프
- 무한루프
10 키클봇 코딩하기 지금까지 주로 로봇을 예로 코딩을 해오고 있는데요. 로봇을 코드 상에서 유기체로서의 모습을 갖추도록 해볼거예요.
클래스(Class)를 이용할 건데요, C++이나 Java같은 다른 프로그래밍 언어에서도 굉장히 중요한 개념이니 꼭 알아둬야 한답니다.

[새로 배울 문법 / 라이브러리]
- Class(클래스)
11 네트워크 통신하기 요즘 웹 사이트, 모바일 게임, 클라우드(Cloud) 등 대부분의 컨텐츠나 기술이 인터넷을 기반으로 되어 있지요?
이런 네트워크를 기반으로 소통/통신을 하는 한 방법을 알아 볼까요?
친구들과 새로운 채팅 프로그램을 만들 수도 있고, 로봇을 원격으로 조종할 수도 있답니다.

[새로 배울 문법 / 라이브러리]
- 튜플(Tuple)
- 소켓(Socket)
12 원격으로 키클봇 조종하기 소켓을 이용한 네트워크 통신을 응용해서 원격으로 키클봇을 조종해 볼까요?
미국에는 실제로 이와 같이 자율주행차를 원격 조종하는 기술을 개발하는 신생 기업들이 있답니다.

[새로 배울 문법 / 라이브러리]
- 명령 클라이언트(Client)
- 키클봇 서버(Server)
13 라이브러리로 코딩을 고급스럽게 Python의 코딩 기법들 중 기본적인 내용들을 여려가지 살펴보고 있어요.
이제는 코드의 효율성, 가독성, 확장성 등을 위해서 조금씩 깊이를 더해가면서 코딩의 수준을 높여가보면 어떨까해요.
그 첫걸음으로 키클봇 서버 코드를 조~금만 바꿔 볼게요.

[새로 배울 문법 / 라이브러리]
- 나만의 라이브러리
- 특수 변수 __name__
14 딕셔너리로 코딩을 편리하게 Python의 또 다른 데이터 타입인 딕셔너리(Dictionary)를 이용해서 코딩을 편리하게 해볼까요?
이번에도 키클봇 서버 코드를 조~금만 바꿔 볼게요. 정말 조금만 바꿀 거랍니다.

[새로 배울 문법 / 라이브러리]
- 딕셔너리(Dictionary)
15 예외 처리로 코딩을 안전하게 예상하지 못한 이유로 인해, 프로그램이 비정상적인 방식으로 종료되거나 멈추는 경우를 종종 보게되요. 비정상적인 작동을 야기하는 원인을 잘 처리해 주면 프로그램이 종료되거나 멈추는 것을 방지할 수 있답니다.
이러한 것을 예외(Exception) 처리라고 하는데요. 키클봇 예제를 통해 직접 확인해 보아요.
여러가지 Python 라이브러리들을 이용하거나 조금 더 다양한 기능을 코딩하고자 하면 꼭 알아둬야 하는 내용이라는 점 유념하세요.

[새로 배울 문법 / 라이브러리]
- 예외(Exception) 처리
- try / catch

강의에서 문법 설명을 틈날 때마다 하겠지만, 본인이 필요하다고 느끼면, 귀찮아 하지 말고 반드시 문법 노트를 수시로 보면서 복습하도록 하세요.
실제 사례의 관점에서도 보고, 문법의 관점에서 보는 등 입체적이고 다면적인 학습을 해야 훨씬 기억도 잘 나고 응용력도 늘어 난답니다. 또한, 말 그대로 새로운 "언어"를 익히는 것이기 때문에, 몇 번씩 다시 보는 반복적인 학습이 반드시 수반되어야 해요.
참고로, 강의 중에 수시로 Linux 명령어도 사용하게 될 거예요. 즉, 강의를 통해 Linux도 자연스럽게 배워가는 덤도 있다는 이야기죠~!

번호 제목 개요
0 C/C++ 시작~! C/C++의 중요성과 어떤 특성을 갖고 있는지 간단하게 이야기 해보고, Ubuntu에서 C/C++를 컴파일해 봅시다.
1 첫 대면..
main 함수
C/C++ 코딩을 하면, 제일 먼저 만나게 되는 main 함수를 아주 간단히 알아볼게요.
main 함수가 어떻게 생겼는지 살짝 보기만 할 겁니다.

[새로 배울 문법]
- main 함수
2 main 함수 해부하기 - 정수형 본격적으로 main 함수 코드들이 의미하는 것들을 알아볼까요?

[새로 배울 문법]
- 정수형 (integer) 데이터 타입 (data type)
3 main 함수 해부하기 - 문자형 정수형 데이터 타입에 대해서 공부했었죠? 이번에는 문자형 (char)에 대해서 알아볼까요?

[새로 배울 문법]
- 문자형 (character) 데이터 타입 (data type)
4 main 함수 해부하기 - 함수란? main 함수라고 할 때, "함수"라는 것이 무엇인지 자세히 알아볼까요?

[새로 배울 문법]
- 함수 (Function)
5 main 함수 실행하기 main 함수에서 메세지를 출력해 볼게요.

[새로 배울 문법]
- 라이브러리(Library)와 헤더파일(Header File)
- #include 전처리기(Pre-processor)
- printf 함수
6 main 함수 안의 코드 처리 결과 출력하기 main 함수가 실행될 때 처리되는 코드의 결과를 출력해 볼게요.

[새로 배울 문법]
- printf 함수 - 서식 문자열 (Formatted String)







발자취

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

바로가기
Python 배움터
C/C++ 배움터
About
Contact
Privacy Policy