Abstract: New Opportunities for Teaching and Learning: Extending Learning Management Systems Using Standards

The IMS Learning Tools Interoperability standard is available in Blackboard, Desire2Learn, Sakai, Moodle, and WebCT so a learning tool can be written that integrates into these LMS systems. This presentation will give an overview of IMS LTI, show its use in an LMS and show developer resources for LTI.
IMS LTI gives the teams that support LMS systems on campuses a great deal of new flexibility. Instead of building each new capability inside of the LMS, IMS LTI allows these tools to be developed and hosted outside of the LMS much like a Facebook or OpenSocial application. Also tool vendors will have access to the full range of the LMS marketplace with a single integration making it possible for a tool like Wimba to be used in all of the LMS systems on a campus.
Historically, each of the LMS systems provide their own proprietary extension points (Building Blocks, Moodle Modules, etc). Tool vendors tended to develop custom integrations for only one or two of the LMS systems in the marketplace. The IMS LTI standard allows a tool vendor or tool developer to develop a single integration that will work with most of the LMS systems in the marketplace. The IMS LTI specification was developed over several years with leadership of Blackboard, Pearson Education, Microsoft, Wimba, Learning Objects and many other
At the University of Michigan, this integration has been used to connect a number of tools into the local Sakai instance. IMS LTI was used to integrate a CAPA-based homework and testing system called SAMS into Sakai. Other instructors use a tool called LectureTools which was also integrated into Sakai using IMS Basic LTI. We are working on a project to integrate a video server provided by the Merit Network into Sakai at the University of Michigan and Blackboard at Washtenaw Community College using the IMS LTI standard. Increasingly the University of Michigan can make the best choice to develop a capability inside or outside of Sakai based on the needs of the application or the needs of the user rather than technical limitations of the Sakai system.
As the LMS market matures and LMS systems become enterprise software, there is less and less opportunity to innovate inside of the LMS. This means that experimental approaches to teaching and learning cannot be explored without affecting the reliability of the enterprise LMS. IMS LTI allows the IT staff to meet the needs of teachers to use innovative software without destabilizing the enterprise LMS. In the long run, this allows us to meet both the demand for innovation as well as the demand for high scalability and reliability.

Fun Python Syntax – operator.itemgetter(), sorted(), and lambda functions – Oh MY!

This is perhaps the coolest idiom of Python I have seen yet. Thanks
to Clint for stopping by my office for a Python versus Perl versus PHP smackdown that got me thinking.

This is a great way to sort a list of tuples on the second key:

>>> import operator
>>> a = [ (1,'z'), (2, 'x'), (3, 'y') ]
>>> a.sort(key=operator.itemgetter(1))
>>> a
[(2, 'x'), (3, 'y'), (1, 'z')]
>>>

Pretty clever. The method name could be a bit shorter :)

Here is an operator free version using lamda

>>> a.sort(key=lambda x: x[1])
>>> a
[(2, 'x'), (3, 'y'), (1, 'z')]

And here is one that uses the second entry and the first entry:

>>> a.sort(key=lambda x: (x[1], x[0]) )
>>> a
[(2, 'x'), (3, 'y'), (1, 'z')]

And then the most super-duper fun one of all – sorting a dictionary:

>>> a = { "a": 9, "b" : 8, "c" : 7 }
>>> b = sorted(a.items())   # Sort by key
>>> b
[('a', 9), ('b', 8), ('c', 7)]
>>> >>> c = sorted(a.items(),key=lambda x: x[1])  # By value
>>> c
[('c', 7), ('b', 8), ('a', 9)]
>>> c = sorted(a.items(),key=lambda x: x[1], reverse=True)  # By Value Backwards
>>> c
[('a', 9), ('b', 8), ('c', 7)]
>>> d = sorted(a.items(),key=lambda x: (x[1], x[0]), reverse=True)  # Value then Key
>>> d
[('a', 9), ('b', 8), ('c', 7)]
>>>

Time to go put this in my Python book in Chapter 10 (www.py4inf.com). Too bad it did not make it into version 0.0.2 printed copies – but it will make it into the Chapter 10 lecture slides!

More fun tricks at: http://wiki.python.org/moin/HowTo/Sorting

Abstract: The University As A Cloud: Openness in Education

This is a draft abstract I am proposing for a strategic leadership retreat that I have been invited to participate in – I don’t know if they will like it.
This talk and discussion will consist of three separate but related themes around the vision of strategic opportunities higher education for the next 20 years. The general view is that Universities need to apply the concept of “open” across the whole enterprise. This will result in the boundaries between the university and the world outside of the university becoming increasingly blurry. This move toward a more porous approach across the domain of higher education activity is necessary to maintain the relevance, value, and competitive advantages of institutions as society becomes increasingly open and open is a trait that comes to be “expected”. We will look at opportunities for universities to accentuate their strengths and positive qualities in an era of openness. The specific topics which will be covered include: (1) trends in open technology applied to teaching learning and collaboration, (2) trends in moving toward technology literacy as a core part of the definition of a Liberal Arts education, and (3) trends in content creation and publishing that are beginning to revolutionize how we will create, publish, and curate the intellectual output of higher education. The format of the talk will be a short strategic position paper on each of three topics, a short “lightning talk” about each of the topics and an interactive discussion about each of the three topics.
Comments welcome.

Abstract: The University As A Cloud: Trends in Openness in Education

This is a draft abstract I am proposing for a strategic leadership retreat that I have been invited to participate in – I don’t know if they will like it.
This talk and discussion will consist of three separate but related themes about the vision of strategic opportunities for higher education for the next 20 years. The general view is that Universities need to apply the concept of “open” across their entire enterprise. This will result in the boundaries between the university and the world outside of the university becoming increasingly blurry. The move toward a more porous approach across the domain of higher education activity is necessary to maintain the relevance, value, and competitive advantages of institutions, as society becomes increasingly open and open. It is a trait that becomes “expected”. We will examine opportunities for universities to accentuate their strengths and positive qualities in an era of openness. The specific topics will include: (1) trends in open technology applied to teaching learning and collaboration, (2) trends in moving toward technology literacy as a core part of the definition of a Liberal Arts education, and (3) trends in content creation and publishing that are beginning to revolutionize how we will create, publish, and curate the intellectual output of higher education. The format of the talk will be a short strategic position papers on each of three topics, a short “lightning talk” about each of the topics and an interactive discussion about each of the three topics.
Comments welcome.

Python for Informatics – First Printing

Py4Inf is in print!Well, the first printing of my new book, “Python for Informatics – Exploring Information” has been printed on the Espresso on-demand book printer at the University of Michigan Shapiro library and is available for $10.00 (sorry no mail order at this time).

The book has its first 10 chapters completed and is the required textbook for my SI502 course and an optional textbook for my SI301 course. I will be writing 4-5 new chapters over the next 15 weeks as those two courses need them. The web site for the book with a completely free download of the course materials is www.pythonlearn.com.

I am having a lot of fun with this book because my goal is to have the book relevant to everyone – not just Computer Scientists. For me this is part of my notion of “Informatics as the necessary study of technology for everyone”. Not everyone needs to be a computer scientist – but every educated person needs to understand technology to some degree. So this book will evolve as I teach over the next few semesters to solve this need. At some point it may become a printed book – I am in early discussions with two publishers already about the print copy of the book when it is really finished.
I also will be re-working my self-paced Python web site (www.pythonlearn.com) to feature this book.

I am very grateful to be able to reuse the material from Think Python: How to Think like a Computer Scientist. Allen B. Downey and Jeff Elkner have been very helpful and supportive as I revised their work. Allen has allowed me to switch the copyright to the Creative Commons By Attribution – Share Alike so we have a more modern copyleft copyright that should be very helpful to future remixers who want to use Python for Informatics as base material for whatever they want to create.

Abstract: Reopening Open – What is the Real Meaning of Open?

This is my proposed abstract for an upcoming keynote talk I have planned for May.

It has been over 20 years since the the Gnu Public License (GPL) and Berkeley Software Distribution (BSD) licenses were created. In the beginning, Open Source was a very radical notion and was seen as a way to foment a new social contract around software and later content. In this talk, we look at the motivation and context of the early open licenses and the software development communities that formed as an extension of the activist origins of the Open movement (i.e. the bazaar). We also look at the phase where the notion of Open has moved from radical-far-out to the mainstream as it became clear that these open bazaar-style communities actually had advantages over the more traditional styles of organization. We look at how the concept of “open” has been redefined away from its activist roots so that it can be applied to more traditional and even completely closed-source proprietary solutions. We also look at how the concept of open has moved into content through the Creative Commons and the kinds of new ways of working now that we have a reasonable structure for content reuse and remixing. In addition, we will look forward at the potential problems that “Open” must face going forward and look for a way for us to get back to the roots of open.

GPL: July 1988
http://www.free-soft.org/gpl_history/

BSD: June 1989
http://www.crackmonkey.org/~nick/mail/bsd-license-history-in-a-nutsac

Creative Commons: December 2003
http://wiki.creativecommons.org/History

Why an Open Source Community Should not cede Leadership to a Commercial Entity – MySql/Oracle

Note: If you read this post, you will likely think that I am an Oracle-basher. That is not the case and that is not the purpose of this post. Oracle is a fine company and companies do what companies do. If companies do not do what is in the best interest of shareholders, the management should be fired. My point in this blog post is a concern about how open source communities cede technical leadership to commercial companies and think that in the end the open license will save them.

So for the simple minded – this is not Oracle-bashing – I am trying to point out mistakes that can be made in open source projects. I am not anti-commercial – I am pro-commercial – I just have very strong opinions about how Open Source should be run (see my previous blog post).

Many people think that simply releasing source code under an open license such as Apache or GPL is “good enough” protection to insure that software will always be open. For me, the license has always been a secondary issue – what matters is the health and vitality of the open community (the richness and depth of the bazaar around the software).

We see a perfect example in Oracle’s recent purchase of Sun which ends up with Oracle “owning” the copyright for MySql and the commercial enterprise which holds the MySql developers. One might think that having MySql under the GPL license is sufficient protection that keeps Oracle from going proprietary and commercial with MySql, thus deriving the market of the only real alternative to Oracle (sorry Postgress).

So why then is there hue and cry throughout the land at this and 18,000 people signing a petition against Oracle getting control of MySql:

Thousands sign petition to protect MySQL from Oracle

Why the fuss – “alles uber open” – right? GPL is the license that is supposed to protect us, right?

Wrong.

While GPL is a great license, it has one flaw. While folks other than the copyright owner are not allowed to change the license in the code, and must publish all modifications to the code if the code is redistributed (copyleft), these rules do not apply to the copyright owner. The copyright owner cannot revoke the license retroactively on code that already out there. Those who have an old copy can keep their copies and even modify their copies and create a whole new line of development if they like.

But the copyright owner can fork a copy from the open copy and change the license in the forked copy. And then if that forked copy is seen to be the best copy by the market, folks will use that copy.

So here is my hypothetical doomsday scenario. Oracle gets the copyright to MySql and lets everything settle down a bit so people are lulled into a false sense of security. Then, Oracle subtly forks the code in some next version – say MySql 7.0 and makes a bunch of really sweet changes – like making the SQL syntax completely compatible with Oracle. They give this version away for free including source code – but not under GPL – under some license like the “Oracle Open License”. At that point we are like the frog in the water about to boil – we figure – “That is not so bad” and go along with the changes and even start to use the new features – perhaps without knowing it. They release a few more versions for free – but at some point (perhaps MySql 10g) we only get MySql Express free and the super-duper MySql 10g is only available to folks who have Oracle.

By then we will realize we have been had – but it will be too late – by letting Oracle pick up the tab, we will have lost the ability to form a bazaar around the product. And since all of our software will be using features that are not present in the latest GPL version it will be hard to go back to that version and pick up. By then MySql will be so complex that it will be impossible to build a new bazaar around it fast enough to keep up with innovation. So the bazaar will never be rebuilt and we will happily buy all our produce at the Super Walmart because it is warm and well-lit all the while publicly bemoaning the loss of the farmer’s market.

I should reiterate at this point that I am not bashing Oracle I am trying to explain that open source projects make choices and to make sure to look at *who* is the copyright holder of your open source (particularly GPL source) and think a bit about worst-case scenarios.
So what is the solution to this? Well for MySql – there is little hope for a solution – any sense that there was a real open-source community (i.e. a bazaar) was gone a long time ago – we have been taking GPL code from MySql, Inc for a long time without much thought – they took care of everything and we followed like happy contented livestock (where is this semi truck going?). What we were doing as MySql gained market share is increase the value of the person or organization holding the copyright. We made MySql, Inc. rich when they sold to Sun. That did not feel so bad (frog in the water) but now with the stroke of a pen – Sun is purchased by Oracle and the water is feeling a bit warm.

The solution for this for open source projects is to make sure that they never let the bazaar go away. The bazaar must make the technical and leadership decisions about the product directions. If this is left to “professional staff” or the “open source company”, the volunteer community will go off and find other things to do and then much later realize that the strength of the bazaar has atrophied so badly that they can no longer stand on their own. You should watch the movie Pappillon (1973) and see the scene when he gets out of solitary confinement.

One last point – so far I have talked mostly about GPL licensed software and not Apache licensed software. GPL is distinct in that to take a product proprietary you must buy-out the copyright owner. This can be difficult to do since most folks in Open Source with their names in the copyright have very high integrity. And in other situations copyright is held by a non-profit (a good thing). Apache licensed software is subject to these problems without even buying the copyright from the copyright owner – proprietary forks are allowed and encouraged by Apache. Probably the only problem with GPL in this situation is that folks think it is foolproof and unbreakable and so they worry less about the proprietary fork scenarios thinking that GPL solves everything. When code is licensed Apache, we are always aware of the proprietary fork scenario and think more deeply and regularly about the issue. So when it happens to GPL software – folks are *really* surprised because they thought it could never happen because “GPL is flawless”. I don’t want this to be a GPL versus Apache discussion – my only point is about not losing the non-commercial community around a product regardless of the license in use.

End of rant – and remember this was not Oracle bashing. I have great respect when corporations maximize shareholder value – it is what they do.

Successful open source projects need to make sure to feed and take care of their bazaar – their volunteer technical core for the product. Be very wary of the “get resources quick” or “get results quick” schemes where you cede leadership to something or someone in the cathedral.

Considering Open – Rethinking Cathedral and Bazaar

I was reading an excellent blog post titled “Open isn’t so open anymore” written by George Siemens. George makes points about how quickly things move from “open as activism”, “open as revolution”, and “open as an agent of change” to “sustainable open” and “organized and structured open”.

George’s particular concern is that the Open Educational Resources (OER) movement is moving too quickly from the first phase to the second phase. I agree with George that the time where open movements make the greatest innovations and are at their best at exploring new problem spaces when they are operating with an activist perspective

My favorite quote of George’s article is here:

Richard Stallman has been somewhat replaced by, or even written out of, the open source movement. I’ve [George] stated in the past that I’m concerned about open education suffering the fate of Stallman – marginalized because it [the activist approach] is not palatable at the “power table”.

His article continues to talk about how the words “open”, “free”, “democracy”, “meritocracy”, and others have been used so much to mean different things by folks with different perspectives that the words themselves almost become useless in the debate.

We want to come up with some words and some criteria that we can generally apply and separate the “cathedral” from the “bazaar”.

Those of us who are long-term citizens of the bazaar are always frustrated when members of the cathedral adopt some of the approaches of the bazaar and some of the vernacular of the bazaar and then declare that they are “citizens of the bazaar” and that they have come up with some new combination of cathedral and bazaar that is better than the pure bazaar. Since cathedral and bazaar are the least confused terms in current use, I will use them in my own exploration of what it means to be a “citizen of the bazaar”.

Citizenship in the Bazaar

I will propose a few simple rules for a person or a project to be a “citizen of the bazaar” – if you violate those rules, you can be a citizen of the cathedral with bazaar leanings, a citizen of your own island that you found – you can be anything you want – just not a real citizen of the bazaar. We start with some of the fundamental rules for citizenship. Many non-bazaar people and projects follow these rules – these rules are necessary but not sufficient.

(1) Must release software/content under an open license that allows both commercial and non-commercial participation, remix, forking, and reuse.

(2) Must have open processes – must discuss everything about the project and product in the open. Must have open lists and let any interested party participate in the creative processes. There may be a core set of decision makers and it may take some demonstration of skill and commitment to become part of the core team (i.e. meritocracy). Decisions are made by the core team using open processes and considering all input.

Lots of projects call themselves “open” by following these two rules and figure that is enough to be a citizen of the bazaar. But there a few more difficult rules that leave a number of projects as “bazaar wannabes”. These rules are as follows:

(3) There is no “power table” (terminology taken from George’s post) nor hierarchy structure. In the bazaar, the closest thing we have to structure is King Arthur’s round table. Different people have different skills, and different roles (leadership is one highly valuable roles), and different contributions. But these different roles do not result in “layers” of structure where lower layers “report to” or “are controlled by” the higher layers.

(4) Participants are individual contributors – not institutional representatives. If an institution brings a lot of resources into a bazaar community – it simply makes things better – it does not automatically change the “balance of power” through the number of votes since the “power table” is round. An institution can greatly affect the future direction of a product by bringing resources to bear with a particular perspective. I have seen many situations where individual contributors make decisions considering the long-term best interest of the community over the short-term best interest of their particular institution. This is part of that “open as activist” principle and what you learn is that over time is that the long-term interests of the community and the long-term interests of the institution are the same – even if the management of the institution providing the resources does not (yet) realize it.

(5) There is no “complaint department” – if you are unhappy about something – don’t complain about it – do something about it. A common source of “complaints” is the people who use the software /content but are not part of its creation – the users see the “citizens of the bazaar” as a resource that has created a product that is 98% perfect for them – and as such they expect that by shouting at the software’s creators, once they are properly chastised about the missing 2% will leap into action and address the issues. Cathedral-dwellers are completely habituated to the notion that if you make a big enough fuss – you get your way. Sorry – the bazaar does not operate that way – you want it done – get involved and find a way to help.

(6) There is a culture of “choice” and “volunteerism” – people are citizens of a bazaar community because they want to be there. Even if their entire salary is paid by some organization – they are in the community because they like the community and would do the work for free even if they were not being paid for it. By assuming that everyone is volunteering, it engenders a culture of mutual respect and appreciation. There can be no “orders” or even the slightest bit of “coercion” – people who do something because they “must” do it or being “forced” in any way are not bringing their best energy. The goal is not to assemble a lot of brute force resources – but instead to accept a team of any size as long as their are there because they want to be there.

(7) Bazaar communities are characterized by patience. While these communities are amazingly quick, productive and efficient, they are seldom in a rush to get anything done. The goal is to do it “right” rather than do it “now” – because we all know that the quickest way to get something done is to do it the right way. When you compromise quality to meet a schedule it always takes more resources to fix something after release than to fix it before release. And investing in good structure in the short term makes all future resource investments far more effective. Bazaar communities always are thinking long-term – cathedral-communities (open or otherwise) often place things like schedule and features above the quality of the product.

(8) When some limited structure is needed for sustain a bazaar community great care must be taken to insure that the structure itself does not violate any of the above rules. For example, it is often necessary to create some sort of legal structure (like a Foundation) to gather funds, run conferences, pay for servers, buy beer, whatever. These Foundations often attract the cathedral-types because they look like a higher layer above the citizens of the bazaar and so it looks like a place to bring cathedral approaches into the bazaar community. So how does a bazaar community inoculate itself against the invasion of cathedral thinking? Well one approach is insure that all board members are long-term contributors in the bazaar and as such they *understand* the ways of the bazaar. As an example the Python Software Foundation members must all be Python contributors. This insures that the PSF board will never try to try to assert that the board is “above” the Python community. The Python board understands that its roles is to support the community – not to direct the community.

Summary

Words like “free software”, “open source” and even “open” mean so many things to many people and these definitions have been co-opted to mean whatever folks want them to mean. In essense when a project claims to be “open source” – then only thing you can be sure of is that they release source. A project can claim to be “free software” if they don’t charge for at least one version of their product. A project or product can claim to be “open” if they do not release source code and if they charge for their software – but somehow have a way to be “extended”.

I have given up trying to reclaim the words “open”, “open source”, and “free software”. So instead, I go back to “cathedral” and “bazaar”. And all I try to do is to draw a relatively bright border about what is and is not a genuine bazaar. I feel that there are lots of structures that are valid and correct – but to be a real bazaar, I set a pretty high bar and provide some pretty clear criteria.

The simple summary of the principles of the bazaar are: (1) free software, (2) open software, (3) flat power structure (a round table), (4) contributors are members as individuals, (5) don’t bother to complain – just get to work, (6) everyone treats everyone else as if they are “volunteers”, (7) the project focuses on quality and long-term value not short-term schedules, and (8) when structure is needed it is minimal and does not strive to become a “higher level layer of management”.

I reiterate that these rules do not define “good” and “bad” – they just try to put a sharp set of definitions around the kind of communities that I like to be part of. In the old days we called it “free software” or “open software” – but those terms have been co-opted by cathedral-dwellers – so I retreat to trying to define the word “bazaar”.

There is nothing wrong with being a non-bazaar community – communities exist for the purposes of those that are members and contributors to the communities. I just want folks who structure communities to be conscious about the choices that they are making when they create the structure and norms for community governance. But if you want to make a truly-bazaar community that is like Apache or Python and gain the benefits of a truly-bazaar community, you must follow *all* the rules.

Comments welcome.

IMS Basic LTI Tool Certification (DRAFT)

Day before yesterday I released the Basic LTI LMS certification draft materials. I now have the draft materials for the Basic LTI Tool Provider certification. This certification is a little less locked down because it requires hand checking of tool behavior since all tools are different. This test is a good unit test – it walks the tool through lots of combinations of present and absent parameters. It also sends multiple varieties of role strings and also sends broken launches to allow error testing.
Here is some documentation for the procedure:
http://www.dr-chuck.com/ims/blti-cert/toolcert.htm
Here is a cool video that I made of my Wisdom of Crowds tool passing the certification test:
http://vimeo.com/8500895
Let me know if you have any comments.

IMS Basic LTI LMS Certification (DRAFT)

I promised I would have a first cut at IMS Basic LTI Certification done by the end of the year. I must be slipping because I still have nine hours left before the deadline.
This is draft stuff – I am not the authority on this certification, the IMS LTI Working Group and the IMS Technical Board must approve all of these procedures before they are really a certification. But for now we can play with it and get some feedback into the process and make sure this stuff comes out right.
Here is some documentation for the procedure:
http://www.dr-chuck.com/ims/blti-cert/lmscert.htm
Here is a cool video that I made of Sakai passing the certification test:
http://vimeo.com/8474727
Let me know if you have any comments.