of 30
8/2/2019 Providing User-Centered Information in the Personal Learning Environment
1/30
Institute of Information Systemsand Computer Media
Graz University of TechnologyGraz, Austria
Providing User-Centered Information
in the Personal Learning EnvironmentBachelors Thesis
Igor Skoric
October 2011
Supervision:Assoc. Prof. Dipl.-Ing. Dr.techn. Martin Ebner
8/2/2019 Providing User-Centered Information in the Personal Learning Environment
2/30
Abstract
Students using the information system of their school or university often feel the systemis not made according to their needs. Programmers are often more concerned about theneeds of the university and its staff, which is understandable as those people make thepurchase decisions for the institution.
In an effort to alleviate student hassle and increase student motivation and productivitythe TU Graz has created the Personal Learning Environment (PLE). The PLE is a student-oriented learning environment providing learning tools for students in the form of a freelyconfigurable widget engine.
This work is a contribution to these efforts with the creation of a widget allowing thestudent to search for exams, compare exam schedules of multiple courses, create an examplan and rate exams afterwards. The exams are rated 1 to 5 points representing the timeinvestment needed in relation to the attained score on the exam. The rating informationis then displayed in a color coded system to other students who are looking for the same
exam.Keywords: Social Learning, Networked Learning, Exam, Widget, Widget Engine, RatingSystem, Student-Centered, PLE, Personal Learning Environment, TU Graz
8/2/2019 Providing User-Centered Information in the Personal Learning Environment
3/30
Zusammenfassung
Bei der Erstellung von Informationssystemen fur Universitaten werden Studierende als Be-nutzer des Systems oft vernachlassigt. Diese machen in der Regel den groten Benutzerkreisdes Systems aus, haben jedoch keinen Einfluss auf die Kaufentscheidung bei der Anschaf-fung des Systems und werden daher auch entsprechend wenig von den Programmierernsolcher Systeme berucksichtigt. Die Studierenden mussen sich mit der Lage zurechtfinden,die sie oft als unnotig anstrengend und schwierig empfindet.
In einem Versuch diese Probleme der Studierenden zu beheben hat die TU Graz diePersonal Learning Environment ins Leben gerufen. Die PLE ist eine Plattform fur Stu-dierende, die Werkzeuge und Informationen in der Form von Widgets zur Verfugungstellt.
Diese Arbeit tragt ein Widget dazu bei. Dieses Widget ist fur die Verwaltung und Planungvon Prufungsterminen aus Studentensicht gedacht. Der Studierende kann nach Terminensuchen, diese zwischen verschiedenen Lehrveranstaltungen vergleichen und die Planungder Antritte durchfuhren. Nach dem Abschluss der Prufung kann in weiterer Folge eine
Bewertung des Zeitaufwandes zum Erreichen der jeweiligen Note abgegeben werden. DieseInformation wird anderen Studierenden in der Form einer Farbcodierung zur Verfugunggestellt.
Schlagworter: Soziales Lernen, Vernetztes Lernen, Prufung, Widget, Widget Engine,Wertungssystem, Studentenorientiert, PLE, Personal Learning Environment, TU Graz
8/2/2019 Providing User-Centered Information in the Personal Learning Environment
4/30
Pledge
I hereby certify that the work presented in this bachelors thesis is my own and that workperformed by others is appropriately cited.
Ich versichere hiermit, diese Arbeit selbstandig verfat, keine anderen als die angegebe-nen Quellen und Hilfsmittel benutzt und mich auch sonst keiner unerlaubten Hilfsmittel
bedient zu haben.
4
8/2/2019 Providing User-Centered Information in the Personal Learning Environment
5/30
Contents
1 Introduction 6
1.1 Identifying the Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.1.1 CampusOnline R . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.1.2 Making an Exam Schedule . . . . . . . . . . . . . . . . . . . . . . . 6
1.2 Designing a Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.2.1 Searching for a Good Compromise . . . . . . . . . . . . . . . . . . 7
2 State of the Art 8
2.1 Personal Learning Environment - PLE . . . . . . . . . . . . . . . . . . . . 82.2 Widget Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.1 Important Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.2.2 Widget Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.2.3 Model-View-Controller . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3 TU Graz API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3 Implementation 12
3.1 Getting into Shape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123.1.1 Width of the Widget . . . . . . . . . . . . . . . . . . . . . . . . . . 123.1.2 Height of the Widget . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.2 Extracting the Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.2.1 The TU Graz CampusOnline API Format . . . . . . . . . . . . . . 14
3.2.2 The PHP Code for Extracting the Information . . . . . . . . . . . . 153.3 Storing the Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.3.1 The DBUtils Class . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.4 Processing the Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.5 Retrieving the Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.5.1 JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.5.2 JavaScript Object Notation . . . . . . . . . . . . . . . . . . . . . . 183.5.3 XMLHttpRequest . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.5.4 Example of a Request . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.6 Maintenance of the Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.7 Interfacing with the User . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.7.1 Program Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . 203.7.2 Course Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.7.3 Planning Exams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.7.4 Rating Exams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4 Discussion 22
5 Conclusion 27
5
8/2/2019 Providing User-Centered Information in the Personal Learning Environment
6/30
Chapter 1
Introduction
1.1 Identifying the Problem
1.1.1 CampusOnline R
The Information Management System programmed by Graz University of Technology (TUGraz) is used by 35 institutions of higher education. Its use is obligatory on a daily basisfor 247.000 students attending those institutions and about 77.000 staff members. About1.7 million exams are handled by the software[8].
Although CampusOnline performs a huge number of functions, and performs them well,there are still areas not deemed worthy of investing time or money to improve on. Reasonsfor this are on the one hand lack of sales impact as mentioned and incompatibility of certainfeatures with the overall organisation of the software on the other hand. Features that donot fit into the overall concept make it necessary to reorganise moderately big parts of thesystem, which is inefficient. Features which do not integrate well on the other hand promptthe question if they should be part of the software at all.
The solution to these problems for CampusOnline was not to integrate them but to offer
APIs to restricted groups of programmers to improve existing functionality.
1.1.2 Making an Exam Schedule
One problem identified was the lack of functionality enabling students to choose examsfor learning, taking them at the most opportune times. There is also no possibility offinding out how hard an exam is going to be and how long one should plan on learning forit.
For planning exclusively courses from the current term there is a sorted list of exam datesalready offered in CampusOnline. Nevertheless, the way to plan the exam dates for a list ofcourses which are not in the students current term is a hard challenge.
So far the procedures for such circumstances are follows:
1. Select a course from the list
2. Open up the exam dates search page
3. Search for the course
4. Open the exam dates page of the correct course from the results
5. Write down all possible exam dates on a sheet of paper or similar medium
Chapter 1 Introduction 6
8/2/2019 Providing User-Centered Information in the Personal Learning Environment
7/30
After that the list must be sorted and all exam dates of all different courses must becompiled into a single list. After that the time between exams in different sequences andthe time to plan for learning before an exam hat to be calculated. If the list of examschanges, the first part has to be redone partly and the second part has to be redoneentirely.
1.2 Designing a Solution
Starting from here there seems to be plenty room for improvement. Assuming that thereis total access to information and unlimited resources the perfect solution would be onethat does everything automatically.
Due to privacy and data protection concerns, the TU Graz does not expose all the existingdata to the API. Any data involving specific students or student groups is not provided.The API does not enable an application that utilises it to call up any of the data relatedto the currently logged in user, despite the properly authenticated user credentials. Thecontent available at any given time is limited to the information provided by the usermanually.
Furthermore, the API does not provide the information about the link between programsand courses. The full information on all courses and all programs can be retrieved, howeverit is not possible to find out which courses actually make up a specific program by usingthe TU Graz API calls. This means that even if a student provides his or her program andthe current term, the system can not offer exam date management fitting her requirementswithout additional complications. This limitation within the API architecture seems un-necessary as the requirement for such a possibility lies clearly within the desired system
features of the student users.
1.2.1 Searching for a Good Compromise
Given the current limitations, certain information prerequisites are needed from thestudents: Their study program and the courses they are planning on doing in the nearfuture. After they attended those courses a way is required to communicate their ex-perience back to the system so the system can process it and provide the result toother students. This solves one part of the information gap with a reasonable compro-mise.
The other part of information that is needed is the link between courses and programs.This data which is missing from the API can be obtained from the public part of the TUGraz student web interface. This workaround currently works by parsing the HTML of theweb page making it an avoidable source of error that could be remedied by extending theTU Graz API.
Chapter 1 Introduction 7
8/2/2019 Providing User-Centered Information in the Personal Learning Environment
8/30
Chapter 2
State of the Art
2.1 Personal Learning Environment - PLE
The Personal Learning Environment is the target framework for the solution. The Loginpage can be seen in figure 2.1. It is a custom desktop-like interface with a rich selection oftools for students (see figure 2.2).
Figure 2.1: The login page of the PLE.
Figure 2.2: The main view of the PLE.
The PLE is based on AJAX with strong JavaScript library leverage and flexible integrationof backend technologies for each and every of the widgets. The main portal interface is ren-dered with the help of jQuery and jQueryUI JavaScript libraries [5].
Chapter 2 State of the Art 8
8/2/2019 Providing User-Centered Information in the Personal Learning Environment
9/30
2.2 Widget Development
The PLE lead developer Behnam Taraghi provides a PLE widget development frameworkcalled WDE (Widget Development Environment) [6] and a guide on widget definition anddesign [5]. His paper for the MUPPLE10 Conference (Mash-up Personal Learning Envi-
ronments 2010) outlines the usage of the MVC pattern for this environment [7].
2.2.1 Important Files
Config File config.xml This file holds the standardized widget definition. It de-fines information like width, height, name and others. Italso holds the defaults for user preferences.
Index File index.html This is the main file of the widget. It shows the widgetinterface and starts the javascript.
All the other files are optional, but there are practices which one is expected to followwhen developing a widget for the PLE.
2.2.2 Widget Templates
The WDE framework comes with example widgets that can be used as templates andbuilt upon. Especially MVCSampleWithLocalization can be used effectively as a start-ing point and template for new widgets because it already has all important functionsbuilt in (MVC, jQuery, SPI WebService, localization). For the file structure see figure 2.3.
2.2.3 Model-View-Controller
The PLE design uses the Model-View-Controller design pattern implemented in JavaScriptwhich is illustrated in figure 2.4 [7].
The MVC pattern effectively acts as a sandbox and at the same time allows for a certaindegree of parallel development to take place.
2.3 TU Graz API
The CampusOnline configuration of TU Graz is set up to offer a big list of services ex-posed on distinct URLs and requiring an unique API Key. If requests on those URLs aresubmitted alongide a valid and authorized key the API provides the XML files containingthe requested information.
If data is requested at the root node of the organisation tree - which is the organisation
Chapter 2 State of the Art 9
8/2/2019 Providing User-Centered Information in the Personal Learning Environment
10/30
Figure 2.3: Widget Template File Structure
with ID 37 - then the caller will receive all of the entries that said API can provide. Clearly,there is a wealth of services provided. However, only a few of those are useful to us. In factonly three of those services are needed. Those are as follows:
exportCoursesByOrganisation: This API provides all the courses. This is neededbecause exams are attached to courses.
exportProgramsByOrganization:This API provides all the programs in the sys-tem. This is needed for finding out which programs exist.
exportRDMExamsByOrganization: This API provides the exam dates them-selves.
As mentioned above there is one additional information service which would be needed.That is the information about the link between programs and courses. Unfortunately, thereis no API service providing that information according to the TU Graz CampusOnline APIdevelopment support team advice provided at the time of writing.
Chapter 2 State of the Art 10
8/2/2019 Providing User-Centered Information in the Personal Learning Environment
11/30
Figure 2.4: Model-View-Controller Pattern in JavaScript
Figure 2.5: An excerpt from the list of CampusOnline API methods.
Chapter 2 State of the Art 11
8/2/2019 Providing User-Centered Information in the Personal Learning Environment
12/30
Chapter 3
Implementation
3.1 Getting into Shape
The nature of the framework that is used means that it is necessary to adapt to certainadditional restrictions imposed by it. Because the widget is sharing desktop estate witha multitude of other small applications there are restrictions on the possible window size.The widget has to have a reasonable size which allows to display all the information that
is necessary but still maintain a rather slim outline.
3.1.1 Width of the Widget
The Widget has to be at least wide enough to fit the name of the longest course plus thedate of the exam into one line.
Figure 3.1: Length distribution of course names.
As seen in figure 3.1 there are course names of 80 chars and more, but the majority ofnames is in the 10 to 60 characters range. To be more specific, there are 4176 courses inthe database. If 95% of courses are to be covered the widget has to be able to display4176 0.95 = 3967.2 3967 course names. If the limit is set at 57 characters, 3965 coursenames can be displayed. That amounts to 94,94% of total courses, an almost perfectcut.
But not all of the possible courses actually have exams. Only 333 out of the 4176 courses
Chapter 3 Implementation 12
8/2/2019 Providing User-Centered Information in the Personal Learning Environment
13/30
in the database actually have exam dates in the database. The distribution of course namelengths for courses with exams looks a little different.
Figure 3.2: Length distribution of course names /w exams.
To cover 95% of courses in this distribution, it is necessary to allow only up to a length of49 characters which covers 318 out of 333 courses and amounts to 95.5%. If that is extendedup to 54 characters this can cover all length classes having more than one element whichwould be 326/333 or 97,90%. At the same time this covers 93.44% of total courses with orwithout exams.
3.1.2 Height of the Widget
Looking at the requirement to have multiple pages of content which are separate from eachother there are two solutions provided by the jQueryUI library.
Accordion: Has a very rich animation but takes a area of full length of the parentcontainer for every additional page. This is not very beneficial for an interface withvery limited screen estate.
Tabs: Has a very plain animation but takes up only as much space as one item inthe accordion. Additionally has the advantage of being intuitively understood by abig number of users.
Factoring in the default height of the tab buttons (33px) and about 10 lines of exam dates
(about 20px each) this results in about 230px of widget height. After including some kindof description and/or controls plus margins the target height should be at about 300px ormore. Having defined the height and width requirements, those can be inserted into thewidgets config.xml file.
Listing 3.1: Defining Widget Dimensions
1 < w i d ge t x m l ns = " h t t p : / / w w w . w 3 . o r g / T R / w i d g e t s / "
2 xmlns:palette= "http://palette.ercim.org/ns/"
3 width= " 5 5 0 "
4 height= " 3 0 0 "
5 id =" e x a m W i d g e t ">
Chapter 3 Implementation 13
8/2/2019 Providing User-Centered Information in the Personal Learning Environment
14/30
3.2 Extracting the Data
3.2.1 The TU Graz CampusOnline API Format
The Widget needs to get the relevant data from the TU Graz CampusOnline API and storeit in its database. For that to work an URL with the correct tokens needs to be compiled.Here is an example based on the exportProgramsByOrganization API.
1. The URL: https://online.tugraz.at/tug_onlinej/ws/webservice_v1.0/
2. The Service Identifier: e.g.cdm/organization/programs/
3. The Output Format: e.g.xml
4. The Parameters beginning with ?, separated by &
a) The API token: e.g.token=XXxXXxXXXxXXxXXxXXxXXXXxXXxX
b) The Target Node in the Organisation Tree e.g.orgUnitID=37Where 37 is the root node in this case.
This results in an URL similar to this one: https://online.tugraz.at/tug_onlinej/ws/webservice_v1.0/cdm/organization/programs/xml?token=XXxXXxX&orgUnitID=37
After requesting the resource with an URL like this the caller gets an API response in therequested format. The header of the response can be seen in listing 3.2.
Listing 3.2: XML Response Header
1
8/2/2019 Providing User-Centered Information in the Personal Learning Environment
15/30
15 https://online.tugraz.at/tug_online/semesterplaene
.uebersicht?pStpStpNr=571&csj_nr=1032&csr_nr
=246
16 < / w e b L i n k >
17 < s u b B lo c k u s e r De f i n e d =" p r o g r a m S t a t u s "> N < / s u b B l o c k >
18 < / i n f o B l o c k >
19 < s e a r c hw o r d > E l e k t r o te c h n i k < / s e a r ch w o r d >
20 < / p r o g r a m >
3.2.2 The PHP Code for Extracting the Information
From here all the relevant informationcan be exrtacted by reading the well structuredXML file returned from the API. This is done by by processing the file in a server sidescript, programmed in PHP. For the solution at hand, the API responses are cached intoXML files and used from there. See listing 3.4.
Listing 3.4: Parsing XML and filling the DB1 /*
2 * p a rs i ng p r og r am s f ro m c ac h e
3 */
4 echo (" p r o c e s si n g p r o g ra m s . . . \ n " );
5 $ db = n ew D BU ti ls ;
6 $ f i l en a m e = " . . / c a c h e / r a w _ p r o g r a m s . x m l ";
7 $ xm l = ;
8
9 if ( o p e n F il e ( $ f i l en a me , $ x ml ) ) {
10 foreach ( $ xm l - > p r og r am a s $ p ro g ra m ) {
11 $ p r o gr a m I D = $ p ro g ra m - > p r o g r a mI D ;
12 $ p r o gr a m C o de = $ p ro g ra m - > p r o g r a m Co d e ;13 $programName = $program ->programName ->text;
14 $ p r o g r am L e v e lT e x t = $ p ro g ra m - > l e v el ;
15 $ p r o g ra m _ t yp e = "??" ;
16 $ a rr = $ p ro g ra m - > l e ve l - > a t t r ib u t e s ( ) ;
17 $ p ro g ra m _t y pe = $ ar r [ u s e r D e f i n e d ];
18 $db->dbExec( " R E P L A CE I N TO p r o gr a m s ( p r o g ra m _ id , p r o gr a m _c o d e ,
p r o gr a m _n a m e , p r o g r am _ t y p e ) V A L UE S ( " . $ pr og ra mI D . " , "
. $ p ro g ra m Co d e . " , " . $ p ro g ra m Na m e . " , " .
$ p r o g ra m _ t yp e . " ) ; ") ;
19 }
20 }
By using object oriented PHP, a reference to an object of the type DBUtils is created -this is described in further detail in the following section.
3.3 Storing the Data
This widget uses a MySQL database to store the data used by it. The layout of the databaseis illustrated in figure 3.3.
Chapter 3 Implementation 15
8/2/2019 Providing User-Centered Information in the Personal Learning Environment
16/30
Figure 3.3: Database Layout.
3.3.1 The DBUtils Class
This class encapsulates all database operations for the web service of the widget. It islocated in the internal directory and is used by every file that needs database access. Anexample of its usage is given in code listing 3.5.
Listing 3.5: DBUtils Usage Example
1 r e q u ir e _ o n ce ( . . / i n t e r n a l / d b u t i l s . p h p ) ;
2
3 $ db = n ew D BU ti ls ;
4 $ r e su l t = $ db - > g e t N rP r o g s ( ) ;
5
6 echo (" N u mb er o f P r og r am s t o p a rs e : ". $ r e s u l t ."\n" );
3.4 Processing the Data
Ratings given by individual students provide the raw information which needs to be pro-cessed and interpreted to get meaningful results which can be presented to the students.As there are five levels of difficulty in the rating system that is being used for this soft-ware, it makes sense to use five levels of difficulty in the color coded indicator systemwhich is displayed to users. Deciding which indicator to show is not as straightforward ascalculating the average and rounding the result.
To decide how to part the field of courses into five categories a few assumptions weremade. One of those assumptions is that course difficulty is normally distributed. This isa fairly safe assumption to make as many similar datasets are normally distributed. This
Chapter 3 Implementation 16
8/2/2019 Providing User-Centered Information in the Personal Learning Environment
17/30
will suffice as a starting point until a large dataset of course difficulty ratings has beengathered.
Partitioning a normally distributed field into five sets of courses with equal cardinalitymeans calculating the five quantiles of the distribution that contain 1
5of the courses each.
For this the statistical computing software R in its standard distribution package [9] was
used.
Figure 3.4: Normal distribution quintiles
This is pictured in a diagram combined with the normal distribution in figure 3.5.
Figure 3.5: The course difficulty distribution with quantiles.
As is visible in figure 3.5 the chosen parameters of = 2.5 and = 1 make the distributionspill over the edges of the rating window. This is made intentionally to ignore 5% of fringecases and get a more fitting partitioning. Similar to above this is subject for review as
soon as enough data is gathered.
3.5 Retrieving the Data
The retrieval of data is the point at whichit is appropriate to introduce XMLHttpRe-quest objects, JavaScript and JSON. All the work of formatting the interface anddisplaying data is done client side by the XHTML and JavaScript part of the widget.The PHP server side part is only supplying data to the client side scripts in JSON for-mat.
Chapter 3 Implementation 17
8/2/2019 Providing User-Centered Information in the Personal Learning Environment
18/30
3.5.1 JavaScript
JavaScriptR(sometimes shortened to JS) is a lightweight, object-oriented lan-guage, most known as the scripting language for web pages, but used in manynon-browser environments as well.[3]
This is the programming language in which the used framework and widgets are pro-grammed in. It is an implementation of the ECMA Script Standard [4]. The following is ashort example of what JS code looks like.
Listing 3.6: JavaScript Example
1 function o n Lo a d () {
2 / / = == S ta rt in g i t a ll = ==
3 MVC.Controller.init(
4 function ( k ey ) {
5 return widget.preferenceForKey(key);
6 },
7 function ( k , v ) {
8 return w i d ge t . s e t P r e f e r en c e ( k , v ) ;
9 }) ;
10 }
3.5.2 JavaScript Object Notation
JavaScript Object Notation (JSON) is a lightweight, text-based, language-independentdata interchange format. It was derived from the ECMAScript ProgrammingLanguage Standard. JSON defines a small set of formatting rules for the portablerepresentation of structured data. [1]
JSON is the format that is used to transport data between this softwares server side APIand its client side JavaScript. An example of this format is the localization data used bythe widget.
Listing 3.7: JSON Example (edited)
1 {
2 "id" : " d e ",
3 " P l a n n e d " : " G e p l a n t ",
4 "Finished" : " A b g e s c h l o s s e n ",5 " M y P r og r am " : " M e i n S t u di u m " ,
6 }
3.5.3 XMLHttpRequest
The XMLHttpRequest standardized by the W3C in the W3C Candidate Recommendationfrom August 2010 [2].
Chapter 3 Implementation 18
8/2/2019 Providing User-Centered Information in the Personal Learning Environment
19/30
The XMLHttpRequest specification defines an API that provides scripted clientfunctionality for transferring data between a client and a server.
The XHR is used by JavaScript to request data from the server side API. This is madeeasier by jQuery function jQuery.Ajax() but in the PLE this is meant to be used by
invoking the widget.httpGetJSON() function of the widget framework. This maps 1:1tojQuery.getJSON() which is a special case ofjQuery.Ajax(). The framework functiontakes the same parameters as the jQuery counterpart.
3.5.4 Example of a Request
The program flow is illustrated in broad strokes in the sequence diagram in figure 3.6.
Figure 3.6: Effects of a button click.
3.6 Maintenance of the Data
The data has to be kept up-to-date, every day there are new exam dates being created, oldexams are being moved, programs are being modified and new ones are being introduced.It is necessary to maintain data integrity, timeliness and coverage. And it needs to bemaintained without the need of manual intervention.
For this purpose there is a mechanism in place. There is a scheduled program on the PLEserver that updates the data that is stored in the database. This program - also knownas a cronjob - retrieves the current data from the TU Graz API and updates the exams,
Chapter 3 Implementation 19
8/2/2019 Providing User-Centered Information in the Personal Learning Environment
20/30
programs and courses so they stay correct and relevant. The data which is updated in thisway is immediately available to the user and integrates seamlessly with the old data thatwas available before.
Search queries that have changed show the new values upon the next refresh. Alreadyselected programs also update instantly.
3.7 Interfacing with the User
Now that the data is available, it needs to be presented to the user in the best way possible.The major things that that need to be done when interfacing with the user are letting theuser:
1. Select the program he or she is attending for upcoming exam list.
2. Select courses that he or she is attending so the system can display exams for those.
3. Plan exams.
4. Rate exams.
3.7.1 Program Selection
As the list of programs is quite large (about 80) and there is a very constricted space,a fitting selection mechanic is required. The function jQuery.Autocomplete() fits therequirements perfectly.
Figure 3.7: Autocomplete in Action
An auto complete mechanism usually works by letting the user input a few charactersand offering a list of matching items for the user to select from. In the example shownin figure 3.7 the word soft was entered and the auto complete mechanism filtered allcourses down to only those containing the string soft. The filtering and displaying ofitems happens asynchronously on-the-fly. This offers the possibility for the user to correctand/or change the input. After selecting an item from the list with the mouse or arrowkeys the event is automatically fired and the bound function is executed with the selecteditem supplying one of the arguments. In this case the argument supplied is the programid.
Chapter 3 Implementation 20
8/2/2019 Providing User-Centered Information in the Personal Learning Environment
21/30
3.7.2 Course Selection
For this the same mechanism is employed as was before for program selection. The differ-ence is in what is done with the supplied information. Instead of just changing the selecteditem it is added up to a list which forms the constantly updating search query. In this waythe user is provided with a way to search for multiple courses at the same time and removethe need to compare exam dates manually outside this software. The search query can thenbe manually reset by clicking the reset button.
3.7.3 Planning Exams
After either entering their program into the upcoming exams tab or constructing a searchquery in the search tab a user can add an exam date to his planned exams by clickinga green right pointing arrow displayed at the end of the name of said exam. The rightpointing arrow suggests a move command to move the exam from the left to the right.This makes sense because the search tabs are on the left and the planned exams tabs areon the right.
3.7.4 Rating Exams
After an exam date has been added to the planned exams and its date passed the examis moved to the finished exams tab. In this tab the student can mark courses as finishedor remove them if he did not participate after all. Clicking the finish button opens up adialog and gives the student the option to input his experience with the difficulty of thecourse. This rating is afterwards included into the calculations for the difficulty indicators
which other students can see.
Chapter 3 Implementation 21
8/2/2019 Providing User-Centered Information in the Personal Learning Environment
22/30
Chapter 4
Discussion
Figure 4.1: Lookup tab (empty)
In figure 4.1 the startup view of the Widget can be seen. A user can formulate a compar-ative search query here by adding multiple exams to the query, which results in a displaysimilar to the one seen in figure 4.2 where a search query with three different courses wasconstructed. The query shows the possible exam dates of all the added courses combined.The user can see the date, difficulty (coloured indicator) and name of the exam. The greenarrow at the end allows the addition of the exam date to the list of planned exams. Theview can be reset by clicking the reset button to the right of the search bar.
The second tab is similar to the first one. The main difference is that in this tab the userselects a program and the widget automatically shows the next exam dates out of all the
courses in that program. This list could be reproduced by adding all the courses in theprogram to the search query in the first tab. The second tab is illustrated in figure 4.3where the empty tab can be seen and figure 4.4 where a program has been selected fordisplay.
The third tab (seen empty in figure 4.5) shows the planned exams and represents a quasiagenda. These are the exam dates which the user wants to attend or plans to do so. Theonly action possible at this stage is removal, which is pictured in figure 4.6.
Chapter 4 Discussion 22
8/2/2019 Providing User-Centered Information in the Personal Learning Environment
23/30
Figure 4.2: Lookup tab (with search query)
The dialog seen in figure 4.6 is shown when the user clicks the remove button on theplanned tab or the finished exams tab. An exam removed in this way leaves no permanentrecord in the database. It is presumed that the exam was not taken or the plan of the userchanged. Maybe the exam was added by mistake. Whatever the reason is, this is a cleanremoval.
After an exam date expires the exam is moved to the last tab (seen in figure 4.7). The onlysignificant difference for the user is the inclusion of the rating button. The rating button
opens the next and last dialog window (see figure 4.8). It allows the user to rate the examon a five part scale. The five options are from no time needed to very long time needed.This represents the students opinion on how much time is needed to get the desired result.It does not represent the students personal opinion of how much the student liked thecourse.
Chapter 4 Discussion 23
8/2/2019 Providing User-Centered Information in the Personal Learning Environment
24/30
Figure 4.3: Upcoming tab (empty)
Figure 4.4: Upcoming tab (with program set)
Chapter 4 Discussion 24
8/2/2019 Providing User-Centered Information in the Personal Learning Environment
25/30
Figure 4.5: Planned Tab (with exams planned)
Figure 4.6: Delete exam date dialog
Chapter 4 Discussion 25
8/2/2019 Providing User-Centered Information in the Personal Learning Environment
26/30
Figure 4.7: Finished exams tab
Figure 4.8: Rate exam dialog with rating mechanism
Chapter 4 Discussion 26
8/2/2019 Providing User-Centered Information in the Personal Learning Environment
27/30
Chapter 5
Conclusion
The goal of the widget was to reduce student hassle and provide tools that are useful andthat are not available in the CampusOnline Software used by many universities. The goalwas reached as planned in the beginning. Maximizing automation and minimizing work forthe student. Compromises were made where necessary and employed workarounds wherethe elegant solution is not available yet. The result is fluid to use and well received. Theuser base expanded fast and is continuing to do so.
There are two big advantages for students using this software for their exam planning. Itsaves time for the student and it gives the student information that wasnt available before.Leveraging a social rating system to give the student an idea about the relative difficultyof a course can make a big positive difference on that students assessment of time neededto complete an exam successfully.
Chapter 5 Conclusion 27
8/2/2019 Providing User-Centered Information in the Personal Learning Environment
28/30
List of Figures
2.1 The login page of the PLE. . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.2 The main view of the PLE. . . . . . . . . . . . . . . . . . . . . . . . . . . 82.3 Widget Template File Structure . . . . . . . . . . . . . . . . . . . . . . . . 102.4 Model-View-Controller Pattern in JavaScript . . . . . . . . . . . . . . . . . 112.5 An excerpt from the list of CampusOnline API methods. . . . . . . . . . . 11
3.1 Length distribution of course names. . . . . . . . . . . . . . . . . . . . . . 123.2 Length distribution of course names /w exams. . . . . . . . . . . . . . . . 133.3 Database Layout. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.4 Normal distribution quintiles . . . . . . . . . . . . . . . . . . . . . . . . . . 173.5 The course difficulty distribution with quantiles. . . . . . . . . . . . . . . . 173.6 Effects of a button click. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.7 Autocomplete in Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.1 Lookup tab (empty) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224.2 Lookup tab (with search query) . . . . . . . . . . . . . . . . . . . . . . . . 234.3 Upcoming tab (empty) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244.4 Upcoming tab (with program set) . . . . . . . . . . . . . . . . . . . . . . . 244.5 Planned Tab (with exams planned) . . . . . . . . . . . . . . . . . . . . . . 254.6 Delete exam date dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.7 Finished exams tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264.8 Rate exam dialog with rating mechanism . . . . . . . . . . . . . . . . . . . 26
List of Figures 28
8/2/2019 Providing User-Centered Information in the Personal Learning Environment
29/30
Listings
3.1 Defining Widget Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . 133.2 XML Response Header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.3 Programs Node XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.4 Parsing XML and filling the DB . . . . . . . . . . . . . . . . . . . . . . . . 153.5 DBUtils Usage Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.6 JavaScript Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.7 JSON Example (edited) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Listings 29
8/2/2019 Providing User-Centered Information in the Personal Learning Environment
30/30
Bibliography
[1] Douglas Crockford, ed. RFC 4627: The application/json Media Type for JavaScriptObject Notation (JSON). Dec. 6, 2011. url: http://www.ietf.org/rfc/rfc4627.txt?number=4627.
[2] Anne van Kesteren, ed. XMLHttpRequest. Dec. 6, 2011. url: http://www.w3.org/TR/XMLHttpRequest/.
[3] Mozilla Foundation, ed. About Javascript. Dec. 6, 2011. url: https://developer.mozilla.org/en/JavaScript/About_JavaScript.
[4] Mozilla Foundation, ed. ECMA Standard ECMA-262. Dec. 6, 2011. url: http://
www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf.[5] Behnam Taraghi. Slides Widget Tutorial. Dec. 6, 2011. url: http://ple.tugraz.
at/widgets/WDG/resources/widgetTutorial_111017.pdf.
[6] Behnam Taraghi. Widget Development Environment. Dec. 6, 2011. url: http://ple.tugraz.at/widgets/WDG/resources/WDE2011.zip.
[7] Behnam Taraghi and Martin Ebner. A Simple MVC Framework for Widget Develop-ment. Dec. 6, 2011. url: http://ceur-ws.org/Vol-638/taraghi_mupple10.pdf.
[8] Technische Universitat Graz, ed. CampusOnline Homepage. Dec. 6, 2011. url: http://campusonline.tugraz.at.
[9] The R Foundation, ed. The R Project for Statistical Computing. Dec. 6, 2011. url:http://http://www.r-project.org/.
Bibli h 30
http://www.ietf.org/rfc/rfc4627.txt?number=4627http://www.ietf.org/rfc/rfc4627.txt?number=4627http://www.w3.org/TR/XMLHttpRequest/http://www.w3.org/TR/XMLHttpRequest/http://www.w3.org/TR/XMLHttpRequest/https://developer.mozilla.org/en/JavaScript/About_JavaScripthttps://developer.mozilla.org/en/JavaScript/About_JavaScripthttp://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdfhttp://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdfhttp://ple.tugraz.at/widgets/WDG/resources/widgetTutorial_111017.pdfhttp://ple.tugraz.at/widgets/WDG/resources/widgetTutorial_111017.pdfhttp://ple.tugraz.at/widgets/WDG/resources/WDE2011.ziphttp://ple.tugraz.at/widgets/WDG/resources/WDE2011.ziphttp://ceur-ws.org/Vol-638/taraghi_mupple10.pdfhttp://campusonline.tugraz.at/http://campusonline.tugraz.at/http://http//www.r-project.org/http://http//www.r-project.org/http://campusonline.tugraz.at/http://campusonline.tugraz.at/http://ceur-ws.org/Vol-638/taraghi_mupple10.pdfhttp://ple.tugraz.at/widgets/WDG/resources/WDE2011.ziphttp://ple.tugraz.at/widgets/WDG/resources/WDE2011.ziphttp://ple.tugraz.at/widgets/WDG/resources/widgetTutorial_111017.pdfhttp://ple.tugraz.at/widgets/WDG/resources/widgetTutorial_111017.pdfhttp://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdfhttp://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdfhttps://developer.mozilla.org/en/JavaScript/About_JavaScripthttps://developer.mozilla.org/en/JavaScript/About_JavaScripthttp://www.w3.org/TR/XMLHttpRequest/http://www.w3.org/TR/XMLHttpRequest/http://www.ietf.org/rfc/rfc4627.txt?number=4627http://www.ietf.org/rfc/rfc4627.txt?number=4627