Problem/Motivation

One way to use Skill Compass is to gather resources for courses, such as sets of videos. However, it is not possible to create such ordered lists right now.

Proposed resolution

Add a content type where you can collect ordered lists of learning resources.

Remaining tasks

Gather more information of use cases.
Create a feature that provides a good solution.
Test this solution.
Commit it.

Comments

itangalo’s picture

Priority: Normal » Major
itangalo’s picture

If this feature should be used for classes, then maybe it should be paired with the ability to assess students' skills on topics. In that case, the workflow would be something like this:

* A teacher creates a "class" node, and adds any number of learning resources and any number of topics to it.
* Students use a flag to sign up for the class. (Or maybe it is better to have the teacher sign up students? Or both?)
* On the class page, you get a list of the included topics and the included learning resources – also showing how many have marked the topics/resources as completed (like "4 of 16" or something). You can see how many have signed up for the class, but not the names(?).
* The class owner (teacher) gets an additional tab, showing all the students in the class. Each student is linked to a "student learning overview" page.
* The "student learning overview" page shows all the topics on the course, along with the status of the topics for this student (learned/not yet learned). There are checkboxes for selecting any number of topics and create an assessment for this student and the selected topics. The teacher gets to fill in any extra information to store with the assessment – like grades, free notes or whatever fields the assessment contains.
* Any existing assessments should be linked from the "student learning overview" page as well, so the teacher view and edit them.

* Students get a list of all classes they have signed up for on their user profile pages. Each entry has a link to the class page and also the "student learning overview" page.
* The "student learning overview" page has the same content as the teacher variant, except that students can't add assessments to themselves. And they can also mark topics as learned/not learned directly in the list.

jdwalling’s picture

The above outline is divided into 3 parts: LCMS, Registration, & LMS. (Cross-referenced: *1,*2, etc. )
LCMS: Learning Content Management System
LMS: Learning Management System
SC: Skill Compass

So far, my thinking has been limited to a partial LCMS.

A) LCMS process from Teacher's point of view (POV).
(Teacher is the organizer for a mentored training (MT) class in this scenario)

  1. SC training topics are developed by topic category by everyone.
  2. SC training resources are aggregated, evaluated and related to topics by everyone.
  3. New training resources are queued for topic assignment, rating, etc. by reviewers
  4. *1 Teacher creates class node. (If similar class is available, she clones it.)
  5. Teacher drafts course outline with SC training topics
  6. Teacher matches SC resources to course outline
  7. Teacher adds missing topics and resources to SC database
  8. Teacher finalizes course outline with SC topics and resources
  9. Teacher creates course syllabus with list of SC prerequisites and optional resources (URLs) to prepare students.
  10. Teacher documents class logistics: date, location, registration, etc .
  11. Teacher adds list of teaching asistants with profile links.
  12. At this point, Teacher may work offline to complete class preparation, registration, etc.

B) Registration from Students' POV:

  1. *3 Students can browse courses and see topics, resources, schedules, links to related classes, syllabi, class date and location.
  2. *2 Students can register for classes by Teacher invitation or by open registration with approval (NB: Fee registration is usually done by a server that can process payments. Free registration would be feasible on SC. If fee registration is required, free registration could be used for creating a student roll with a link to a payment processors like PayPal or Eventbrite.)
  3. *3 Registered students can see additional information on class: number/who registered (Problematic if a payment system is used.)

C) LMS from Teacher and Student POVs:

  1. *4 Teacher has separate listing for registered students with additional information about students
  2. *5 The "student learning overview" page (This is an extensive list of features. Need lots of thinking and planning.)
  3. * 6 extention of *5
  4. * 7 extention of *5
  5. * 8 extention of *5

I recommend developing the above SC products in useable stages:
A) LCMS,
B) Non-fee Registration,
C) LMS

itangalo’s picture

This is good stuff.

In general, I want features in SC to be as general and independent as possible, allowing Drupal developers to implement SC in the way they want without assuming a lot of things of how it will be used. For example, I don't want to assume that people will do co-located training. (Some people might want to use courses just as a way of presenting learning resources in a structured way.)

To do this, I'd like to divide the LCMS part into two distinct parts (copying items from above):

A1) Course management

  1. (1) SC training topics are developed by topic category by everyone.
  2. (2) SC training resources are aggregated, evaluated and related to topics by everyone.
  3. (3) New training resources are queued for topic assignment, rating, etc. by reviewers
  4. (5)Teacher drafts course outline with SC training topics
  5. (6) Teacher matches SC resources to course outline
  6. (7) Teacher adds missing topics and resources to SC database
  7. (8) Teacher finalizes course outline with SC topics and resources
  8. (9) Teacher creates course syllabus with list of SC prerequisites and optional resources (URLs) to prepare students.

A2) Class management

  1. (4) Teacher creates class node. (If similar class is available, she clones it.)
  2. (new) Teacher relates the class to a course.
  3. (10) Teacher documents class logistics: date, location, registration, etc .
  4. (11) Teacher adds list of teaching asistants with profile links.
  5. (12) At this point, Teacher may work offline to complete class preparation, registration, etc.

Does this sound like a useful approach? Would A1 be useful without A2 for you?

jdwalling’s picture

Reply to comment #4

Good distinctions were made between Courses and Classes.
I think having just Course management would be useful for mentored training.
Having Class management would be a plus for mentored training.

Between A1) 3 and 4 consider adding
* Teacher may select existing course node, create a new course node, or clone a course node for editing.
(Teachers will recycle courses that are refined. Teachers will want to edit "unrefined" courses. Tweak or clone? There is potential tension between what are improvements and what are unwelcome changes.)

When Class nodes become available:
Teachers will want a way to track classes (LMS), past and future, for lessons learned, and ways to improve contents and methods.

The following nomenclature will be useful for future discussions:
A1) Course management (part of LCMS) <== useful for mentored training
A2) Class management (LCMS/LMS interface) <== useful for mentored training
B) Class registration management (fee or free) <== improves UX, lowers barrier to class entry, and pulls new users into SC.
C) Learning management (LMS) <== useful for a series of classes aimed at a coherent group or for independent students developing their own curriculum.

Bonus: Course/Class Catalog baked into SC
User cases:
* List courses available for topic X
* List classes for topic y in coming year

itangalo’s picture

Great comments, again.

Just to be sure: You are also interested in having these features on skillcompass.org – correct?

jdwalling’s picture

Response to comment #6

Yes. I would like to use a Course Management feature on Skill Compass. I would promote it to my DUG for training members.

Before proceeding with construction, I recommend getting more input from people who are well versed in designing/using Course Management software.

  1. Write up the scope with requirements.
  2. Solicit design input from the Drupal Edu community.
  3. Solicit potential users for input at alpha stage.
jdwalling’s picture

Industry terminology comparison

Nota bene: If more people come into this issue discussion (I hope they will) they will bring new terminology with them. The following will help bridge the lingo gap. I think the terms we used above (A1,A2,B,C,LCMS,LMS) are good for our purpose, but they need to be contextualized with standards when available to avoid confusion from a wider audience.

Open Service Interface Definition: CourseManagement
https://en.wikipedia.org/wiki/CourseManagement_Open_Service_Interface_De...
http://sourceforge.net/project/downloading.php?group_id=69345&filename=O... (PDF)

The CourseManagement Open Service Interface Definition (OSID) is an Open Knowledge Initiative (OKI) specification which supports the creation and management of a course catalog (CourseCatalog). OSIDs are programmatic interfaces which comprise a Service Oriented Architecture for designing and building reusable and interoperable software.

The CourseCatalog is organized into:

  • CanonicalCourses describe general courses of study and exist across academic terms.
  • CourseOfferings describe an offering of a CanonicalCourse during a specific academic term.
  • CourseSections describe a meeting of a CourseOffering including location, scheduling and membership information.

When used in concert, the OSIDs comprise a complete system with each service focused exclusively on a particular area. For example, the roles related to a CourseOffering are defined through the Authorization OSID, course work and materials can be defined in the Repository OSID, and course grades are assigned through the Grading OSID. This factoring of the problem space allows for different implementations of each of these services to be used independently from each other within the same Course Management software package.

Mapping terms from OSID to our previous discussion above (A1 & A2):

  • CononicalCourses => A1) Course Management
  • CourseOffering => no match
  • CourseSections => A2) Class Management
  • See the PDF link above for a hierachical relationship diagram

More definitions and resources:

  1. Open Service Interface Definitions (OSIDs)
  2. Virtual learning environment => Course management system
  3. OKI vendors and adopters

Thoughts:
SC is addressing content as a way to gather and categorize content units according to Drupal topics and potentially any other body of "real world" information. This "real world" approach gives SC an edge. Here is my updated top down POV :
1. Catalog Management (long lived content with regular updates) <== after 2 ? (see Note 2)
2. Course Management (long lived content) <=== next after 7 & 8 ?
3. Class Management (medium lived content, months)
4. Class Section Management (medium lived content, weeks to months)
5. Registration & Enrollment Management (medium to long lived for certification and learning management)
6. Learning Management (students' and teachers' content, frequent updates)
7. Topic Management (SC in beta) (long lived content) (see Note 3)
8. Learning Unit Management (SC in beta) (long and medium lived content)

Notes:
1. At some point we need to organize this long issue discussion into a wiki meta document with contributor participation.
2. The first version of the Catalog would have courses only. A later version would include classes, and class sections.
3. Topic Management and Learning Units are related to SCORM which may provide a future path for data sharing with other systems. See SCORM notes here http://collabedit.com/psv75

itangalo’s picture

I've started to read some of the links above, but realize that I won't be able to take the time necessary to through it all propery in a near future.

I'd like to add a content type called "resource collection", corresponding to the CanonicalCourses in OSID. These resource collections will be learning resources themselves, which means a collection can contain other collections if need be.

I think this could be a useful first step, even if it doesn't take us all the way. Please let me know if you think this might hinder some better stuff later on – but I'd rather get started with something small than try to do the perfect solution the first time.

jdwalling’s picture

If a "resource collection" content type could generate a course outline view, with sub-topics, that would be very useful. Teachers could design courses to match areas of interest and student skill levels. A field for course description would be useful also. Ability to clone a collection would be useful for teachers who want to make several changes to the collection.

Udemy.com might provide some useful tips for designing a basic DIY course construction kit, minus the bells and whistles for branding, etc.

itangalo’s picture

Right!

This is the sketch of resource collections I have right now:

  1. Stored information
    1. Name and description
    2. A list of included learning resources (in order)
    3. A list of topics covered by the resource collection
    4. Maybe a list of prerequisite topics (but this should probably be deduced from the included topics)
    5. The same "completed" flag as used on other learning resources
  2. Display components
    1. List of included resources, to display on the collection page
    2. A page for viewing a resource in the context of a collection
    3. A previous/next block (to display when viewing the resource in the context of a collection)
    4. A block/pane showing which (other) collections contain a viewed resource

Two questions:
* Could you provide some more information on when it would be useful to clone a resource collection?
* Do you think it would make sense to add a content type for "topic collections" as well? In my view, that would be closer to the CanonicalCourses – and then you can make a collection of resources to go with any CanonicalCourse.

jdwalling’s picture

Re #11

New perspective:
a) CononicalCourses => Topic collections (modify/update annually?)
b) CourseOffering => Topic collections + Resource collections (modify/update quarterly?)
c) CourseSections => Class offering by a teacher (deprecate over time?)

Cloning function: b) => c) performed by teacher preparing class offering [this is a slight aberration of the OSID]
Each teacher will want the ability to customize the content and appearance of their class offerings. As a teacher I want to make substitutions and additions to the Resource lists cloned from CourseOffering.

It's important to keep courses (a & b) up-to-date with advances in Drupal and resources. Otherwise they will be abandoned. CouseSections (c) could be considered disposable and not needing updates.

@Itangalo: Does this comply with your thinking so far?

itangalo’s picture

Assigned: Unassigned » itangalo

Thanks again for feedback. Working on this.

itangalo’s picture

I'm sorry that this is taking so long. After one week on other things I'm giving this issue my attention again.

Before this can be implemented, I'll have to find a good way to display a general learning resource (since there will be more than one type available). I'm trying some different approaches, but haven't so far found a satisfying solution.

itangalo’s picture

Dammit, this is difficult.

All types of learning resources have the topics field as well as the three voting fields (correct/clear/entertaining). And a description. Apart from that, Skill Compass shouldn't make any assumptions about the content of the learning resources. The external learning resources have a link to another web page. The resource collection has a number of references to other resources. You could add things like PDF uploads, video embeds, and whatever learning resource types you want. It shouldn't matter.

The difficult thing is this: The resource collection comes with a browsing functionality, so you can go from one listed resource to the next. This is done through a custom Page manager page, which means that this page will need to mimic *all* the possible learning resource pages.

The way I'm approaching this right now is to separate out the shared resource data into a side column (topics + votes), and then let the rest of what's displayed just be the full view mode for the resource. These view modes can be customized per resource type (so they are independent), but they can also be embedded easily in Page manager (so the can be managed in a generic way).

But to make it difficult for myself, the two types of learning resources I have right now both have special needs. The external learning resource is displaying its link field twice: once as a link, and once as an embedded preview. The resource collections have their links rewritten using Views, to link to the custom Page manager page instead of the standard resource page. Both of these mean I can't just use view modes straight off. Until now I have been using Page manager to tailor their pages, but that can't be reused in a generic way. There just isn't any way to tell Page manager to grab learning resource of type X, and display it as X should be displayed.

I have a number of possible alternatives:

Custom templates for the resource types. If each resource type gets its own template, it's possible to add whatever data you need – be it customized links or something else. Downside: I suck at theming, and it would also suck if you had to write your own templates in order to override what's normally done with fields.
Entity Views Attachments. This would allow embedding views as a part of a view mode, which would allow embedding customized links and more. Downside: Extra view loads on resource pages (though these would be cached). Plus an extra module dependency.
Mini panels. With mini panels you could make some kind of template for all resource types, which could then be embedded generically in Page manager. Downside: Unless you make an awfully complex mini panel, it wouldn't really solve the problem of knowing how to display a generic learning resource. Another module dependency.
Display suite. With DS you can tweak the view modes of each learning resource, and it also allows embedding EVA Views in a pretty nice way. Downside: You'd have to export the resource layout along with its information structure, since both gets stored in fields. You'd still need EVA.
Custom-written content panes. You *could* write content panes that more or less custom-writes the output for each resource type. Downside: This is basically an awfully complex mini panel.

Huh. I think I just concluded that I will *need* to have all the necessary resource information included in its view mode. This means that I will need EVA, no matter what.

Let's see how that goes.

itangalo’s picture

Still working on it, but I've run out of time for now. Probably won't be able to work more with this until end of June. :-(

itangalo’s picture

Re-opening this. I hope to close this issue within a week.

itangalo’s picture

Functionality for creating resource collections is now in place. Being uploaded to skillcompass.org in an hour or two, so you can try it out in a live environment.

I hope to add some more useful features for this, like flagging resources as "favourites" and then converting your whole favourite list into a collection. Or something.

itangalo’s picture

There it is!

I will have a closer look at better tools for creating resource collections tomorrow. This will do for today.

itangalo’s picture

Status: Active » Fixed

…and there is functionality for cloning collections as well!

Here are a few videos showing how to use resource collections and skillcompass.org in general: http://www.youtube.com/playlist?list=PL7AD092BE7C563D2B&feature=view_all

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.