1 Introduction

The aim of this dissertation is to construct an ecosystem for learning that is architected from the ground up to form a cogent platform that students can leverage. This would be accomplished with the help of a suite of apps that together aid them in their learning process by employing a coherent visual language and behaviour throughout the apps in the system. The central problem addressed is to minimise the endemic problems that accompany systems integrated in an a la carte fashion. I propose much better can be done by providing a conceptual framework and constructing apps out of this minimal set of principles put forth.

1.1 Background

The preliminary conception of this idea came into shape when I started using digital systems enlisted in my university. I started using these at a time when I was being exposed to the core principles of Computing Science and I felt a major disconnect between the architectural principles of these apps with principles that I was learning in Computing Science. For example, when the deadline of a course work or the timetable of a lecture is changed, it gets updated on a system known as NESS and an email is sent out but Blackboard another system used for tracking student progress shows the unmodified deadline. This results in generating confusion and discomfort among the students. The students who were oblivious to the email sent out miss this fact entirely and end up getting to know about this change only on submission time.

During my time at university I started building a few apps in my extra time to help my colleagues on different problem domains. But overtime I found out that my own apps suffered from the same kind of systemic errors found in the academic environment. But this lead to the realisation that this is a recurrent problem that can be solved by imposing an overall architecture. Hence this thesis is an attempt at unifying all those applications I developed over time under a single architecture and growing it into a single unified platform with consistent knowledge representation. Software systems found in a modern academic environment lack a coherent architecture. Status quo is to pick modules à la carte that works well in a stand-alone fashion but not so well with other applications in the environment. This creates problems that are insidious such as duplication and erroneous data, incoherent user interfaces and so on. To make this concrete, Newcastle University currently employs a set of digital tools for catering to the digital side of academics: Blackboard, NESS, Outlook, Panorama, Timetables, Crypt and S3P. No two of these share the same visual language or architecture. This results in the students end up having to learn a new interaction every time they use a new product. This learning remains non-transferable. This often works to the detriment of the user as it results in confusion, reduced productivity, erroneous and redundant data which all leads to faulty decisions when trying to interface with these tools.

1.2 The Solution

As a student who spent the majority of his life dealing with digital systems and have seen others go through the same difficulties, it felt worthwhile to choose my last year Bachelors degree dissertation to come up with a solution to this problem. I propose a solution based on my conviction that designing an environment with a unified user interface and consistent knowledge representation throughout, would enable the student to stay on top of their academics, stay connected with their peers and teachers, and to a certain extend, help inform where to spend their limited time and focus budget on.

There are a lot of other additional benefits that results from adhering to this methodology. For an academic practitioner as the end user, this platform can be tailored to benefit them with better data collection about the student performance and increased interaction with the students with the help of software created for the ecosystem. By following to time proven software development techniques like modular architecture and single responsibility principle, I argue that it also simplifies managing complexity that arises from software development.

Now that I have outlined what this project is about, let me describe what the focal points of this project was not. I have increasingly noticed that bespoke constructs and context specific performance optimizations most of the time compromises flexibility. This means that it was in a sense worthless to go for specific performance tuning when the final architecture hadn't been finalized. This is not to be taken to mean that they are de-emphasized because they were irrelevant but it is only because of the nature of the project where the end requirements were not available prior to development, it was most reasonable to keep them flexible and build composable abstractions that are as general as possible which helps to solve a wide range of problems. Focusing or improving upon a certain facet of a software means that if that component gets unused in the end, all the effort goes waste hence a this project adopted a lean methodology of production popularised by Toyota [TPS 1988] having in mind the core idea that effort expended towards this project were least wasted.

Having described the background that lead up to the creation of this project let us see the metaphors and and principles that underlie the creation of this system in the next section.