Electronic Thesis and Dissertation Repository

Thesis Format

Integrated Article


Master of Science


Computer Science

Collaborative Specialization

Artificial Intelligence


Bauer, Michael A.


Smart cities look to leverage technology, particularly sensors, and software to provide improved services for its citizenry and enhanced operational efficiencies. Cities look to develop applications that can process data from sensors and other sources to gain insights into operation, enable them to improve operations and inform city leadership. Such applications often need to process streams of data from sensors or other sources to provide city staff with insights into city operations. However, cities are faced with limited budgets and limited staff. The development of applications by third parties can be extremely expensive. One alternative is to identify tools for software development that city staff can use – where the development tools can simplify the development process.

This research addresses this challenge by looking at a graphical flow-based programming framework, Node-RED, as the foundation for a flexible application development environment that can accelerate and simplify the development of applications of interest to smart cities. Node-RED presents a visual programming framework composed of nodes and data flows. We look at extending Node-RED to incorporate nodes that hide the complexity of developing incremental machine learning applications by providing relatively simple and easy to use graphical interfaces. Nodes for a variety of learning methods are introduced and used for real-time analysis of data streams. Nodes providing different metrics have also been designed to enable the application developer to evaluate the trained models.

Summary for Lay Audience

With the new advances in wireless communication, more and more devices are connecting to the Internet to offer better services. It could be a refrigerator in a house or different facilities in the city, like sensors in parking spots. The growth in the number and popularity of these devices requires that people with different programming backgrounds start to contribute to developing applications that meet their needs. For many of these applications, it is important to try to predict an outcome; this makes use of machine learning methods. Machine learning is a collection of theories and methods that enables computers to learn from data and make predictions without being explicitly programmed to do. This research looks at methods and tools that can facilitate the development of applications that can use machine learning methods for such an environment.