Lectures/CAP/2016

From MCLab
Jump to: navigation, search

Contents

정보통신종합설계1 Class Overview

교육목표
  1. 지금까지 이수하고, 현재 수강하고 있는 전공과목에서 다루는 정보통신 지식을 기반으로, 정보통신기술 트랜드에 따른 토픽을 스스로 찾아 연구하여 정보통신 엔지니어로서 아이디어를 제안하고 종합적인 문제해결 능력을 배양한다.
  2. 또한, 이를 종합하여 새로운 정보통신 시스템, 서비스, 응용을 고안하고, 개발방법론에 맞추어 문제를 정의하고, 설계하고, 구현하고, 시험하여 결과를 발표하고 익힘으로써 정보통신산업 현장에 적용 가능한 실무능력과 팀워크 능력을 배양한다.
  3. 그리하여, 사회진출에 도움이 되는 경력을 쌓고, 벤처 창업을 준비하거나 각종 공모전 출품을 준비하고, 졸업논문을 작성하는데 필요한 설계 및 구현 능력을 배양한다.
    • 4-1학기 정보통신세미나(졸업논문 작성과정)을 수강하려면 반드시 본 과목을 이수해야 한다. 물론, 전공과목 51학점 이상도 이수해야 정보통신세미나 수강신청 가능
담당교수
홍진표
강의시간
목 1 2 3 (5312)
조교
김왕수, phone : 010-4176-6078 kws5078@nate.com, 공과대학 425호

강좌의 진행 방법

  • 담당교수가 기본적인 강의를 진행하고, 학과 교수님들도 참여하여 다양한 topic으로 1~2시간씩 강의한다.
  • 센서네트워크 키트, 안드로이드 개발플랫폼 등 학과 보유 장비를 활용할 수 있게 조교가 실습을 진행한다.
  • 본 강좌에서 지정된 팀웍시간에 프로젝트 팀별로 팀미팅을 진행하며, 기타 시간에도 별도의 팀 미팅과 팀 세미나를 수행한다.
  • 미리 실무지식을 익히기 위해 과제를 수행한다. (개인 또는 2인 1조 단위로)
  • 4~6인으로 팀을 구성하여 설계 프로젝트를 수행하며, 발표하고 그간의 결과물을 제출하고 시연한다.
    1. 아이디어(창업 아이템) 발표
    2. 사업제안서(Proposal) 작성 발표
    3. 중간발표, 상세설계서 작성
    4. 최종결과 발표, 보고서 작성
    5. 작품전시

수행 방법

Assignment
개인이 수행하거나
2인 1조로 조를 구성하여 수행한다.
팀프로젝트
팀별로 프로젝트를 수행한다.
팀은 벤처 창업을 목표로 팀을 만들고 연구개발할 주제를 발굴해서 창업할 아이템을 기획하고 구현한다.
조와 팀의 구성
본 강좌에 참여하는 학생은 스스로 실습과제를 수행할 조(2인)와 팀에 능동적으로 구성해야 하며, 교수나 조교의 지침은 없다. 전적으로 학생들의 자율에 맡기며, 이중에 한 두 팀이 창업으로 이어 가길 기대한다.
결과물의 제출
모든 결과물은 수업전일 자정까지 e-class에 제출한다. (발표자료 포함) 조 또는 팀 단위로 제출하는 경우 조장 또는 팀장만 대표로 제출하면 된다.
팀프로젝트인 경우
  • 모든 문서에는 변경 이력이 기재되어야 한다.
  • 인쇄본 2부는 발표일에 별도 제출해야 한다.
  • 공헌도 평가: 발표가 종료된 후에 동료 팀원이 이 활동에 얼마나 공헌했는지를 객관적으로 평가하여 제출해야 한다. (평가결과는 비밀이 유지됨)

평가

Assignments - 400점 내외 (달라질 수 있음)
2인 1조로 수행한 경우, 개인별 점수는 조의 점수 그대로 반영된다.
팀프로젝트 - 1200점
아이디어(창업 아이템) - 100점
사업 제안 (사업제안서, 시제품 개발계획서) - 200점
중간보고 (중간보고서, 상세설계서) - 300점
최종보고 (최종보고서) - 300점
벤처 사업계획서 (벤처 사업계획서) - 200점
작품전시회 - 100점
  • 팀원의 획득 점수 = 팀프로젝트 점수 * 80% + 팀내 개인공헌도 * 20%
기타 고려사항
결석 -20점, 지각 -10점
공모전 출품 +10점, 본선진출 +20점, 수상: +30점, 최우수상: +50점
팀별 (의미있는) 질문 1회당 팀에+1점 (최대 5점)

공지사항

팀프로젝트 평가

2016.10.05 아이디어, 사업계획 점수 추가
2016.10.06 사업계획 팀평가 점수 20점으로 수정, 요구사항 정의서 점수 추가
단계 배점 팀-1 팀-3 팀-4 팀-5 팀-6 팀-7
팀명
프로젝트명
아이디어 (창업 아이템) 100 80 82 78 90 88 75
사업계획 사업제안서 100
시제품 개발계획서 100
중간발표 요구사항정의서 100
상세설계서 100
중간발표 및 데모 100
최종발표 최종보고서 150
최종발표 및 데모 150
벤처 사업계획서 200
작품 전시회 100
1200

강좌 진행 계획

1주차

강좌 소개

Arduino

조 구성

개인 장비 지급 (Arduino)

Assignment-1 수행 (개인별) - Programming using Arduino

Reading Assignment (조별): Technology Trends에 관한 자료 아무거나

IoT 관련 자료

팀 구성 완료 (9/7까지)

2주차

Technology Trends

  • Gartner's Hype Cycle for Emerging Technologies, 2016 [2]
  • Gartner’s Top 10 Strategic Technology Trends for 2016 [3]

RaspberryPi 교육

학과보유 장비 설명 - update 필요 --jphong

Assignment-2 수행 (조별)

3주차

추석

4주차

팀별 아이디어(창업 아이템) 발표 및 토의 (PPT 슬라이드로 10분 발표)

팀별 기본 기자재 배급 - SM-5, 센서 노드 등

팀별 프로젝트 구상

필요 장비 구매 신청

  • 학과에서 보유하지 않은 장비를 구매해야 할 경우 아래의 구매신청서를 작성하여 학과사무실에 제출하여 주시면됩니다.
  • 행정 절차를 거쳐야하기 때문에 시간이 꽤 걸리므로 최대한 빠르게 신청 바랍니다.
  • 구매신청서(예시)

5주차

벤처 사업제안서 발표

시제품 개발계획서 발표

6주차

요구사항정의서 작성 및 발표

참고 UML
UML Tutorial, https://www.tutorialspoint.com/uml/index.htm
김세화 교수님 강의자료
UML (Unified Modeling Language)
부록: UML Notations

JSON 및 Web Application 참고자료 JSON and Web Application.zip

7주차

상세설계서 작성 및 발표

8주차

중간고사 기간

9주차

중간결과 발표 및 시연

  • 중간결과를 발표하고 이때까지 개발한 결과물을 시연한다.

10주차

요구사항정의서, 상세설계서 수정 및 재제출 Teamwork

11주차

핵심결과 발표 (이 프로젝트를 완성하기 위한 가장 중요하고 핵심이 되는 기술요소와 확보한 결과를 발표한다.)

12주차

Teamwork

13주차

최종결과 발표회

제출물: 최종보고서

14주차

벤처 투자자를 위한 사업계획서 발표 및 시제품 시연

제출물
벤처 사업계획서

15주차

작품전시회 (장소: 1층 로비)

16주차

대출 장비 반납 (반납 안한 팀은 학점이 나가지 않을 것임)

팀프로젝트 진행

Team 구성 (9/7)

프로젝트를 수행할 팀을 5인으로 구성하고, 팀장을 선출하고, 팀원명을 정하여 eclass의 팀프로젝트관리로 가서 프로젝트 명 '팀 구성'에서 팀명(영문명칭), 팀장, 팀원 명단을 제출한다.

아이디어 발표 (9/22)

창업할 아이템을 숙고하여 선정하고 이 제품이나 서비스가 사업성이 있으며, 여러분들이 준비해야 할 사항이 무엇이지를 발표한다.

향후, 학기말까지 시제품을 개발하여 투자자들을 상대로 프레젠테이션 해야 할 것이다. 투자를 받기 위해서나 여러분의 창업이 성공하기 위해서는 사업성이 있으면서, 기술적으로도 경쟁력 있음을 보여줘야 한다.

발표
팀별 10분, 질의응답 5분
종합토의
각 팀별 대표가 나와 토론한다. (50분)
제출요령
PPT로 작성하여 e-class에 제출
참고

사업제안서 발표

여러분이 확보한 기술이나 초기 제품도 없고 지적재산권도 없다. 다만, 같이 창업할 동료들이 있을 뿐이다. 일주일 후에 창업한다고 생각하고 창업후에 할일을 계획하고 동료들과 같은 목적으로 인식을 같이하고, 업무를 수행하고, 주변을 설득할 수 있는 초기 사업제안서를 만들자. (계속 보완해야할 것이다.)

사실, 여러분은 시제품을 만들고 나서 나서 투자자에게 설명할 진정한 사업계획서를 작성하고 프레젠테이션 해야 할 것이다. 여러분의 프로토타입이 나온 최종발표에는 투자자를 대상으로 설명할 벤처 사업계획서가 완성될 것이다.

사업제안서, 시제품 개발계획서를 PPT로 작성하여 eclass에 제출하고, 수업시간에 팀별로 발표한다.

발표시간
팀별 발표 15분, 질의응답 5분
종합토의
각 팀별 대표가 나와 토론한다. (30분)
제출물
  1. 사업제안서, 시제품 개발계획서 PT 자료(PPT) --> e-class 제출
    • 부록으로 사내 업무추진 및 개발계획을 첨부할 것
  2. PT 자료 인쇄본 각 2부 - 발표시 제출
  3. 소요 장비 리스트 및 신규 장비 구매 요구서 제출 - 발표 당일 제출
    • 소요 장비 리스트와 장비별로 제원과 가격이 적힌 페이지를 캡춰하여 제출하세요. - 참조: http://artrobot.co.kr
평가기준
참고

Assignments

실습 조 구성
개인 또는 2인 1조로 수행
결과물의 제출
pdf 파일로 변환하여 e-class에 제출 (강의 전날 밤 12:00까지)

Assignment #1 Programming using Arduino (9/7까지)

오늘 강의한 아두이노 강의 자료 1,2에 있는 개인과제 작성 후 보고서(.pdf)를 제출.

  • 보고서에는 실행 동영상의 Youtube URL을 포함.
  • mclab 홈페이지에 있는 아두이노 관련링크들 참조.
  • 보고서는 pdf 파일로 변환.
제출요령
<과제명>_<학번>.pdf ex)Assignment_1_201000663.pdf

Reading Assignment Technology Trends Survey (9/7까지)

Technology Trends에 관한 자료를 조사하여 보고서를 작성 후 제출.

주제와 양식은 자유입니다.

IoT 기술 관련 자료는 강좌 진행 계획 1주차에 link되어 있습니다.

조별(2인 1조)
제출요령
  • 2인 1조로 조사한 결과물을 pdf 파일로 작성하여 대표 1명만 e-class에 제출해주세요.(표지에 조원 이름을 전부 써주세요.)
  • 추가로 수업시간에 출력하여 다른 사람이 볼 수 있도록 제출하여 주세요.
  • <과제명>_<학번1, 학번2>.pdf

Assignment #2 Programming using RaspberryPi (9/20까지)

라즈베리 파이 자료에 있는 개인과제 작성 후 보고서(.pdf) 제출.

  1. Example Program을 수행 후 보고서 작성.
  2. 라즈베리 파이 자료에 있는 Assignment 수행 후 보고서 작성.
  • 2개의 Arduino와 하나의 Raspberry Pi를 연결하여, 1번 Arduino에는 온도센서, 2번 Arduino에는 Servomotor, Raspberry Pi에는 LED 회로 구성.
  • 온도센서의 온도가 올라갈 경우 Raspberry Pi의 LED가 켜지면서 2번 Arduino의 Servo motor가 움직이도록 하세요.
  • 온도센서의 Threshold는 임의로 정한 후 보고서에 명시하세요.
조별(2인 1조)
제출요령
  • 보고서는 pdf로 변환하여 제출해주세요.
  • 보고서에는 과제 수행내용, 코드, 사진 및 동영상의 URL이 들어가야합니다.
  • <과제명>_<학번1, 학번2>.pdf

Assignment #3 Web Application Server and Client handling JSON (10/15까지)

주제는 자유이나 현재 각 팀에서 제안한 시스템에서 client-server간 통신이 필요한 기능 중 일부를 선택하여 다음의 두 가지 모델로 구현해 보고 비교 분석하라. 단, client도 data를 보내고 server도 data를 회신해야 한다.

Model 1
client - web applications(server) model using HTTP protocol
  • Client: client는 web server를 경유하여 web application과 통신해야 하기 때문에 client는 HTTP protocol을 반드시 이용해야 한다. Web browser 대신에 여러분이 직접 coding해야 한다.
  • Server: python WSGI를 따른는 web application server로 구현한다.
    • Web application server는 받은 data(즉, parameter들)을 이용하여 database를 access하여 결과를 JSON format으로 회신한다
    • 이때, Content-Type: application/json 으로 header를 붙여준다.
Model 2
client - server model (your own json format)
socket을 직접 사용하여 JSON format의 string으로 주고 받는다.
  • Client: server에게 JSON format으로 바꿔 송신한다.
  • Server는 JSON format으로 회신한다.
참고

Client with HTTP protocol

import urllib
import urllib2

url = 'http://www.someserver.com/cgi-bin/register.cgi'
values = {'name' : 'Michael Foord',
          'location' : 'Northampton',
          'language' : 'Python' }

data = urllib.urlencode(values)   # parameterize and encode
req = urllib2.Request(url, data)   # POST method
response = urllib2.urlopen(req)  # connect(non-persistent) and send request
the_page = response.read()       # read the contents from repose message

JSON format conversion

>>> import json
>>> json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}])  # encode to JSON
'["foo", {"bar": ["baz", null, 1.0, 2]}]'
>>> json.loads('["foo", {"bar":["baz", null, 1.0, 2]}]')    # decode JSON to Python string
[u'foo', {u'bar': [u'baz', None, 1.0, 2]}]

Using file-like socket object

  • socket을 file-like object로 변환하면 read(), readline()과 같은 method를 쓸 수 있어 편리할 것이다.
import json, socket
infile = sock.makefile('r')     # make socket as a file-like object (incoming direction)
...
json_data = infile.read()      # read until connection close
data = json.load(json_data) # convert JSON to Python string
제출요령
아래 파일들을 담은 하나의 zip 파일로 제출하라. (zip 파일명: <과제명>_<학번>.pdf ex)Assignment_3_201000663.zip)
  1. source code
  2. server와 client 간 주고 받는 message의 body 내용을 캡쳐한 이미지
  3. 실행 전과 실행 후의 변경 내용(e.g., database table)
  4. 자신의 실험 내용에 대한 설명과 이 실험 결과를 종합 분석한 보고서(PDF)


관련 자료

학과 보유장비

학과 보유장비 현황[4] - raspberry pi 등 update 릴요 --jphong

  • Micro Controller 및 센서: Arduino Uno (Sparkfun Inventor's Kit) 다수
  • Embedded Lunux 및 센서: Raspberry Pi 3 25대
  • Motion sensing input device/Video game: MicroSoft Kinect 2 1대, MicroSoft Kinect 1대
  • 밴드형 센서: MicroSoft Band 2 4대
  • 임베디드/안드로이드시스템: 한백전자 SM-2, SM-5 다수
  • 지능형로봇구동체: 한백전자 HBE-ROboCar 4대
  • 레고로봇: MindStorms EV3 다수

Raspberry Pi

Arduino

Arduino H/W 및 IDE 설치
Getting Started with Arduino on Windows [5]
실험 따라하기
가치창조기술 wiki의 아두이노 강좌 [6]
기타 교육자료
Introduction to Arduino - from Spakrfun [7]
MIT Arduino Tutorial #1 동영상 [8]
Spooky Projects – Introduction to Microcontrollers with Arduino [9]
Arduino Tutorial - from Sparkfun [10]
Arduino 관련 부품
ArtRobot [11]

한백전자 장비

한백전자-로봇카, 관련링크 [12]
한백전자-SMII Board, 관련링크 [13]
한백전자 SM5 안드로이드 융복합 실습장비 [14]
한백전자, SM5 임베디드 리눅스 프로그래밍
한백전자, SM5 안드로이드 프로그래밍
한백전자-센서키트, 관련링크 [15]

기타

NFC 장비 설명자료, 관련링크 [16]
Kmote 장비 설명자료, 관련링크 [17]

메뉴얼

한백전자-로봇카
한백전자-SMII Board
센서키트의 경우, Cygwin, TinyOS, Program Porting 방법등 다양한 메뉴얼이 존재합니다.

관련 링크

한백전자 자료실
NFC 자료실
Kmote 자료실

Source Version Control

이전 팀프로젝트 결과물

2016 정보통신종합설계 프로젝트 결과물

2015 정보톹신종합설계 프로젝트 결과물

2014 정보통신종합설계 프로젝트 결과물

2013 정보통신종합설계 A반 프로젝트 결과물

2012 정보통신종합설계 프로젝트 결과물

작품 사진이나 팀 활동 사진 등 팀 프로젝트 과정을 보여주는 유용한 사진이나 자료를 조교에게 보내주면 게시할 것이며 인터넷에 공개됩니다. 앞으로 여러분의 후배들에게 많은 도움을 줄 것이라 기대합니다. - jphong

2012년도 1학기 종합설계1 프로젝트 결과물

1팀(아람치) : 정지원(T), 오진우, 채학기 - 요구사항정의서, 상세설계서, 패널
2팀(FBL) : 김지훈(T), 최한홍, 김연주 - 요구사항정의서, 상세설계서, 패널
3팀(Glojack) : 조철우(T), 이정현, 박소라 - 요구사항정의서, 상세설계서, 패널
4팀(㈜봉섭) : 최기봉(T), 류재섭 - 요구사항정의서, 상세설계서, 패널
5팀(CPK) : 김재윤(T), 박경민, 최인준 - 요구사항정의서, 상세설계서, 패널
6팀(Intech) : 이승엽(T), 김샘터, 강윤희 - 요구사항정의서, 상세설계서, 패널
7팀(MBD) : 김동식(T), 박경덕, 이영호 - 요구사항정의서, 상세설계서, 패널
8팀(KL) : 김진호(T), 이지용 - 요구사항정의서, 상세설계서, 패널
9팀(환상의짝꿍) : 소희철(T), 이성은 - 요구사항정의서, 상세설계서, 패널

2011년도 종합설계2 프로젝트 결과물

1팀(The Watcher) : 고동현(T), 김진호, 이정윤 Final Page, Team 1 Page
2팀(Guardian Corp.) : 이지승(T), 오진석, 이수영, 최영진 Final Page, Team 2 Page
3팀(WithYou) : 신재명(T), 김두형, 이혜수 Final Page, Team 3 Page