ITS's Dev Story


어제 University of California에서 진행하는 Introduction to the Internet of Things and Embedded Systems 강의를 수료하였다.


강좌는 4주로 이루어져 있다.


Week 1 수업에서는 IoT 기본적인 소개와 Example Refrigerator 예로 들어 설명한다. 그리고 IoT 트렌드, 장단점을 소개하며 과제로는 하나의 IoT 디바이스를 정해서 디바이스의 IoT 기능을 조사하고, 디바이스에 IoT 기술이 적용되었을 때와 적용되지 않았을 때를 비교분석, IoT 추가되어 생기는 단점, 보안 개인정보 문제를 담은 에세이를 작성한다.



모든 Coursera 강좌의 과제들이 취하는 방식인 동료 평가를 사용하며, 이 학생은 공기청정기를 비교분석한 에세이를 수행한 것을 볼 수 있다.


Week 2에서는 임베디드 시스템/아날로그, 디지털 Conversion 대한 개론적인 강의를 하며, 센서와 액츄에이터에 대해 공부하고 실습하는 시간을 갖는다.





Week 3에서부터 어려운 내용을 공부하는데, Hardware/Software, Microcontroller, Operating System 심화된 내용을 학습한다. Week 3 과제는 

  1. 마이크로컨트롤러 2개를 선택해 사양이나 주파수, 개수 등을 비교분석하고, ( 나는 ATMEGA328, ATMEGA128 비교분석 하였다.)
  2. 아두이노와 라즈베리 파이 플랫폼에 적용된 OS 분석하는 과제였다.




내가 작성한 과제물의 동료평가 결과이다.


Week 4에서는 WAN, LAN, Internet Structure, Protocol, TCP/IP, MANET, Packet Capture 네트워크에 관한 내용을 공부한다. 여기서 주어지는 마지막 과제는 쉬우면서도 어려웠는데, Wireshark 설치하여 (www.newyorktimes.com) 웹사이트에 들어가 HTTP 패킷을 찾는 과제였다.


임베디드에 대한 이론 파트와 네트워크/OS에 관한 심화적인 강의를 들을 수 있어 좋은 수업이었던 것 같다.

Coursera 강의들이 그렇듯이, 일주일에 한번씩 Quiz와 Assignment가 쏟아진다. 힘들지만 과제를 수행하면서 내 지식이 더 느는 것 같아 기분이 좋다.


이 강의가 끝나자마자 바로 난 두번째 강의인 The Arduino Platform and C Programming을 수강신청하였다.





오늘 Data Science 전체 Specialization을 수료하였다.

그리고 Data Science Capstone은 100점으로 수료하였다.

Capstone은 Course에 들어 있는 과목들을 다시 복습하고, 최종 프로젝트를 접수하는 과정으로 이루어진다. 크게 나누어 보면 다음과 같다.

1주차 : Getting and Cleaning the Data 복습

2주차 : Exploratory Data Analysis 복습

3주차 : Prediction Model

4주차 : Creative Exploration

5주차 : Data Product

6주차 : Slide Deck

7주차 : 최종 Project 접수

최종 프로젝트는 영어 단어를 입력하면 그 다음에 오는 단어를 머신러닝으로 찾아주는 프로젝트이다. 나는 아래와 같이 만들었다.

틀은 대학에서 다 정해 주기 때문에 대부분 형태는 비슷하다.

다른 분들이 내 프로젝트를 평가한 모습.

4명 평가를 끝내고 Congratulations 동영상 (2분)을 보았는데 1년동안 한 결실이 이루어진 것 같아 큰 감동을 받았다. 이제 앞으로 결실을 맺을 것들이 많이 남아 있고, 또 새롭게 시작하는 것들이 생겨난다. 아무튼 오늘은 나를 축하해 주고 싶다.


오늘 수료했지만 인증수료증이 아니라서 Signature Track이 안 채워졌던 Developing Data Products를 100점으로 수료하였고, 가장 어려워서 포기하고 싶었는데 끝까지 노력해 R Programming을 수료하였다. 그리고 지금까지 시간이 없어 못 딴 The Data Scientist's Toolbox도 30분만에 수료하였다.

개인적으로 R 프로그래밍이 이번 코스 중 가장 어려웠던 것 같다. 

R 프로그래밍은 R을 완전히 이해하고 있지 않다면 절대 다음 수업으로 넘어가질 않는다. 1문항에 20점, 총 5문항이 있는 문제에서도 단답형이 2개나 있었다. 근데 아무리 올바른 답을 써도 틀린다고 나오는 것이였다. 몰라 Discussion Forum에서도 물어봤지만 삭제당하고 (Coursera에서는 Discussion Forum에 Quiz에 대해 물어볼 수 없다.) 겨우야 R 프로그래밍을 수료하신 블로거님에게 조언을 받아 퀴즈를 통과할 수 있었다. 

서로의 프로젝트를 평가할 때도 Cheating한 프로젝트가 아예 보이지 않았다. 보통 Data Science 과목에서 Evaluation을 하다 보면 꼭 Cheating한 프로젝트가 2개씩은 나왔는데 이번에는 아예 보이지 않았다.

수료 전 Week 4 Programming Assignment에서도 내가 만든 소스코드와 Data가 연동이 되지 않아 애를 탔었는데 소스코드 수정으로 해결, 다 맞출 수 있었다.

Developing Data Products에서는 R 코드를 웹서버에 올려 공유하는 방법, 프레젠테이션처럼 보이는 문서 작성 방법 등 데이터를 분류하는 방법을 배웠다. 또 이 강좌는 코세라 수료증 2호 (2015.02) 이기도 한데 이때는 인증수료증이 아니라 Track이 채워지지 않았다.

마지막으로 The Data Scientist's Toolbox는 Github에 hello 찍는 간단한 기초 방법과, 간단한 강좌 소개를 배워 아주 쉬웠다.

지금까지 배웠던 Data Science Course들을 쭉 정리해 보면 다음과 같다.

=======================================================================

Data Scientist's Toolbox : Github 개설, 간단한 Data Science 강좌 소개

R Programming : 내가 가장 어려웠던 부분. 기본 문법이지만 정확히 이해하고 있지 않다면 넘어가지 않는다. 이 강좌는 [빅데이터 분석도구 R 프로그래밍] 이라는 책과 그대로니 참고할 사람은 참고.

Getting and Cleaning Data : 외부에서 데이터를 불러오고, Cleaning하는 과정을 배운다. 데이터 정제에 대한 내용

Exploratory Data Analysis : R의 기본 그래픽을 배우게 됨

Reproducible Research : markdown 언어 사용법을 배우게 된다. 그렇게 중요하진 않지만 알아두면 굉장히 유용하다.

Statistical Inference : 통계추론. 수학 지식이 필요함을 가장 어필하는 강좌였다.

Regression Models : 회귀 모델 과정. 이 부분이 "수학적으로는" 제일 어렵다.

Pratical Machine Learning : 기계학습 알고리즘을 배운다. 첫 번째 Enroll 때 퀴즈를 놓쳐 44점을 맞고 불통과. 이후 하루만에 다 끝내고 수료하였다. 

Developing Data Products : R 코드를 웹서버에 올려 공부하는 방법, 프레젠테이션처럼 보이는 문서작성 등

=======================================================================                   

이번에는 Data Science Capstone에 도전해 보려고 한다. 4월부터 6월까지 2개월 동안 지금까지 배운 내용을 총정리하는 과정인데 아무래도 굉장히 어려울 것 같다. 그래도 끝까지 해 보려고 한다. 이것만 따면 위 9개 인증 수료증이 통합된 대학에서 주는 수료증이 나온다. 

(Johns Hopkins University 명의, 물론 대학에서 "직접" 주는 건 아니다.)





오늘 Statistical Inference, Regression Models 이 두 강좌를 수료하였다. 

Data Science 강좌들은 이번년도에 내가 개발하고 있는 프로젝트를 위해 (자세한 내용은 만든 후 공지할 것임) 공부하고 있다. 이 강좌에 나온 기술들이 일부분 쓰일 것이다.

먼저, Statistical Inference는 4주 동안 강좌를 듣고 하나의 데이터 도출 결과를 R 소스코드와 시각화 자료와 함께 논문으로 만들어 제출하는 과정이다. 수료 요건을 충족하였지만, 컴퓨터에 문제가 있어 인증을 못한 것으로 인해 다시 제출해 성적처리를 받아 수료하였다.

2016년도에 첫번째로 들은 강좌인 Reproducible Research보다 성적이 높다. 총성적 100점을 맞을 수 있었지만 Quiz 2를 86점을 맞아 95.4점으로 점수가 내려갔다. 아쉽지만 다음에 더 잘 해보기로 다짐했다.

그 다음, Regression Models는 mtcars Data를 가지고 하나의 R 요약 자료를 제출하는 과정이다. 그 중 나의 Report를 평가한 사람들의 반응은 아래와 같았다. 

얼마 전에 인증 문제로 Statistical Inference 강좌에서 사람들의 채점 결과(?) 를 날려 먹은 적이 있다. 그 강좌의 평가에서는 "디자인이 마음에 안 들지만 점수를 깎지는 않겠다", "폰트 사이즈가 좀 더 컸으면 좋겠다" 등 다양한 평가들이 나왔었다.

여기서는 성적을 Statistical Inference보다 0.1%(...) 높은 95.5점을 취득하였다. 


오늘 2016년도 첫 번째 Coursera 강좌를 수료하였다. 수료증은 기간이 안 되어 2월 18일에 나온다. 

이제부터 Coursera가 Machine Learning 강좌 뿐만이 아닌 대부분의 강좌들이 모두 On-Demand Course로 전환되었다고 한다. 이 제도는 Coursera에서 형식적인 수료증은 정해진 기간에 받지만, 수료는 자신의 실력에 따라 조기수료를 할 수 있도록 만든 시스템이다. 

지난 2015년도 강좌 (일부 On-Demand Course 제외)들은 퀴즈를 3번 틀리면 그 퀴즈는 재시험을 칠 수 없지만 (물론 내가 재시험을 쳤다는 이야기는 아니다. ㅎㅎ) On-Demand Course로 지정된 강좌들은 Quiz를 3번 틀릴 시, 8시간을 기다린 후 다시 틀린 횟수를 리셋되도록 만들었다. 즉, 학생들에게 더 많은 수료의 기회를 주기 위함이다.

또한, 조기수료를 하기 위해 도전하는 사람들이 있지만 그 수가 적어 서로의 과제를 평가할 학생이 부족해 수료가 안되는 경우가 있다. 이번에 내가 그랬다. 그래서 1월 13일에 할 수 있는 수료를 28일이 되어서야 할 수 있었다.

이번에 내가 들은 Reproducible Research 강좌는 모아진 데이터 결과를 가지고 다시 그 데이터를 연구 및 재가공하는 강좌이다. 미국의 환경 데이터를 주면 이를 이용해서 통계 및 재가공을 위한 R 코드 및 결과를 GitHub에 업로드하는 방식이다. 프로젝트가 딱 2개지만 아직 접하지 못한 수학공식들이 쓰여 다른 강좌들보다는 약간 어려웠던 면들이 있었다.

오늘은 Coursera에서 Exploratory Data Analysis를 수료하였다.

이 수업은 Coursera의 특색, 동료 평가 (Peer Evaluation)의 특징을 제대로 살려, 정확한 데이터를 추출할 수 있도록 가이드를 제시해 주는 수업이었다. 조금 자랑이긴 하지만 나는 이 두 평가에서 만점을 맞았고, 개인적으로 굉장히 실력이 늘고 발전했다는 생각이 든다. 지금까지 해본 코세라 수업 중에는 동료 평가가 가장 부각된 수업이었다.

코세라의 전체적인 수업 형태를 보면 과제를 의무적으로 Github로 제출하도록 하여 소셜 코딩을 스스로 입문할 수 있도록 돕고, Codeskulptor와 R 등의 신형 기술을 빨리 접해볼 수 있는 기회 (한국 기준)를 많이 준다. 현재 미국의 여러 스타트업들에서는 이러한 기술을 사용할 줄 아는 능력을 굉장히 중요시 평가하고 있고, 이력서에 있는 학력 란에 자신이 취득한 Coursera 수료증을 기입할 수 있도록 하였다.

내가 지금까지 취득한 인증 수료증 (이력이나 학력으로 인정되는)은 아래와 같다. 수료증에 의미를 두고 공부한 것이 아니여서 모두 인증 수료증을 받진 않았는데 그 부분이 좀 아쉽다. 원래 인증 수료증을 취득하려면 미화로 49달러를 내야 한다. 하지만 나는 학생의 신분에서 49달러를 매 강좌마다 지불하기에는 너무 벅차다.

지금까지 취득한 모든 수료증 (인증 수료증 포함) 은 아래와 같다.

1년 전부터 시작해 지금까지 총 10개의 수료증을 취득하였다. 어려운 강좌는 중간에 재수강을 해서 수료증을 시간대비 많이 취득하지는 못했다. 하지만 점수는 거의 모두 90점대 이상이다.

나는 훌륭한 교육의 기회는 모두에게 균등하게 주어져야 한다고 생각한다. 내가 사설학원에 다니지 않으면서 그 시간에 Coursera를 듣는 이유이기도 하다.

안녕하세요. ITSC입니다.

오늘은 제가 처음으로 들은 MOOC 강좌인 Programming For Everybody (Python) 에 대해 소개를 하려고 합니다.

이 강좌에서 가르치는 미시간 대학 교수인 Charles Severance 교수는 몸에 Coursera 타투를 하고 다니고 괴짜 교수로 유명합니다.



제가 수업을 받을 때는 강의 내용을 이해한 후 교수가 제시하는 간단한 프로그래밍 과정을 수행해 온라인 저지 프로그램으로 채점을 해 점수에 반영시켰습니다. 물론 아주 기초이지만 저에게는 석학의 강의를 온라인에서 무료로 들을 수 있다는 점이 가장 매력적이였습니다.

또한, 다른 Coursera 강좌들처럼 매주 퀴즈를 풀어야 하고, 프로그래밍과 관련된 주제로 에세이를 3번씩 작성해야 합니다.

이 모든 과제는 (온라인 저지 제외) 전 세계 수강생들이 서로 평가하고 피드백을 주게 됩니다.

여기서 제가 영향을 받은 것은 문제가 풀리지 않을 때 그 문제를 포럼에 올리면 전 세계 사람들에게 피드백을 받고, 소통할 수 있는 장이 최고의 장점이라고 생각하였습니다. 


아쉽게도 저는 그 때 인증 수료증을 받을 수 있는 나이가 안 되어 일반 수료증을 받았지만, 2달 동안 열심히 노력했다는 뿌듯함이 인증 수료증을 받은 만큼 만족스러웠습니다.