{"slug": "teaching-programming", "title": "Teaching programming", "summary": "Universal Message Manager (UMM), originally designed for control systems, has been repurposed as a tool for teaching programming and system design. UMM systems consist of small agents that perform tasks triggered by messages, allowing students to design, build, and integrate agents in a modular fashion. The system, written in Python but supporting agents in any language, is free for educational use and includes examples like a tank monitoring system and a parcel sorting machine.", "body_md": "UMM (Universal Message Manager) was originally designed for control systems. When we released the finished version we realised that we had something that was extremely powerful and had uses way beyond those we originally envisaged. One use that became apparent was as an aid in teaching programming and system design.\n\nUMM systems are built around small applications (agents) that perform tasks. These may be very simple (such as turning on or off a pump) or quite complicated (such as looking up data in database). Agents are triggered on receiving messages, they perform a function, and then (usually) send messages.\n\nStudents as a group can design a full system, design the agents and the messages that need to be sent and received by each one, then groups of students or individuals build each agent according to the specifications. Each agent can be tested stand-alone simply by sending the designated messages and monitoring the behaviour and the messages being returned. The agents are then integrated into a running system.\n\nIn the system as supplied we have two examples: a tank monitoring system and more complex parcel sorting machine that show working UMM designed systems.\n\nThe basic system is written in Python but agents can be written in any language.\n\nUMM is free for educational use.", "url": "https://wpnews.pro/news/teaching-programming", "canonical_source": "https://dev.to/philbraham/teaching-programming-3b79", "published_at": "2026-06-22 05:48:50+00:00", "updated_at": "2026-06-22 06:09:40.428183+00:00", "lang": "en", "topics": ["developer-tools"], "entities": ["Universal Message Manager", "UMM"], "alternates": {"html": "https://wpnews.pro/news/teaching-programming", "markdown": "https://wpnews.pro/news/teaching-programming.md", "text": "https://wpnews.pro/news/teaching-programming.txt", "jsonld": "https://wpnews.pro/news/teaching-programming.jsonld"}}