Blog

Introduction to PEEP

Introduction

PEEP (Platform for Enhancement of Education in Programming) is the name of my senior software project at Trinity University. For the senior project, several stakeholders from the community present to the class at the beginning of the semester and then students form groups around the idea they would like to work on. Often the projects are a business need for a company but sometimes they are internal projects. For example, last year two senior groups developed SDKs for the authentication portion of Rackspace's open cloud. Other projects have included developing a Trinity mobile app, a robotics platform and various websites.

What is PEEP?

I consider our project as "internal". Our stakeholder is a professor in the computer science department at Trinity who would like to develop an open source platform that he can utilize to teach and assess students via the web. Several platforms already exist, such as Moodle or blackboard, that provide online classrooms and assessment tools such as quizes and tests.

Why PEEP?

However, these solutions do not provide adequate tools for the typical computer science assessment. Our project hopes to create a system whereby professor can assign homework such as "draw this data structure", "trace this program" or "write this code" that can all be completed in the browser. Our goal is to ultimately develop this system in a way that these assignments can automatically be evaluated by the system and require minimal instructor review.

Conclusion

PEEP is still in its early stages. Our stakeholder requested that we code the backend using Scala and Play. For the front-end we are using several HTML5 elements (local storage, canvas, etc.) and the KineticJS library.

For all of us on the team, this is our first times programming in Scala and using the Play framework and for some, it will be the first building a web application. The past few months have been spent planning out the project, developing requirements and doing research into the technologies we will be using.