About this course
Develop software for mobile, IoT, and edge devices where connectivity, power, and compute are constrained and data is processed close to where it is generated.
Delivered a device-to-cloud system pairing a Flutter cross-platform app with IoT sensors over MQTT and CoAP, a Raspberry Pi edge node that filters and aggregates readings, and offline-first local storage that synchronizes with conflict resolution over secured channels.
Expected outcomes
- Explain the architecture of mobile, IoT, and edge computing systems
- Build cross-platform mobile applications with a modern framework
- Analyze mobile UI, lifecycle, and resource-constrained design
- Apply IoT messaging protocols such as MQTT and CoAP
- Integrate sensors and actuators with constrained devices
- Design edge computing architectures and reason about latency trade-offs
- Implement offline-first applications with local storage
- Apply data synchronization and conflict resolution strategies
- Evaluate security and privacy concerns across device boundaries
- Assess trade-offs between cloud, edge, and device computation
Key topics
- Mobile app development
- IoT protocols & sensors
- Edge computing
- Offline-first & sync
Theoretical foundations
The concepts and results this course rests on.
- Ubiquitous and pervasive computing models
- Publish-subscribe messaging and quality-of-service semantics
- Constrained-device RESTful communication and protocol trade-offs
- Edge and fog computing latency and bandwidth economics
- Local-first design and eventual consistency
- Conflict-free replicated data types and merge theory
- Synchronization protocols and conflict detection
Prerequisites
Course-specific prerequisites:
- Programming fundamentals
- Operating systems and computer networks
Weekly schedule 13 weeks · lecture + practice
Students use AI assistants to scaffold Flutter or React Native screens, refactor widget trees and lifecycle code, and generate device-storage and sensor integration. They prompt tools to write MQTT and CoAP client code, simulate sensor streams, and produce sync and conflict-resolution logic, while connecting agents to broker and device MCP endpoints to inspect message flows. AI helps reason about offline-first state, eventual consistency, and CRDT merge behavior, and to generate tests for intermittent connectivity. Because generated sync code can corrupt data under partition or conflict, students test every suggestion against realistic offline and edge scenarios.
Student project
Teams build one connected system spanning a cross-platform mobile app, IoT sensors, and an edge processing component. The system communicates over MQTT and CoAP, processes data at the edge, and works offline with reliable synchronization and conflict resolution. Each increment extends the device-to-cloud pipeline.
Requirements
- Build a working system, not a set of disconnected exercises.
- Be original: a new system that solves a real problem, not a re-implementation of a tutorial or course demo.
- Show real depth: real data, real users or realistic load, and engineering trade-offs that are measured rather than assumed.
- Carry one running project from specification to a deployed, defensible result across the whole term.
- Work in a team of three or four and defend the design at each of the three presentations (weeks 5, 8, and 13).
Example projects
Assessment & grading
Grading is project-based, with no written exam. Teams of three or four present one running project three times.
| Component | What it covers | Weight |
|---|---|---|
| Project · Specification | Presentation 1 (week 5): problem, objectives, and architecture | 20% |
| Project · Interim | Presentation 2 (week 8): the working system demonstrated live | 30% |
| Project · Final | Presentation 3 (week 13): end-to-end demo with oral defense | 50% |
Tools & platforms
- Flutter: build cross-platform mobile apps
- Dart: program Flutter applications
- React Native: build native mobile apps from JavaScript
- SQLite: store data locally on devices
- Eclipse Mosquitto: run an MQTT broker
- MQTT.js or paho-mqtt: publish and subscribe over MQTT
- libcoap or aiocoap: communicate over CoAP
- Node-RED: prototype IoT and edge data flows
- Raspberry Pi: host an edge computing node
- PowerSync or CouchDB: synchronize offline data
- Firebase: provide backend messaging and storage
Free online courses
Existing free, video-based courses this course can build on, for self-study or as a teaching basis.
In Hebrew · בעברית
Primary literature
Seminal works to read for graduate-level depth.
- PaperThe Computer for the 21st Century
- PaperThe Case for VM-Based Cloudlets in Mobile Computing
- PaperFog Computing and Its Role in the Internet of Things
- PaperConflict-free Replicated Data Types
- PaperLocal-first Software: You Own Your Data, in Spite of the Cloud
- PaperRFC 7252: The Constrained Application Protocol (CoAP)
References
Books and resources link to an online or publisher page.
- DocumentationFlutter Documentation
- TextbookDesigning the Internet of Things
- DocumentationMQTT Specification (OASIS Standard)
- DocumentationRFC 7252: The Constrained Application Protocol (CoAP)
- PaperEdge Computing: Vision and Challenges
- PaperLocal-first software: You own your data, in spite of the cloud
- PaperLocal-first software (ACM Onward! 2019 proceedings)
Role in each concentration
| Concentration | Role |
|---|---|
| Intelligent Software Systems | Core · Semester 2 |
| Networking & Cyber Security | Elective |
| AI & Robotics | Elective |
| AI and Quantum Computing for Finance | Elective |
| Immersive Systems & Game Development | Core · Semester 1 |
| Defense Technologies & Autonomous Systems | Core · Semester 2 |