Kobe Institute of Computing, Syllabus 2023

1. Course Code2292
2. Course Title
G81e: IoT Development
3. Teacher
MARKON, Sandor
4. TermSpring 2
5. Course Requirements (Courses / Knowledge for this course) and Important Information
Fundamentals of Computer Programming

6. Course Overview and Objectives
IoT (Internet of Things) is an important area of programming for both developed anddeveloping countries, which belongs to the general field of embedded systems, also called
dedicated computers. It can help solving a wide range of technical and social issues.
Some examples include wireless sensor networks for remote data collection or disasterprevention, RFID for inventory control, human body sensors for remote medicine etc.
When compared to common PCs, IoT and embedded systems use different hardware andsoftware platforms, and to use them require understanding of special concepts like direct
hardware I/O (input-output), interrupts, real-time control, cross-development environments
etc.
By finishing this course, the student will be able to recognize opportunities of effectively
using IoT systems to solve ICT4D issues, and to propose and initiate projects, based on
concrete experience with working with such systems.
7. Course Outline
1 Orientation and Introduction
2 Motivation by Examples - existing projects solving social problems by IoT
3 Platforms (a) – ESP - introduction to hardware and software environment
4 Platforms (a) – ESP - basic usage
5 Review of embedded concepts (1)6 Platforms (b) - Raspberry Pi - introduction to Linux and Python on this platform
7 Platforms (b) - Raspberry Pi - extension of basic capabilities
8 Review of embedded concepts (2) - discussion using experience so far
9 Mid-term project review - groups started at Lecture 2 discuss their status
10 Communication for IoT: LoRa, MQTT
11 Workshop: IoT (1) - visiting lecturers present new topics
12 Workshop: IoT (2) - visiting lecturers present new topics, group discussions
13 Workshop: IoT (3) - visiting lecturers present new topics, group discussions
14 Workshop: IoT (4) TinyML and edge computing for IoT
15 Final project review
16
8. Textbooks (Required Books for this course)
None. This course uses only material freely available on the Internet (links will be providedon Moodle).

9. Reference Books (optional books for further study)None10. Course Goals (Attainment Targets)(1) Become able to recognize suitable application areas and make proper choices forembedded systems.
(2) Become able to design for reliability, maintainability, safety, and security in developing
embedded systems.
(3) Can develop for an embedded platform and use its development environment.
(4) Can develop programs with embedded concepts like hardware control, sensors,actuators, timers, interrupts etc., through hands-on experience.
(5) Can combine machine learning with IoT(6) Find and solve a development problem using embedded systems.
(7)(8)
11. Correspondence relationship between Educational goals and Course goals
Educational goals of the school
Course Goals
High level ICT Basic academic skills(1) (2)
Specialized knowledge and literacy(3) (4) (5) (6)skillsAbility to continually improve own strengths(2)
Problem setting(1)(6)
Ability to discover andHypothesis planning(1)(6)
Human skill resolve the problem inHypothesis testing(6)(Tankyusociety
Practice(3)(6)
skill）
Fundamental
Ability to step forward(5)(6)
Ability to think through(5)(6)
Competencies for
Ability to work in a team
(6)
Working Persons
Professional ethics
12. Evaluation
Goals
Evaluation method & point allocation
examination
Quiz
Reports Presentation Deliverables
Other(1)
〇(2)
〇〇
(3)
〇〇〇
(4)
〇〇〇
(5)
〇〇
(6)
(7)
(8)
Allocation
30304013. Evaluation Criteria
Examination
N.A.
Quiz

N.A.

Reports

Understanding of basic concepts and efforts at original ideas should beclear.

Presentation

Must include: problem statement and expected benefit to society;background; proposed solution; method; tests; validation; remaining
problems; future possibilities.
Participation of each group member should be stated clearly.

Deliverables

Actual operation should be demonstrated on devices (video can be used).

Other14. Active Learning
Hourly percentage of active learning within the whole class time75%
1 Active learning such as problem solving assignment using theknowledge and skills acquired in class.

All the time

2 Active learning such as group works and discussions.

All the time

3 Outcome presentations and feedbacks.

Sometimes

4 Students actively make decisions on how the class should beconducted.

Not at all

15. Notes
Students not comfortable with basic electric circuit concepts (currents and voltages, Ohm'slaw etc.) are advised to take part in voluntary lab sessions before taking the course.

16. Course plan
(Notice) This plan is tentative and might be changed at the time of delivery

Lesson 1: Orientation and Introduction(lecture anddemonstration, 90min)
Review through examples the basic concepts of IoT and other embedded systems, fromTV remote controls and rice cookers to airplane controls and power plants; the reasons forusing them, principles, problems, evolution, and current status. Explain the course plan:
discussions, practice, work group forming, projects, evaluation, and further studies.
Students are shown some of the devices used in the course.

Lesson 2: Motivation by Examples(lecture and group
discussion, 90min)
Introduce examples of IoT and embedded systems in products and services through casestudies. Student groups are formed, and based on understanding some typicalapplications, discuss other uses in fields familiar to them, listing up possible project topics,
analyzing their merits and difficulties, their novelty, feasibility, profitability and sustainability.
Student groups start their discussions on their project topic.

Lesson 3: Platforms (a) – ESP(practice, presentations,90min)
Students learn to develop a simple application using the open source / open hardware
ESP32/ESP8266 platform as an example of working with a simple stand-alone embeddedenvironment. Groups receive sets of ESP boards, sensor and actuator devices, and after
installing the development environment on their PCs, design, program, and test a simple
embedded application according to the provided requirement specifications.
Student groups present their project proposals with Tankyu charts and overall plans.

Lesson 4: Platforms (a) - ESP(continued, 90min)

Student groups review the possibilities available with the provided hardware and softwaretools, and compete to design the most surprising IoT application with their resources onESP.

Lesson 5: Review of embedded concepts (1)(lecture and group
discussion, 90min)
Starting from their experience with the ESP board, student groups discuss basic
embedded system concepts, reviewing and analyzing the handling of I/O devices, timings,process flow etc. Motivation is given for searching for more advanced capabilities likeinterrupts, multi-threading, guaranteed real-time response etc.

Lesson 6: Platforms (b) - Raspberry Pi(practice, 90min)

Student groups receive Raspberry Pi boards and install Linux on them. By connecting
them to the network, they learn how to use such a self-development environment on asmall embedded platform. Students also discuss common features and differences
between the Raspberry Pi and the ESP environment, and try to find out advantages andlimitations through reading the documentation and performing experiments.
Lesson 7: Platforms (b) - Raspberry Pi(continued, 90min)

Student groups re-build their Raspberry Pi Linux OS from source, and add a new device
driver, file system, or other extra capability of their choice that was not present in theoriginal distribution. Discuss the experience from the point of view of open source vs.
proprietary systems.

Lesson 8: Review of embedded concepts (2)(lecture and group
discussion, 90min)
Starting from their experience with the Raspberry Pi board, student groups discuss using
an operating system like Linux for embedded systems, reviewing the advantages anddrawbacks of isolating the hardware from the application, and of providing basic
development capabilities on the deployed embedded system itself. Soft- and hard real-time
OS concepts will be introduced here.
Lesson 9: Mid-term project review(presentations, mid-termexam, 90min)
Student groups present the progress of their embedded application projects, reviewing
their current status and roadmap. Different groups share their experiences and exchange
advices.

Lesson 10: Communication for IoT(lecture and group
discussion, 90min)
Review and compare communication infrastructure and protocols, including WiFi, LoRa,and MQTT. Gain experience with publishing and subscribing to MQTT brokers.

Lesson 11: Workshop: IoT (1)(lecture and group
discussion, 90min)
Visiting lecturers from ICTP introduce concrete examples of Internet of Things (IoT) and its
role in developing countries, through examples from their practice.

Lesson 12: Workshop: IoT (2)(lecture and group
discussion, 90min)
Visiting lecturers demonstrate and explain IoT with AI (machine learning) using the newembedded platform "TinyML" for IoT. Student groups explore creating and operating WSN
using the provided equipment, and review their project topic in light of what they havelearnt about IoT.

Lesson 13: Workshop: IoT (3)(lecture and group
discussion, 90min)
Student groups discuss their ideas and application areas for IoT and AI with visiting
lecturers, and review their experience with experiments on Arduino and various sensors.

Lesson 14: Workshop: TinyML(lecture and group
discussion, 90min)
Visiting lecturers present a popular edge computing platform "TinyML", and review theapplication of machine learning in the context of IoT.

Lesson 15: Final project review(presentations, 90min)

Each group presents its project results, demonstrating the device and system they havebuilt, explaining how it will solve an actual problem of development, how it can be put into
practice, and how can its effects be evaluated and verified. Each team member takes partin the presentations in turn.