Date of Award:


Document Type:


Degree Name:

Master of Science (MS)


Computer Science


Stephen Clyde


Dean Mathias


Dan Watson


This thesis provides a new platform that instructors can use to create a learning environment for students to learn how to design and implement distributed applications. One possible way to use the platform uses milestones to test the student’s understanding of different concepts. Milestones contain pretests that students can use to test their code. Each milestone focuses on a different concept, including interprocess communication, reliability, and security. A monitor process can be created by the students to provide away for the instructor to see how well the students are learning the concepts by using a monitor process. The platform gives control to the instructor to choose what skills, knowledge areas, and abilities are covered by an assignment. There are many valid solutions to the problem this platform provides, giving students the flexibility to design their system. The platform uses drones to create interest in the subject to more fully engage the students and better help them understand distributed systems. This thesis provides a sample implementation of the assignment to validate the platform. This thesis then compares this platform to other assignments in a project-based pedagogy for distributed systems using a new technique. This technique quantifies the effectiveness of each assignment dynamically, allowing instructors with different priorities to compare the assignments in different ways.