Welcome to the upgraded MacSphere! We're putting the finishing touches on it; if you notice anything amiss, email macsphere@mcmaster.ca

A Functional Event-Driven Framework for Simplified Concurrent Applications: Technical and Pedagogical Considerations

dc.contributor.advisorAnand, Christopher Kumar
dc.contributor.advisorSmith, Spencer
dc.contributor.authorSchankula, Christopher William
dc.contributor.departmentComputing and Softwareen_US
dc.date.accessioned2025-04-15T15:34:08Z
dc.date.available2025-04-15T15:34:08Z
dc.date.issued2025
dc.description.abstractModern software products require graduates experienced with creating interactive programs. To properly learn how to build interactive programs, students need projects that present a low barrier to entry (low floor) while retaining a high ceiling to ensure high engagement of more experienced students. In this thesis, we turn to multiplayer game programming using the Event-Driven Programming (EDP) paradigm to fulfill this need. EDP is a type of programming where concurrency is based around the processing of events, which are processed atomically in a central event loop. EDP has been shown to produce more reliable software, precluding many of the common mistakes programmers make with lower-level concurrent programming. We use Elm, which implements EDP in a purely functional setting, processing events as immutable data structure values called messages. This thesis describes the design of a multi-user extension to Elm's Model-View-Update (MVU) paradigm, called Local-Global Model-View-Update (LG-MVU). We implemented the LG-MVU paradigm in Elm as the TEASync framework. We show how the purely functional language helps to ensure concurrency properties are maintained. We then describe and report on the use of the framework in a first-year computer science course, where students were given the option to use it to implement a video game in a semester-long group project. Surveys, focus groups, and code compilation data were used to ascertain the difficulties and experiences students had using the framework. The data showed that students were able to use the framework to make complex multiplayer games. Those who used it tended to have more programming experience prior to university, confirming its effectiveness as a high-ceiling activity, while retaining the low-floor option of tool-supported single-player games. Students using TEASync reported a lower difficulty level than initially anticipated, appreciated its simplicity, and had higher levels of engagement in, and enjoyment of, the project and course.en_US
dc.description.degreeMaster of Science (MSc)en_US
dc.description.degreetypeThesisen_US
dc.description.layabstractModern software products require graduates experienced with creating interactive programs. To provide this experience, low-floor, high-ceiling activities are needed, ensuring all students can succeed and stay engaged. This thesis investigates creating an Event-Driven Programming (EDP) framework, called TEASync, that allows programmers to create multi-user applications. This thesis describes how the resulting TEASync framework was implemented, and details a study wherein first-year computer science students were given the option of using the framework to create multiplayer games as part of a semester-long design project. Surveys, focus groups, and code compilation data showed that students were able to use the framework to make complex multiplayer games. The data show that the multiplayer option provided experienced students a high-ceiling learning opportunity, while the single-player EDP option maintained a low floor for less experienced students. Those who used the framework reported a lower difficulty level than anticipated and had a measurable increase in engagement in the course.en_US
dc.identifier.urihttp://hdl.handle.net/11375/31494
dc.language.isoenen_US
dc.subjectEvent-Driven Programmingen_US
dc.subjectFunctional Programmingen_US
dc.subjectConcurrent Programmingen_US
dc.subjectSoftware Designen_US
dc.subjectHuman-Centred Designen_US
dc.subjectDesign Thinkingen_US
dc.subjectPedagogyen_US
dc.titleA Functional Event-Driven Framework for Simplified Concurrent Applications: Technical and Pedagogical Considerationsen_US
dc.title.alternativeA Functional Event-Driven Frameworken_US
dc.typeThesisen_US

Files

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
Schankula_Christopher_W_finalsubmission2025March_MSc.pdf
Size:
8.6 MB
Format:
Adobe Portable Document Format

License bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
license.txt
Size:
1.68 KB
Format:
Item-specific license agreed upon to submission
Description: