공 지

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

C/C++ 강의 C++의 핵심, 클래스를 업로드 했습니다.

실무 Python 강의 Flask Web Framework 를 올렸습니다.












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

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

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

일단 배워두면 Java, Python 등 다른 프로그래밍 언어들은 아주 쉽게 만들어 주는, 프로그래밍 언어들의 왕이자 뿌리 C/C++! 인공지능(AI), 로보틱스(Robotics), 게임개발 등 거의 모든 분야에서 사용되는 강력한 무기를 만들어 보세요.

뼈대 세우기
번호 제목 개요
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)
7 main 함수 해부하기 - 배열이란? 동일한 데이터 타입을 갖는 여러개의 값들을 다룬다면? 배열이 가장 편리한 방법이랍니다.

[새로 배울 문법]
- 배열 (Array)
8 main 함수 해부하기 - 포인터란? 선언된 변수가 실제로 차지하고 있는 메모리의 위치를 알 수 있어요!

[새로 배울 문법]
- 포인터 (Pointer)
9 main 함수 해부하기 - 문자와 문자열 문자형은 이미 공부를 했는데요. 문자를 여러개 모아놓은 문자열에 대해서 공부를 해 볼까해요.

[새로 배울 문법]
- 문자열 (String of characters)
10 main 함수 해부하기 - 포인터 배열 포인터를 요소로 갖는 배열을 공부하면서 main 함수 해부하기의 마무리를 준비해 볼게요.

[새로 배울 문법]
- 포인터(의) 배열 (Array of Pointer)
11 main 함수 해부하기 - 마무리 지금까지 공부해 오면서 미처 못 다한 이야기 몇 가지만 설명하고 main 함수 해부하기의 마무리를 해 볼게요.

[새로 배울 문법]
- 전달인자(Argument) 없는 main 함수
12 while 루프를 이용한 반복 처리 어떤 처리를 반복적으로 실행하는 방법을 공부해 볼게요.

[새로 배울 문법]
- while 루프(loop)
13 if 문을 이용한 조건 처리 어떤 조건들이 참일 때와 거짓일 때를 구분하여 각기 다른 처리를 하는 방법을 공부해 볼게요.

[새로 배울 문법]
- if...else if...else... 문
14 구조체로 데이터의 묶음 만들기 여러 데이터들을 다루기 편리하게 하나의 묶음으로 만드는 방법을 공부해 볼게요.

[새로 배울 문법]
- 구조체 (Structure)
15 C++에서의 구조체 C++에서 구조체는 그 기능이 확장이 된답니다. 어떻게 확장되는지 알아볼까요?

[새로 배울 문법]
- 구조체 안의 함수
16 C++의 핵심, 클래스 구조체가 C++에서 어떻게 확장되었는지 확인했으니, 이번에는 클래스(Class)로 구조체를 대체해 볼까요? 클래스는 C를 C++로 확장시켜주는 핵심 개념이랍니다.

[새로 배울 문법]
- 객체 지향 프로그래밍 (OOP: Object-Oriented Programming)
- 클래스 (Class)

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

기계학습(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