Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

Moodle Wishlist: Difference between revisions

From MoodleDocs
(Quiz as a Class Response System)
Line 192: Line 192:


The Quiz  module is a best of breed example of a question, answer and feedback activity, but the implicit message in its design is content is pre-arranged for students working alone. Master teachers introduce questions as they see necessary in classes to stimulate thinking and discussion and debate to force examination and building of concepts. Having a "live quiz mode" wherein a teacher can add a question "on the fly" even verbally (for example: What will happen when I do this), then collect and dsiplay responses is one of the most powerful additions technology can make to a conventional classroom.
The Quiz  module is a best of breed example of a question, answer and feedback activity, but the implicit message in its design is content is pre-arranged for students working alone. Master teachers introduce questions as they see necessary in classes to stimulate thinking and discussion and debate to force examination and building of concepts. Having a "live quiz mode" wherein a teacher can add a question "on the fly" even verbally (for example: What will happen when I do this), then collect and dsiplay responses is one of the most powerful additions technology can make to a conventional classroom.
;; It does not make sense to cram this into the quiz module. It is a different type of activity, and someone has already made it: https://moodle.org/plugins/view.php?plugin=mod_realtimequiz --[[User:Tim Hunt|Tim Hunt]] ([[User talk:Tim Hunt|talk]]) 16:24, 5 January 2015 (AWST)

Revision as of 08:24, 5 January 2015

Warning! This page is highly speculative.

It is basically a dumping ground for random ideas from anyone who wants to write something here. It is not in any way an official Moodle roadmap or policy. Some of the good ideas here may be adopted, but most of the ideas are pretty crazy, and will never work. Basically, it is a place to brainstorm. Please add your own crazy ideas! They don't need to be consistent yet, just make sure your ideas are here to be boiled down later on.

Think Big!

One type of plugin

All plugins/modules could be subclassed from one plugin class, making installation easier and simplifying the API a lot.

Or even just unify all activities and resources...

Look at new framework

Possibly base Moodle 3.0 on new existing frameworks? Ruby on Rails? Drupal? Symfony2? +2

Why not consider something like Phalcon PHP (http://phalconphp.com/en/)? (Blazing faster than Drupal or Symfony) -- Sebastian Berm

Keypoints: -- Gabriel Mazetto

  • MVC is a must (we waste too much time reimplementing "mvc" in every single page, and we lack best practices by doing it again and again and again)
  • Better ORM (I understand that in some time of the history, it was a good idea to create our own ORM, but today's lack of modern ORM means bad APIs, ancient unit tests, no "factories" which leads to expensive tests and bazilion fixtures)
  • Object Orientation done right (doesn't matter if it's php, ruby or whatever, but let's use all the useful features the language has to offer and lets make the code easy hackable, no more useless private/protected that makes impossible to overwrite pieces of code without having to duplicate everything).
  • Use more external libraries (let's just not reinvent the well again, there is a lot of good libraries out there that have strong community to maintain, and let's not waste time reimplementing our "perfect" version of them, that soon will be obsolete as no one is willing to maintain... and also let's make an effort to update regularly thous external libraries).

Drupal

There's an interesting discussion in the Language Teaching Course: How can Moodle be more of a social networking site? with some links to the Drupal in Education User Group. --Frank Ralf 14:27, 18 January 2009 (CST)

(I started a section about talk on my User talk page. --Frank Ralf 06:35, 21 January 2009 (CST))

There are some activities in the Drupal community regarding better interoperability and integration of Moodle and Drupal, see Drupal Quiz module - data exchange with other LMSes and Moodle integration with Drupal. --Frank Ralf 08:10, 10 June 2009 (UTC)

Symfony

Drupal successfully moved to Symfony. Its a good framework and may attract more community contributions.

Zend Framework

How about ZendFramework? It's open source, of course, runs on PHP, already has a pretty cool API with a well stocked service library, and the coders are working closely with Google, Adobe and Microsoft, among others, to produce some really high quality code. One feature I particularly like is that the main bulk of the PHP code is outside the public HTML directory. Since version 1.7 It also offers pretty good support for Flash Remoting (AMF0 and AMF3) making it especially easy to create integrated RIA frameworks. Check here to see what you get "out of the box". It looks like they've already done most of the hard work for you.

Node.js

Thinking "big", how about ditching PHP entirely and building on top of node.js? You could exploit its real-time-friendly design, and integrate the node.js-based etherpad-lite for synchronous document collaboration. And javascript has some of the same hacker-friendliness that PHP has.

Moodlets

Individual-independent-activities backup/restore + metadata - Eloy

Support for alternate interfaces, mobile interfaces

Optimized for tablet computing: iPad, others Completely flash-based interface? Designed for offline clients?

Integrated category/taxonomy system

Putting together the "course categories", "tags" into a generic taxonomy system.

Save the 1970-2038 limitation

Those UNIX timestamps are pretty limited.

Translation framework

Drupal uses GNU gettext.po files for providing translations which is a very robust and well understood format.

Or XLIFF format (use in Zend Framework, Symfony, Intl extension) with Resource bundle manager

Use PHP 5.3 Native Power

Like : PDO, SPL, Namespace, Intl, Phar... (Zend Framework 2 use it)

Caching with Edge Side Includes (ESI) and a proxy (varnish, squid)

This should provide performance improvements while not having to limit the number of portlets on a page for optimisation. (Symfony2 provides that possibility out of the box, leaving the choice to activate it or not)

Make a replica Moodle

1 Moodle library, 100 Moodle platforms, just adding plugins and themes.

Please Sanitize the PHP code

Don't use : ini_set

Don't use : error_reporting Don't use : @

Don't use : eval

Don't use alias : exemple : die (it's exit)

Don't use depreciates functions : exemple : split (it's explode or preg_split)


A simple way to show all errors : (in php.ini with PHP 5.3) :

disable_functions = ini_set, error_reporting

error_reporting = E_ALL | E_STRICT

display_errors = On

(eval can be disable with Suhosin)


Use the right functions : exemple : it's not ini_set('include_path') it's set_include_path

Use Registry Pattern instead global

Use Docbook everywhere

Moodle is now PHP 5 : clear "var" in class, methods are public/private/protected function (not just function) and __construct for constructor method


Many thanks for your invaluable and expert opinion, we'll be working hard on all those, sincerely! --Eloy Lafuente (stronk7) 01:37, 19 February 2011 (UTC)

Built for Teacher-to-teacher Content Sharing

Drag-and-drop courses and course items from Moodle Hubs

Learn from LAMS and Dokeos

Integrated authoring system Drag-and-drop sequential scenario-building

Invent something crazily new

3-line ideas are welcome here:

  • participation reward systems
  • Add trashcan and /or undo function
  • Make editing of modules WYSIWYG, no more icons that change layout
  • Collaborative spreadsheet editing functionality - like Google Docs.

Even more crazy

  • To turn Moodle as a Community of Practice Management tool.
  • To make it general enough so that it becomes a terrific tool for many types of activities that manages communities, but still based on socio-constructivist principles.
  • Use fractal principles where a course categories is in fact a course. They both are containers/circles with parent-child links.
  • If enrolled in a child circle, than automatically enrolled in the upper parents category/containers.
  • The scope of a Glossary should be extendable to child containers/circles.
  • Tags : Any persons, any containers/circles, any calendar events, any objects should be taggable. So that anyone that is looking for resources can find it easily. Sorted by center of interests, geographical proximity and time line.

More Agile Development

There are many elements in agile development that could apply to Moodle and benefit the development process tremendously. With proper application of these elements, the Moodle's core code can be more solid and robust. Any programmer can make changes to the source with confidence and not be afraid of breaking any other features.

Test Driven Development

Require unit tests and acceptance tests be written for every change made to the core code. No code should be committed to the core without any test written. A code reviewer should run the tests and expect them to be failed before applying the code changes, and expect they all passed after applying the fix or code changes. S/he should also run the full test suite to make sure the changes did not break any existing features and functionalities.

Code Review

Implement a code review process like the Google Chromium project. Developers can only commit to the trunk with one or more reviewers' approval.

I wonder if the person who added these ideas has any idea how Moodle development actually works. I would guess not. The process is already very agile. All contributions are code-reviewed. There are not enough unit tests yet, but writing unit tests for legacy code is the hardest sort of tests to write (see the book xUnit test patterns) so frankly, it is not worth the effort, except in new code. I can get away with saying that because I have written 2500+ test cases for the latest bit of development I did.--Tim Hunt 15:23, 6 February 2011 (UTC)

Hi Tim, please don't take me wrong. I think the development team at Moodle is already very agile. It is actually one of the few agile projects that I have seen in the open source communities. The effort that you and many diligent individuals have made to coordinate and integrate contributions from all over the world is outstanding. I just made these comments based on the software development environment I came from, where no code change is allowed to commit without any test written and reviewer signs off. Our VCS is actually configured to reject any commit that do not have these two elements present. You are correct that I do not fully know the Moodle development process yet, but the fact that I see codes (particular contributed codes) being checked in without any tests, I just thought it would help bolster Moodle's core code by enforcing this rule in future commits. And implementing something like Google Chromium code review interface allows more eyes on the check-in codes, and hopefully alleviates some of the loads from you and the rest of the core team, who have been doing a wonderful work on peer-reviewing all these time. Again, please don't take this as a criticism but a brian-storming idea if you will. Peace. --Carson

Audio Feedback

  • The ability for lecturers to leave audio feedback on students work (student uploaded work could be: text,audio,video...) as opposed to written text feedback. Students can then listen to feedback rather than read text feedback on-line.
  • On the (moodle) activity/assignment submissions page, beside each students text input box, have a record, pause & stop button for teachers to record & save the audio feedback.
  • It would be for all audio feedback left by lecturers in a particular course for a particular student could be aggregated into one podcast, which could be listened to by students on their mobiles, on the move--Jago Brown
This does not require any major changes to Moodle. It just requires a few plugins, possibly just a 'record audio' repository plugin. And, perhaps, a new assignment type or question type. This is all perfectly possible in Moodle 2.x.--Tim Hunt 16:22, 10 September 2011 (WST)

Being able to use apostrophe in file and folder names

It would be good, to respect user choice (and language) to be able to use apostrophe in folder names and filenames. A tracker issue was opened for that : MDL-42724

Fix the Scroll of Death

Allow layout settings to be applied to course sections (as they are to courses). Allow multiple image types to be added to themes for activity / resource types. Allow images to be overridden (uploaded) for individual activities. Allow sections to be added and deleted on the in line within the course page as opposed to defining them in the course settings.

The idea would be that within each course section you could choose between grid / tiled layouts, columns, collapsable toggles, accordians etc. Because this would be based on sections not the entire course you could mix and match different layouts within a single course as required.

Another approach would be to build a system of shortcodes into the text editor. Commercial Wordpress themes have done this for some time for example "Avada Theme", "FlexForm", "U-Design" (all can be found on ThemeForest). If shortcodes were an option templates could be saved and re-used / loaded into a given course.

Split Assignments out From Content

Assignments grades and feedback should belong to the student not to the course. Clearing down of these records should be driven by a site (and possibly category) wide retention policy not by a teacher deciding (or not as the case may be) to reset the course.

Rebuild MOODLE modules as Drupal Components

I see Drupal has been already mentioned, but rather than rebuild MOODLE using Drupal, rebuild the functionality and modules as a series of standalone Drupal modules. MOODLE would not be an application in its self but a collection of modules, best practices for on-line delivery, and a Drupal distribution.

https://drupal.org/documentation/build/distributions

From a learning perspective this would open up new ways for people to access the pedagogy that underpins MOODLE. From a technology point of view development time would be sped up as many modules already exist in Drupal and the potential developer base would explode in terms of size.

Make Quiz Module Work as a Class Response System

The Quiz module is a best of breed example of a question, answer and feedback activity, but the implicit message in its design is content is pre-arranged for students working alone. Master teachers introduce questions as they see necessary in classes to stimulate thinking and discussion and debate to force examination and building of concepts. Having a "live quiz mode" wherein a teacher can add a question "on the fly" even verbally (for example: What will happen when I do this), then collect and dsiplay responses is one of the most powerful additions technology can make to a conventional classroom.

It does not make sense to cram this into the quiz module. It is a different type of activity, and someone has already made it
https://moodle.org/plugins/view.php?plugin=mod_realtimequiz --Tim Hunt (talk) 16
24, 5 January 2015 (AWST)