Monthly Archives: January 2010

Abstract: Teaching Informatics to Everyone: The End of Dilbert

People will look at old Dilbert comics in 50 years and will no longer understand why they are funny. The word “nerd” will simply be a “funny arcane word” like the word “flapper”. In this presentation we look past the time where technology was the domain of the elite few and instead technology skills become basic skills that all educated people must posses. We will look at how a completely new set of courses, curricula, books and teaching methods are needed to reach the point where we all possess necessary technology skills. Examples will be drawn from the new undergraduate Informatics program at the University of Michigan as well as the graduate programs in the School of Information.
The presentation will be a very out-of-the box look at how we need to take technology and move it into the mainstream so we need to revise the old saying to be “reading, writing, and technology”. The examples and topics covered will range from the practical and pragmatic design of real courses, books and curricula to the more fanciful imaginary long-term transformation in education that I feel must and will take place over the next 50 years. It should be interesting.
I submitted this abstract to the Merlot/Moodle Moot conference in July.

Abstract: Building Real Teaching Tools for any LMS Using IMS Basic LTI

This presentation will cover IMS Basic Learning Tools Interoperability and show how a tool or element of content which supports IMS Basic LTI can be quickly and easily integrated into Sakai, Moodle, BlackBoard, WebCT or Desire2Learn.

IMS Basic LTI provides the unprecedented ability to plug the same tool into Sakai, Moodle, BlackBoard, WebCT or Desire2Learn. IMS Basic Tools Interoperability tools can be written in any languages and hosted nearly anywhere on the web. Since an IMS Basic LTI Tool is so easy to write and integrate a new tool into an LMS, it makes a whole new category of learning centers tools to be developed by teachers and local instructional staff. This presentation will provide an overview of IMS Basic Learning Tools Interoperability and how it can be used.

Board Thoughts: Thinking About an Umbrella Organization

This is the first in a series of posts where I contemplate Sakai Strategic stuff – after all I am a Sakai Board member for the next few years. I think that it is incumbent on board members to gather input from the community and share ideas being discussed at the board level (subject to privacy needs) with the community.
This is a message I wrote back in December during a discussion on the management list of whether Sakai should become part of an umbrella organization or become an umbrella organization itself – all brainstorming stuff – no real plans here – just thinking strategically.
December 14, 2009
I think that it is an oversimplification to assume that we need some number of umbrella organizations similar to the list Brad includes in his blog post:
– Teaching and Research: Sakai
– Administrative Systems: Kuali
– Infrastructure: JASIG
– Scholarly Repositories/Libraries: ??

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.