dev:blog Seite 1
Yesterday we released, as promised, the first 3 out of ~35 modules used in Athene2 and developed here at Serlo. These modules are licensed under the MIT Open Source license for everyone to use!
Our repository is located on our Serlo GitHub Account. As already mentioned, we released 3 core modules:
We are releasing these modules bit by bit to ensure a clean codebase, tests and good code quality. Currently, the code quality ranges from 10 of 10 possible to 9.34 out of 10 which is extremly high. Test coverage for the versioning and class resolver component are good as well, athene2-common will follow soon.
We have two major issues right now:
- Missing docs: At this time, documentation and user guides are spreaded thin.
- Missing tests: Test coverage is okay, but we'd like to push it beyond the 95% mark.
So now it's your turn, help us finish our goals together!
The less time we spend on docs and tests the more time we have to release more modules!
Today we rolled out a new major version (0.1.2.1-beta) of athene2. The update includes
- improved templates for taxonomies, discussions, the athene2 editor and spoilers
- a greatly improved search
- i18n updates for our german branch
- the ability to leave comments on user profiles
- improved typography
- clickable notifications
- about 40 closed tickets
- and probably a lot of stuff I forgot to mention...
Athene2, die Software hinter www.serlo.org wurde in der Nacht von Sonntag auf Montag erfolgreich deployed. Wie fast immer bei solchen Unterfangen verlief natürlich auch diesmal nicht alles so reibungslos, wie man sich das gewünscht hat.
Insbesondere hat uns der Serverload, bei durchschnittlich 200 aktiven Nutzern, beschäftigt. Trotz Fullpage Cache lag die Serverantwortzeit bei bis zu 20 Sekunden. Apache2, bessergesagt Prefork MPM, konnte mit den vielen simultanen Requests nicht umgehen.
Nach etwas Recherche hat sich herausgestellt, dass php-fpm in Verbindung mit dem Apache2 MPM Worker, einen deutlichen Performanceschub bietet. Ich empfehle hierzu folgende Lektüre.
Auch wenn der Apache2 MPM Worker nur eine Übergangslösung zu nginx darstellt, haben sich unsere Ladezeiten deutlich verbessert. So ist die Serverantwortzeit der Mathe Startseite auf 300-700ms gesunken!
Was steht jetzt an?
Auch wenn der Relaunch der Seite nun auf stabilen Beinen steht, geht es erst jetzt richtig los. Neben neuen Fächern läuft langsam auch die Englische Version von Serlo an, die unserer Multi Tenant Daten Architektur auf den Zahn fühlen wird.
In der nächsten Zeit werden wir uns aber vorerst mit folgenden Themen beschäfigen:
- Verbesserung des Cache Flushings (80%)
- Verbesserung einger Ansichten (70%)
- Template Bugfixes (30%)
- Pagination im Blog und bei den Diskussionen (0%)
- Verbesserung des Opt-in und Opt-out bei Benachrichtigungen (0%)
- Verbesserung der Userprofile (0%)
- Verbesserung des RBAC Systems, um mehr Parameter beachten zu können (0%)
- Bugfixes bei der Versendung von Benachrichtigungsemails (0%)
- Bugfixes bei der dynamischen Navigation (0%)
- Bugfixes in der dynamischen Navigation (0%)
In this blog article, we introduce Athene 2, version 2 of the Serlo Open Education Platform. Designed from scratch with students in mind, we build a learning resources management system “Athene2” that gives students different formats of content via different access points, while enabling the editorial community to collaboratively create the content.
This page is a compact collection of thoughts and concepts. It should answer questions, and also provoke some discussion, feedback and collaboration. Please feel free to contact us for a conversation using the email address “email@example.com”
We distribute the learning resources of the future – easily accessible, visually attractive, didactically valuable, digital and multimedia-based, free of charge, licensed under Creative Commons (cc-by-sa), and democratically constructed.
- Server-side: Linux, Apache, MSQL, PHP 5.4 - Zend Framework 2, Doctrine 2, Sphinxsearch
- Client-side: HTML5, jQuery, Twitter Bootstrap
- Collaboration: Git (via GitHub), Asana
Information about our Scrum, partners, possibilities to participate, job locations, required qualifications and more is described here (in German).
The new Software
The new www.serlo.org will run on Athene2, an open-source Advanced Learning Resources Manager. Athene2 can handle different subjects and different learning resource types by offering a simple to use plug-in interface. Athene2 consists of different packages for creating successive versions, entities/nodes (comparable to drupal's node concept) and community, just to name a few. All of these packages are highly modularized in order to maintain or extend them easily.
Expansion to other learning objects, community-tools, subjects and languages can be done with simple backend settings by the system-admins and language-admins.
Here you can see one of our experiments as a first step towards a modern user interface - details below.
What we've learned - About the e-learning landscape
There are four components of e-learning:
- content: different accesses, many formats, Wiki-principle for the creation, ...
- collaboration: video conferences, online document editing, scientific collaboration, ...
- process control: who is learning what and when,automatic recommondations, classroom data for teachers and parents, ...
- courses: MOOCs, online depiction of groups with topics, trainer, participants, events, bibliography, ...
We are convinced that it is impossible to combine all aspects in one e-learning offer because: (1) they compete in focus, (2) they distinguish in technology-dependence and (3) internal "ideologic" concepts with respect to didactic methods are often inconsistent. That's why we deliberately focus on study materials for students and are building a system which precisely meets the relevant needs in terms of language, functionality and interface.
What we've learned - About consistency
Systems like goorulearning search the broad landscape of OERs (Open Educational Resources), tags and scores them, combines them with lessons and includes them into controllable or automated learning processes. This is absolutely consequent and reasonable. But such a system is not able to create a learning flow for its users.
Therefore it must be possible to (1) integrate learning objects into one another, e.g. exercises and videos into articles; articles into overlays for exercise solutions; all kinds of learning objects into learning modules (see below) etc., (2) avoid repetition - learning objects have to be selective as they are linked to each other and (3) display learning objects in a complex manner - the possibilities to display learning objects are very limited if they are just references to diferent plattforms - for example math exercises can't be arranged as groups composed of one task and many sub-exercises. Among others, these three demands substantiate our conviction that learning resources should be stored and accessible on one platform with consistent formats and learning flow functionalities. In turn, variety accrues through collaboration, filtering and personalization (see below).
What we've learned - About teachers and students
There is no real need to distinguish between functionalities for students and teachers or to even define different user roles. On the contrary, students and teachers have different kinds of feedback and input, which are both very important for the creation of high quality learning resources and learning experiences. Only a system which (1) adresses learners, who want to find and consume learning resources, (2) adresses teachers, who want to share and use learning resources and (3) builds on a joint learning and editorial community - without forcing them into two separate rooms of the same building - can benefit from the synergy of claim and intelligibility.
To put it more simply: An advanced level student should be able to teach elementary level students without using two different accounts.
Which leads us to what we've learned ...
What we've learned - About process control
Users spend hundreds of hours learning on Serlo. Of course it would be nice to keep track of them and what they have already learned - therefore they would have to log in and we would gather this information in one of two possible ways:
(1) self- motivated confirmation by the users once they have mastered something (2) automatic alignment between user input (e. g. an exercise solution) and a sample solution from our database.
Additionally, we could use everything Google Analytics knows about a website - but personalized for every user. Consequently we could know who learns what when and how succesfully. Subsequently, users should be able to show their statistics to each other .. and their parents .. and their teachers. Teachers get their classroom data, so why shouldn't they be able to allot homework to their students, give feedback and marks? A next step would be to identify gaps in knowlege by algorithms and automatically recommend learning objects or even enable the system to personalize these objects. You see, in our opinion the problem with this sort of process control is (1) it is authoritarian, (2) it is technically costly if you want to do it really well, (3) it partly replaces the students' and teachers' sagacity and (4) it inhibits the students' autonomy. System-based process control makes learning efficient, but from a pedagogical point of view, it is highly controversial.
That is why the most that Serlo does is to enable independent confirmations from the users about their learning success. In this manner, we are a neutral and freely licenced database of learning resources, on which everybody is invited to build their own control mechanisms and to compete in this market.
What we've learned - About variety and focus
To borrow an example from Wikipedia, where two articles about the European Union, one with a positive and one with a negative connotation, would not be allowed. There is only one article, the product of intense discussions that have gone on in the backround. The dynamics of finding compromises, collaborating, and deliberating are only possible because all the participants have to focus on one object. That's why we don't allow different versions of learning objects about the same topic (in one language). On the one hand, this rule eliminates variety, but on the other hand, it guarantees quality because discussions have to take place about formal propriety (officials), subject-specific propriety (professors), didactic claims (teachers), intelligibility (students), aesthetics (designers), etc.
The main focus of Athene2 lies on the processing of learning resources (OERs) and subjects. As every learning resource type, e.g. an article or an exercise, has specific didactic requirements, maximum flexibility is required. Therefore we implemented a plug-in interface with very low restrictions, which will let you do close to anything. A plug-in could handle versioning or implement remote recources like youtube or OERs from different plattforms.
They are our answer to the question of whether didactic preparation is content or not. On the one hand, they contain information, on the other hand they arrange learning objects as the actual content in a didactic means. We managed to treat them as content and access at once. Our learning modules ...
- work like a presentation
- have the same features as every learning object,
- string learning objects together,
- contain ammendments, summaries, story-telling, etc.,
- can be grouped,
- are related to each other as requirements and
- have a special access point in the main subject-navigation: the "learning path".
The different learning objects...
- (1) can be found via the search function,
- (2) can be arranged in a didactic manner as learning modules, which are themselves related to each other as requirements,
- (3) are attached and can be found at the end of a topic hierarchy,
- (4) are asigned to an unlimited number of curricula -- like a filter system for our users
Communication and deliberation
Some weeks of research in the Wikipedia community gave us a feeling for the balance between structuring user interaction to make collaboration efficient and giving the necessary freedom to make it dynamic. This is the result:
- simple issues - inspired by GitHub - for the learning objects as feedback tool and to create an editorial work flow
- community pages - defined and placed by the sys-admins and administrated by the subject-admins - as a flexible tool for information, coordination and discussion
- profile pages on which everyone's contribution is visible to allow for transparency: everybody can see what everybody else is doing in the editorial community - so users earn a reputation and control each other.
- We basically pursue the approved role system of this prototype and add two of our own pedagogical roles: the moderator and the ambassador - for respected personalities, who welcome new members, mediate conflicts, and represent Serlo externally.
Every aspect of content on Serlo is community-based developed: the learning objects with their individual information; their access points, like curricula and topic hierarchy; the subject itself and intersubject linking (learning flow). This is a huge challange as we can't just use one kind of entity like a plain page and its repository for all kinds of content. To solve this problem, we built an abstracted repository system combined with action lists to make as much editing as possible reversible, and to make other kinds of actions at least visible
Awesome sh** !! We'll tell more about it soon.
The current design of Serlo is a patchwork of amateurs. We had to admit this, searched professional help and found Form & Code a web developement company in Munich, who are enthusiastic about Serlo's vision . They essentialy support us - pro bono - to achieve a balance between on the one hand a pleasant look, good overview and aesthetics young people are used to and on the other hand a simple design which reflects our non-profit character and reduces the interface to functionality.
As tablets are slowly establishing themselves as the #1 device for students in schools, Serlo has to support touch functionality and be responsive towards using the right width. Which is a big challenge because learning resources - like an applet or math exercise - don't consist just of scaleable text and pictures.
Status quo (2013-08-02)
- Database module: finished
- Code patterning: advanced
- Features: at the beginning
- Interface: first comprehensive scribble will be published on the Vision Summit at the end of this month.