Extension:Education Program/Training


 * ''This is the content, and related discussion, from an informal introduction to the course page system, conducted by email among Wikipedia Education Program staff in April 2014. It represents the functionality at that point in time.--Sage Ross (WMF) (talk) 18:47, 22 April 2014 (UTC)

With the extension, there's no substitute for learning by doing. So we're going to do this as a series of assignments. Since Anna will be taking the lead on supporting the extension, she'll be your first line of support for these assignments. Over the series of assignments, you'll get a bit of experience with all the important aspects of the extension, from user rights to setting up courses to monitor student work.

We're going to be doing our assignments on https://test2.wikipedia.org. (This is one of the testing wikis, which gets the newest software a week before the real Wikipedias.)

Assignment 0
To get started, you each need to log in on test2.wikipedia.org. (Until you visit a specific wiki while logged in, that wiki won't recognize that your account exists.) Once you've done so, ping Anna with your username, and she will assign each of you the course coordinator user right. This right is essentially everything someone needs, permissions-wise, to manage an education program through the extension.

Assignment 1: user rights
In order to set up a course using the extension, a user needs to be assigned one of the extension user rights: course coordinator, course instructor, course online volunteer, or course campus volunteer. Although you already will have been given the coordinator right, you should try out assigning user rights yourself.

On test2, go to Special:UserRights. Enter your own username, and assign yourself the course instructor right. This is the same thing a program leader or admin would do for an instructor who wanted to start a course page.

Assignment 2: orgs and courses
There are two main types of pages that are part of the Education Program extension: institutions (sometimes called "orgs") and courses.

An institution page is a simple listing of (typically) a university or other organization that has courses in the system. A course page, associated with a particular institution, is for a specific instance of a specific course using a Wikipedia assignment. It holds general information, as well as the list of instructors, volunteers, and students, and which articles each student is working on.

First, create a new institution. Go to Special:Institutions and figure it out from there. (Call it whatever you like. This is just a test wiki.)

Next, create a course for that institution. Either go to the institution page you just created, or go to Special:Courses. (Again, call it whatever you like.) During the course creation process, enter a wikitext description of the course in the big input box. (Feel free to add images and other markup, or just keep it simple.)

Assignment 2.5: browsing courses
Now that you've set up a course page, it's time to go through the steps of actually using it.

First, go to Special:Courses to see the list of active courses.

Each of you created courses with end dates some time in the future. (Good!) If the end date of a course has already arrived, then the course will be considered finished: users will not be able to enroll in it, and it won't show up by default in the list of active courses.

(Right now, the default start and end dates are both the current date, so unless the user changes it, a newly created course will immediately be "over". This is a common issue that can cause confusion with instructors and program leaders.)

Change the pulldown from "Current and planned" to blank, and view the full list of courses that includes ones that are already over.

Assignment 3: assigning roles
You haven't already done so, add yourselves as Instructor for your courses. So I'll just add a few notes about the instructor / online volunteer / campus volunteer roles. There isn't really any substantive difference between them, except the names.

For most aspects of course pages, it only matters whether you have one of the user rights assigned to your account. But for managing the articles assigned to individual students, you need to actually be signed up for one of these roles for the specific course.

Assignment 4: editing courses
This assignment is aimed at showing you the main limitations and quirks of courses pages. Although the main page text works basically like a normal wiki page, it has some annoying little differences.

Go to your course page, press edit, and add some more stuff:
 * Add some section headers.
 * Add an image.
 * Add the template citation needed at the end of a sentence.
 * Try to substitute the same template at the end of another sentence:
 * Add an enrollment token, if you didn't already.

After you save, there are a few things to take note of:
 * On a normal page, you'd see an [edit] link for each section of the page, next to the header text. That doesn't work on course pages.
 * The citation needed template will work as intended: it creates the iconic [citation needed] tag as a superscript.
 * On a normal page, you can use "subst:" at the beginning of a template, and it will replace that text with the actual wikitext of the template page when you save it. (It will still look the same as if you hadn't substituted it, but when you edit again, you'll see the code that got inserted.) The substitution feature just doesn't work on course pages, so you get some nonfunctional wikitext instead.

Assignment 4.5: editing while logged out
Log out, and then make a vandalism edit to your course page. The thing to note is that, as a logged out user -- or a user without any of the extension user rights, such as a student -- you can change the main page text, but not the other fields (start/end dates, enrollment token, course language).

Assignment 4.75: course page history
Log back in and go to your list of contributions (Special:Contributions, linked from the Personal Tools at the top right of the page).

Note that none of your edits to the course page are showing up there. Now, go to your logs (Special:Log, linked from the top of the contributions page). This is where both your edits to the course *and* your signups for course roles will show up.

Now go to back to your course page, and click "view history". Note that you don't see the "diff" options you'd see with a normal wiki page. Undo the vandalism edit. This 'undo' interface (or the similar 'restore' link) is the only way at present to compare different versions of a course page.

Assignment 5: enrollment
Now class is starting, and its time to get your students signed up. There are several different ways of doing this, which you should try:


 * Enroll three of four of my accounts in your courses (Sage Ross (WMF), sageross, ragesoss, ragesock), using the "add students" thingy at the bottom of the page.
 * Send out enrollment link (viewable at the to each other, and enroll in each others courses by clicking the links you are sent.
 * Enroll yourself in your own course using the tab at the top next to the search box, then unenroll yourself using the same method.
 * Remove one of my accounts from your course.
 * Remove one of my accounts from someone else's course.

Additional questions from assignments 3-5

 * Where does the dummy text "la la la la la" come from at the top of my page. I don't see a way to edit/remove that. Must be part of a template?

This is not actually a template; it's an interface message which is blank by default. Whatever is added to the page MediaWiki:Course header will show up at the top of every course on the wiki. So an admin could remove that by editing this page: https://test2.wikipedia.org/wiki/MediaWiki:Course_header


 * Possibly related question: on W:EN, the course pages have some helpful boxes at the top with training, help links and enroll/watch buttons. Can I have that on W:AR as well? How is that controlled/customized?

Those are part of the "course page wizard" template on en.wiki, which we'll explore in a later assignment. In the meantime, you can see the documentation for it here at the bottom of the main template here: https://en.wikipedia.org/wiki/Template:Course_page_2


 * Does the activity bit work retroactively? For example, if I added my courses and student usernames from last semester to the W:AR extension, would I see anything for activity? Would that be beneficial for when the extension and WikiMetrics are able to talk to each other about cohorts?

The activity feed only shows recent edits... up to one week ago. If you created a course, added the students, and set the end date to be sometime in the future, then you would be able to see any edits from users who are still active. Users would also get a notification when they got added to the course, so it might be kinda weird.

Having old classes in the extension might make it slightly easier to do WikiMetrics stuff later on. No promises, though.


 * How come to edit we have to click on "Create source" each time? That's a bit confusing when the page already exists.

It's a known bug (bugzilla:56844/bugzilla:53477) that occurs whenever a user has VisualEditor enabled.


 * It doesn't look like I can redlink an article that doesn't exist, but can still add it to the list

Correct. This is a known bug. Even if you actually create that article, it won't turn blue. At least now, you won't crash Wikipedia if you re-add the same title *after* creating the article. :)


 * For translations, could I somehow interwiki link between source and the student assignment article?

Not from within the students table; that's a good idea that I hadn't though of before. It's probably not something that we'll try to address in the current extension (or rather, the legacy extension, since we've already nominally reached the point where we aren't going to actively develop the old code except for key bugs). But it's a use case that I'll try to make sure gets accounted for in the 'Editor campaigns' project.

Assignment 6: articles and reviewers
The article and reviewer assignments are pretty straightforward features. They just provide a standard way to record which article(s) each student is planning to work on, and which other users are planning to provide peer review feedback.


 * With your instructor hat on, assign topics to several of the students in your class. Make at least one of these the article "Glass".
 * With your student hat on, sign up for an article of your choice for yourself on the other courses you are enrolled in. (If you already got assigned article by the instructor, sign up for another.) Then sign up as a reviewer for someone else's article. Now make a few edits, both to one of your assigned articles and another article that you aren't assigned.
 * Now put your instructor hat back on, and replace one of your student's assigned articles with another one.

One nice feature of these assignments is that they can show up on people's watchlists. Add the article Glass to your watchlist, and then look at your watchlist. You should see all of the log entries for when the article was assigned or unassigned for a student.

Another nice feature should be coming soon, once one of our Facebook Open Academy students finishes fixing his patch, is that students will get Notifications whenever someone changes one of their assigned articles or posts on the talk page.

Extra credit: nonexistent articles
In your course, assign one of the students an article that doesn't exist. Now, create an article with that title. Now, try to add the same article again for the same student.

The expected behavior would be that this wouldn't be necessary... that if you put in a title, and then created it, then the article you originally added on the course page would just turn into a link and nothing more would be necessary. It's a bug.

Assignment 7: monitoring courses
The activity feeds are among the most useful features of course pages (and they also plenty of room for improvement). The basic idea is to provide an easy way to keep an eye on what's going on with a course.

On you course, click the "View activity" tab and see what your students have been up to. Take a look as well at Special:MyCourses. (You may have a link to this labeled "Courses" in the Personal Tools at the top right. If not, you can enable in Preferences > Misc.) This essentially combines the activity feeds of all the classes you are participating in.

Also, take a look at the wiki-wide activity feed: Special:StudentActivity. Better yet, check it out on en.wiki, where there will be lots of real student activity showing up.

Assignment 7.5: course talk pages
Leave a message own course talk page, letting the class know something important.

Assignment 8: Notifications
By this point, you'll probably already have noticed the Notifications related to courses: you got one each time someone added you to a course, and you got one for each of the messages that got posted to the talk page of a course you are part of.

Take a look at your Notifications, if you haven't already seen them. The course talk ones are a particularly important feature, as they let people leave messages for every student in the class at once. So if a class of students is making a lot of similar mistakes, an experienced editor can leave a message on the course talk page to point them all in the right direction, without needing to message each student individually.

Assignment 9: profiles
The extension has page that list the profiles of all the online and campus volunteers that have created theirs:
 * Special:OnlineVolunteers
 * Special:CampusVolunteers

Create an OnlineVolunteer or CampusVolunteer profile, by going to one of these pages:
 * Special:OnlineVolunteerProfile
 * Special:CampusVolunteerProfile

These profiles have not been very useful so far, but you may as well know that they exist.

Assignment 10: interface messages
One of the things that users will want to do is to customize the extension to suit their own program. Perhaps they use specific terminology that is different from the default. Perhaps they want to add some instructions to the top of certain pages. Perhaps (as we talked about before) they want to add a default template to every course page.

The default way to customize the interface for an individual wiki is through interface messages, which are pages in the MediaWiki namespace that can override the default text (or insert text when the default is to show nothing). You can see which interface messages appear on any given page (not just within the extension, but anywhere on MediaWiki) by changing the language to "qqx". For example, look at Special:Courses with the extra url parameter "uselang=qqx": https://test2.wikipedia.org/wiki/Special:Courses?uselang=qqx

You can add ?uselang=qqx to the end of a url (or &uselang=qqx in cases where there are other paramters in the url already) to see the interface messages on any give page. Where you see something like "(courses-summary)", that means you could change the text that normally appears by creating (or editing) corresponding MediaWiki: namespace page (like MediaWiki:Courses-summary).

Assignment 11: intro to course page wizard templates
As we talked a bit about already, English Wikipedia uses a collection of templates called the 'course page wizard' to add some additional features to course pages. These things can be implemented on other wikis with only a modest amount of hassle, but they add complexity and potential for confusion (along with the extra features), so in general I would suggest that they only be used if a wiki is actively looking for these kinds of features. In the next set of homework assignments, we'll explore how they work, but for now, the goal is simply to familiarize yourselves with the parts of a typical en.wiki course page that come from the wizard.

Go to this example course on en.wiki: https://en.wikipedia.org/wiki/Education_Program:Example_University/Example_Course_%282014_Q1%29

Note each of these features:
 * The tab-like boxes full of links at the top, with buttons for enrolling in or watching the course, links to help material, and more. (Go ahead and enroll via that button, and also try the "watch" button.)
 * The first section of the content, which is just a one-sentence description of the course. It even has an [edit] link next to the section header.
 * The next large section, the timeline, which has a week-by-week plan (essentially, the sample syllabus) for the entire course. There's another [edit] link at the beginning of that section.
 * The grading section, laying out how the assignment will be graded.
 * Code for adding a banner to article talk pages, to let other editors know that students from this class are working on it.

We'll go into more detail in the next assignments, but the thing to keep in mind is that these things are all done via wikitext templates (ie, it's not part of the extension itself), so any or all of this could be recreated or remixed on any wiki, as long as there's someone who is pretty good with templates available to put it together.

Assignment 12: using the course page wizard
I've now copied the course page wizard over to our testing wiki and put the preloaded course page text in MediaWiki:Course description as English Wikipedia uses. So the next step for each of you is to create a new course using the wizard. Just create a new course for the institution you've already set up, and you'll get a user experience very similar to what people (often newcomers to Wikipedia themselves) get when they try to set up a course page on en.wiki. After you've created the course page, follow the instructions presented by the wizard to add in the various standard elements of your course page. When you've finished, send the link to your new course to everyone.

Now, take a look at your recent Contributions. (Go to Special:Contributions, or click the Contributions link from the Personal Tools at the top right.) The things to note are the names of the pages you created while following the wizard instructions. These are all subpages of the *talk* page of your course.

Assignment 13: under the hood of the wizard
Take a very deep breath, and then look at the course page wizard code: https://test2.wikipedia.org/w/index.php?title=Template:Course_page_2&action=edit

In plain language, here is what this template is doing. (For extra credit, see if you can identify the corresponding template code.)

First, it inserts the "header" template (Template:Course page 2/Header), which has all those boxes of links at the top.

Next, it checks whether there is a talk subpage called "Course description". If so, it inserts the contents of that page (along with some CSS styling). If not, it inserts an instruction template (Template:Course page 2/Course description) with a button to create that talk subpage.

Then if the "Course description" page is already present, it does the same thing for the "Timeline" talk subpage. If the timeline exists, it inserts it into the page. If not, it inserts an instruction template instead.

If the timeline is already there, the next segment does the same thing for the "Grading" talk subpage: it either inserts the existing "Grading" subpage, or it inserts instructions with a button for creating it.

Then it adds a standard section of instructions for marking article talk pages with banners to let other editors know that students are at work.

Now browse the table of components in the template's documentation page: https://test2.wikipedia.org/wiki/Template:Course_page_2/doc#Components

Those are the related instruction templates and preload text used by the wizard. Modifying them will change the user experience for the creation of new wizard-built courses.

The takeaway from all this is that the current wizard system makes it relatively easy for instructors to follow a standard model for building a detailed course page. But it also introduces a lot of complexity and potential for confusion. The benefits of having this kind of structure make it worth it for large programs, where volunteer attention is stretched thin and instructors don't get much 1:1 guidance before they begin. Putting the process on rails like this means that most of the assignments will be closely modeled after the model timeline. For smaller programs, the complexity of implementing, customizing and maintaining the template infrastructure means that it's probably not worth trying to use it.