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

Python 배움터

본 사이트의 강의는 일반 교재처럼 단원별로 지식을 나열하기 보다는 전체적인 뼈대를 먼저 세우고 살을 붙여나가는 학습을 추구하고 있어요. 다만, 단원별로 문법 지식들이 어떻게 구성되는지 확인하는 것도 중요하기에, 문법 노트는 여느 교재들과 비슷한 구성을 하고 있어요. 부디, 위 두 방향을 동시에 오고가는 입체적이고 다면적인 학습을 해 나가기 바랍니다. 또한, 프로그래밍 언어라는 말 그대로 새로운 "언어"를 익히는 것이기 때문에, 몇 번씩 다시 보는 반복적인 학습이 반드시 수반되어야 한다는 점 잊지 마세요.

기계학습(Machine Learing)과 데이터분석(Data Analysis)를 위해 꼭 알아야 하는 Python! 인공지능(AI) 시대를 함께 준비해 볼까요?

뼈대 세우기
번호 제목 개요
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





살 붙이기
번호 제목 개요
0 준비중 준비중





실무 - Web / Network
번호 제목 개요
0 Flask Web Framework 로봇이나 어떤 시스템에 web 기반으로 user interface를 간단하게 구현하고자 할 때 유용한 Flask 라이브러리를 사용해 볼까요?












발자취

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

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