Erweiterung der Lernplattform Moodle anhand der Programmierung von Blöcken Seminarvortrag im Studiengang Scientific Programming / FH-Aachen von Mathias Kohs Erstbetreuer: Prof. Dr. -Ing. Andreas Terstegge Zweitbetreuer: Dipl. -Inform. Roman Breuer Inhaltsverzeichnis • Elearning • LMS • Moodle Was sind Blöcke? Programmierung von Blöcken 2 Elearning • Was ist Elearning? • Selbstlernsystem • Ergänzung zur Präsenzveranstaltung • Einsatzorte Schule Hochschule Weiterbildung 3 Learning Management Systeme (LMS) Was sind LMS? • Ähnlich wie ein CMS • Joomla / Wordpress / Drupal • Hilft bei der Organisation von Lerninhalten • Ermöglicht das Umsetzen von Selbstlernsystemen Tutoriell gestützte Systeme Begleitsystemen zur Vorlesung 4 Learning Management Systeme (LMS) Funktionen von LMS • Zusammenstellung von Lerninhalten • Quizze / Lernstandsabfragen • Lernpfade • Kommunikationsmöglichkeiten • Tutorenwerkzeuge • Studentenwerkzeuge • Userverwaltung 5 Learning Management Systeme (LMS) Auswahl bekannter Systeme • WebWeaver (1999) • EDYOU (2010) • Blackboard (1997) • OLAT (1999) • Ilias (2000) • Moodle (1999) • Stud.IP (2000) 6 Moodle • vollwertiges LMS • streng Kursbasiert • Modular 37 Pluginschnistellen „Modular Object-Oriented Dynamic Learning Environment“ https://moodle.org/logo/logo-4045x1000.jpg 7 Moodle Auswahl Pluginschnittstellen • Blöcke • Authentifizierungs-Module • Einschreibe-Module • Quiz-Module • Webservices • Reports Weiteres unter: http://docs.moodle.org/dev/Plugins 8 Moodle Was sind Böcke? 9 Moodle Blöcke Standard Blöcke 10 Moodle Blöcke Eigene-Blöcke 11 Moodle Blöcke Konfiguration Global / Instanz 12 Block-Programmierung Bestandteile eines Blocks • block_[blockname].php • edit_form.php • settings.php • version.php • lang en block_[blockname].php 13 Block-Programmierung block_[blockname].php class block_helloworld extends block_base { function init() : void function get_content() : String function instance_allow_config() : boolean function instance_allow_multiple() : boolean function has_config : boolean } 14 Block-Programmierung edit_form.php class block_helloworld_edit_form extends block_edit_form { protected function specific_definition($mform) { $mform->addElement('header', 'configheader', get_string('blocksettings', 'block')); $mform->addElement('text', 'config_extratext', get_string('extratext', 'block_helloworld')); $mform->setDefault('config_extratext', 'default value'); $mform->setType('config_extratext', PARAM_MULTILANG); } } 15 Block-Programmierung settings.php defined('MOODLE_INTERNAL') || die; if ($ADMIN->fulltree) { $settings->add(new admin_setting_configtext( 'block_helloworld_einstellung1', 'Einstellung1', '', ‚StandartText', PARAM_TEXT) ); } 16 Fazit Moodle • Umfangreich • Große Anzahl Schnittstellen • Gut anpassbar • Umfangreiche aber ungenaue API Dokumentation • Einfacher Einstieg 17 Blick auf die Bachelorarbeit Userinterface BSCW-Server Moodle-Server Zentraler Server ABC-Server DEF-Server 18 Erweiterung der Lernplattform Moodle anhand der Programmierung von Blöcken Vielen Dank für Ihre Aufmerksamkeit Ende Zusatzmaterial 20 Data Manipulation API Überblick der Funktionen $DB->get_field($tabelle, $feldname, $where) : String $DB->get_record($tabelle, $where) : StdClass $DB->get_records_sql($sql) : array<StdClass> 21 Data Manipulation API Einsatzbeispiel HelloUser 22