Login Form


Fall 2014, Room 4202, 10:10~12:00 Wednesday

Instructor: Kun-chan Lan
(this course is offered in English)

an introductory course to teach you how to become a “maker” of Inerent of Things (IoT) technology using publicly-available open-sourced tools
Goal: a brief walk-through of the open-source tools (both hardware and software) you can use to create an IoT application


  • We start with describing the theortical part of technology
  • Followed by an introduction of various open-sourced tools such as Arduino, Android, and Hadoop
  • Guide you through the cycle from having an idea to finally creating a real product rce it
  • A strong hands-on focus 


  • Sensor Network
  • TCP/IP and socket programming
  • Arduino
  • Android programming
  • Using Hadoop
  • How to open-source your project 

Recommended reading

Lecture Slides

Date Content  
10/22 For next week (10/22), you guys only need to prepare week 4's materials.  
10/29 no class  
11/05 Group 5 will present  
11/19 Group 2 will present  
11/26 Tutorial for Arduino  
12/03  Group 7 will present Socket Programming (Network Programming III)  
  the quiz will be on Android programming (I)  
12/10 Group 8 will present Android Programming II  
12/17 Group 6 will present Android Programming III  
12/24 Group 12 will present Hadoop  
12/31 > Please send the URL links (YouTube) of your project demo video to TA (e-mail) before 12/31 9.00 amThe project demo will start at 10.10 am.  
01/07 Final exam: write the answer in English  


Prof. Kun-chan Lan
Office: new CSIE building 12F 65C05
Office hours: 3-4 pm on Wednesday and Friday, or by appointment via e-mail
Email: This email address is being protected from spambots. You need JavaScript enabled to view it.
TEL: +886 6 2757575 ext 62550


Paweeya Raknim 
Office: new CSIE building 5F
Office hours: 14-16pm on Wednesday and Thursday
Email: This email address is being protected from spambots. You need JavaScript enabled to view it.
TEL: 06-2757575 ext.62520 (and then another extension 35)


  • Programming knowlege in Java/C++ (should have been coverd in Program Design I/II)

Grading Policy   

Creative project (25%)
     - Report (10%)
     - Demo (15%)
Home Work Exercise (30%)
Exam (25%)
     - Midterm (10%)
     - Final (15%)
Quiz (20%)
     - Extra credits (+/-)
Class participation and course review
     - Up to +/- 10%


week 1 (9/17) Administration issue
week 2 (9/24) A network of Sensors (I)
week 3 (10/1) A network of Sensors (II)
week 4 (10/8) A network of Sensors (III)
week 5 (10/15) Out for conference
week 6 (10/22) Network Programming (I)
week 7 (10/29) no class
week 8 (11/5) Network Programming (II)
week 9 (11/12 ) Midterm exam
week 10 (11/19) Network Programming (III)
week 11 (11/26) Introduction to Arduino, Homework I due
week 12 (12/3) Android Programming (I)
Week 13 (12/10) Android Programming (II), Homework II due
week 14 (12/17) Android Programming (III)
week 15 (12/24) Introduction to Hadoop
week 16 (12/31) in-class project demo
week 17 (1/7) final exam, Homework III due


Homework I: TCP/IP programming

Homework I description:
    At the core of your ping program, you will craft a ICMP ECHO request packet (client side), send it to the specified destination, and wait for a reply.
    Normally, it will send a packet every second, You have to write a version of ping with which the user can define the sending interval (not fixed!) at the unit of ms, an example command will be like
ping -t 200 www.google.com (sent a ping request every 200ms)
ping -t 10 www.ncku.edu.tw (sent a ping request every 10ms)
and print output based on the replies.
    To familiarize yourself with ping, try executing the built-in ping program that comes standard on must OS installations.
    For example, here is some sample output of pinging www.google.com on Windows: (Ping -t 200

Homework II: Arduino programming
Homework III: Android programming

Homework III: Android Emergency Alert with Fall detection
        Write Android programing to create an alert system for fall detection using a smartphone to both detect the fall and alert authorities.
>>>Using an Android-based smartphone with an integrated tri-axial accelerometer.
          o Data from the accelerometer (A) is evaluated with several threshold (defined by yourself) based algorithms and position data to determine a fall.
          o If A > threshold --> Fall is detected --> System alert!!!
>>>The system alert: the system will contact the emergency call automatically by picking information from a user’s profile.
          o In the user’s profile consist of the emergency number (phone call or SMS).
              1. If the user selected “Phone call” as the first emergency contact, the system will make a call automatically to provided phone number when detected a fall.
              2. If the user selected “SMS” as the first emergency contact, the system will contacts with an informational message via SMS when detected a fall.

Term Project

  • Design something interesting that can amaze everyone
  • Based on what you’ve learnt from the class
  • Use your imagination!! 

Project report

You will need to submit a 2 page project report that explains what you plan to do for your project and how exactly you are going to do it

Due 11/26/2014

Demo your project
In the end of semester, you will demo your project in-class
Each team has to make 5-min video to demo your project
The video should be uploaded to youtube
The project demo will be scored by me and also peer students
Project evaluation
2 page, 11-pt-font, double-spaced report that describes/explain your project (10%)
Project demo (15%)