Design approaches in technology enhanced learning

One of the more in-depth papers that I’ve recently encountered is a really cool paper on the many things that go into figuring out and improving upon technology-enhanced learning. It’s really a very good discussion not just on learning, but about educational thought in the context of design, technology and the sciences. The paper, Design approaches in technology enhanced learning is available from the arXiv as well as from Telearn. It was written by Yishay Mor (blog) and Niall Winters who seem to be two very intelligent scholars from the London Knowledge Lab (which has some really cool stuff going on).

The entire piece left me feeling really intrigued by the challenges of effectively integrating technology and education. The paper is very well researched and although I can’t articulate it,  I reached the last page of this paper feeling really good. Maybe it had to do with the enlightened view taken by the authors. Their writing is crisp and their outlook seems appropriately upbeat given the richness of the material and subject matter covered in the paper. The document bursts with elegant and thought-provoking stanzas:

Design based research is a methodology for the study of function. Often referred to as design research or design experiments, it is concerned with the design of learning processes, taking account of the involved complexities, multiple levels and contexts of educational settings. The primary aim is to develop domain-specific theories in order to understand the learning process.

Such succulent gems of insight are plentiful in the opening sections as Mor and Winters set the stage for a comprehensive reflection on the essences of design, science and learning. They are realistic about how “The complexity of classroom situations does not lend itself to the procedures of laboratory research” as they ask “To what extent are we driven by a pure quest for knowledge, and to what extent are we committed to influencing educational practice?”.

The paper continues into a very stimulating overview of design patterns and their application in the many areas of education. Though I have always liked the idea of design patterns in software, I have never been so enthralled by a discussion about the essential elements of design patterns. Also, this is the first time that I’ve heard of design patterns being used as a tool for analysis instead of construction and planning:

An important characteristic of a design pattern is that it has three facets: descriptive, normative, and collaborative. It is an analytic form, used to describe design situations and solutions, a meta-design tool, used to highlight key issues and dictate a valuable method of resolving them, and a communicative tool enabling different communities to discuss design issues and solutions.

The esteemed writers are careful to explain their thought processes without letting their comprehensive coverage become tangential. They expertly work in a mentioning of the political agendas of design pattern construction for city planning and network routing protocols to help illustrate their observations of how values influence design.

This paper is awash in fascinating pointers to further exploration and while I fully intend to follow up on some of their citations, something of immediate interest is a link to a very cool site called the Pedagogical Patterns Project which established a repository of educational design patterns. I need more time to explore but what they have seems to be very cool. It’s clear that I’ll refer back to this paper frequently as I strive to better understand the interactions of education and computing.

Tech, higher education and the Indian job market

I read a brief little paper on the train last week about technology in post-high-school education. While four pages (not counting references) is a bit short for such a rich topic, the scope of discussion has been significantly narrowed to the central theme of business. The paper is entitled Impact of IT on Higher Education through Continuing Education and is written by Shajee Mohan of the LBS College of Engineering, though his other notable work seems to be centered around data compression.

Mohan begins with a very logical stance on the dual subjects of technology and education by saying that “Some of the most cost effective and appropriate ways to use computers and modern technologies is to have close contact between the teachers and the taught.”. When I read this and the text before it, I wondered if all I would get would be a concise exposition detailing those business issues in India which dealt with college students. Instead, I got a whirlwind overview of select “reskilling” efforts thought (by Mohan) to be significant in the scope of the paper.

The paper is written in a casual-yet-technical style with a tone and focus that instantly reminded me of Thomas Friedman’s many commentaries on the Indian tech sector. In fact, some of his more entertaining points might just be a tongue-in-cheek salute to the importance of education in a culture commonly associated with outsourcing:

A mixed approach to valuing staff by developing skills, providing interesting and motivating work while recognizing their individual contribution, alongside benefits and perks, will mean that you are an employer that employees don’t want to leave.

If this paper were any longer than it is, I would advise people to move along and skip it in favor of more detailed works. That being said, the topic was narrowed significantly and as such, could be considered to have an reasonably-appropriate length in addition to it’s generally generally-upbeat discourse. In fact, I actually found myself giggling at some of Mohan’s informalities and clear showings of enthusiasm.

Getting philosophical about learning and computers

In what has to be one of the most philosophical CS papers I have ever encountered, a team of researchers from Brazil and Luxembourg have presented a fascinating overview of many issues surrounding the area of computer-based learning. In their paper, Redesigning Computer-Based Learning Environments: Evaluation as Communication, they make reference to everything from psychology to meta-communication and citing a broad yet well-chosen set of authors from Claude Shannon to Gregory Bateson.

Perhaps the most interesting aspect of this paper is it’s writing style. These authors have clearly given the subject a great deal of thought and have not been shy about getting philosophical while expressing their opinions. In fact, these authors have gone out of their way to use their variety of interdisciplinary sources to help illustrate the idea that issues in computer-based learning are never purely technical. One of the first communication models they discuss is the well known psychology concept of the double bind. While the concept isn’t worth explaining here (given the ubiquity of detailed explanations), their relation of the concept to educational evaluation is certainly significant.

Evaluation is also trapped in the double bind. Student and teacher or even the other characters such as colleagues and parents exchange many contradictory stimuli about learning. For example: have critical sense versus accept as truth what is in books, express yourself efficiently versus do not talk, concentrate on homework versus play with friends, etc. These situations are inherent to evaluation in the same sense the double bind is part of communication

The tensions described here are all-too-familiar to students, both past and present. Issues such as the ones mentioned in the paper are very real obstacles that must be overcome in classrooms all over while their complexities are only emphasized further by the still-developing experience of computer-based learning.

…the computer-based learning environment must support and, if possible, amplify the expression and the emergence of contradictory relations. These are essential to the evaluation process, since provocative statements may communicate how teacher and colleagues perceive one’s performance and understanding.

With this in mind, they conclude their discussion by explicitly stating the importance of letting real-world factors influence the design of learning systems. This exceptionally well thought-out piece of technical writing should be required reading for any educator considering the deployment of a computer-based learning system or struggling with the design of an alternative assessment mechanism.

Open Source in Schools

This afternoon I read a really thoughtful paper about Free/Open Source Software in schools published in the Canadian Journal of Learning and Technology. As an aside, the CJLT has a really solid collection of papers and I look forward to paging through them in the coming months. Anyway, this paper, Open Source Software and Schools: New Opportunities and Directions by Gary Hepburn, presents a tasty discussion of the benefits and advantages to using F/OSS in schools.

After a brief overview of the proprietary software model, Hepburn devotes a solid page examining the issues surrounding using proprietary software in schools. He cites the cost of doing business with Microsoft (according to the Microsoft School Agreement), as of Winter 2005 with a school of 400 machines, to be US$7200 for the OS alone and US$19,200 for a complete desktop package. Additionally, he notes that, in general, “…using proprietary software requires a high degree of accountability” on account of license compliance issues and other legal liabilities. Alongside the financial downsides, Hepburn makes a very good point when examining “…school’s complicity in exposing students to commercial products and corporate interests”. The idea of a classroom as a corporate marketing machine is rather unappealing.

While it’s not hard to find literature extolling the virtues of F/OSS, Hepburn does a nice job of emphasizing the potential benefits for schools. One particular point that caught my eye was his comment that “Schools can also burn OSS on to a compact disc and give it to staff or students to take home and do what they wish with it”. Granted, projects like OpenDisc have been leveraging the flexibility of F/OSS licenses for some time now, but I have been toying with the idea of using virtual machines as distributable workspaces. Personally, I find the idea of being able to send a student home with their own system saved on a thumb drive very compelling.

After touching briefly on the subject of Linux, Hepburn goes on to discuss some of the neater software packages from the F/OSS world. In particular, OpenOffice.org gets a shout out though I don’t know if I agree with his insinuation that OO.org requires fewer system resources (specifically hardware) than MS Office. Overall, I do agree with his other major points which support the ideas that the F/OSS community is better equipped to respond to change and correct errors. Moreover, I fully support the idea that more diverse exposure to different types of software will lead to an overall greater computing literacy.

With a healthy sprinkling of Lawrence Lessig quotes and shameless support for F/OSS, this paper is definitely worth a read.

VirtualBox to QEMU

Recently, I had cause to convert a VirtualBox virtual machine to one compatible with QEMU and KVM. A quick search found me multiple methods for converting an image QEMU -> VirtualBox but nothing helping me to go from VirtualBox -> QEMU. After asking on the PLUG mailing list, I got some help and managed to convert it without any issues. In order to do it, you’ll need the vditool tool contained in the virtualbox-ose package available from the Debian repositories. Here’s how I got it working:

  1. vditool COPYDD vbox-image.vdi raw-image.img
  2. qemu-img convert -f raw raw-image.img -O qcow2 qemu-image.qcow

The first step copies the contents of the image (*.vdi is the VirtualBox filesystem image extension) to a raw disk image. Be advised: this file will be the full size of the virtual hard drive. That means that, unlike *.vdi and *.qcow formats, if the virtual disk has a maximum capacity of 8Gb, the raw image will be 8Gb in size regardless of how full the disk is.

Once you have the raw image, run the second step which uses the QEMU disk image manipulation tool, qemu-img, to convert the raw image into the QCOW2 format. The new QEMU image will be much smaller than the raw image was and it can be made smaller by passing qemu-img the -c option to enable transparent compression. However, seeing as how this just uses zlib on each cluster, this might introduce more overhead to I/O than is desired and will most likely degrade your overall VM performance.

One Less Quarter, Another Dollar

Seeing as how classes have been canceled today, it would seem that I have completed the Fall 2007 academic quarter. While this is most certainly something to get excited about, I have a few more obligations until I can walk away. For the next few days, these are my projects:

  1. Finish my thesis proposal. It’s cool and I promise to post the completed copy)
  2. Complete work on my final exam. I have the permission simulator written and it can actually store data. I still need to write test cases and debug the thing though. Additionally, once I have it working, it might be worth seeing how much of it I can refactor and tighten up. Like anyone, my code isn’t always great but it should at least be written well.
  3. Clean up and finish the draft for the current tech report I am working on. Two tech reports in one academic quarter seems like a pretty good pace.
  4. Cook for Shabbos dinner at the home of my beloved, revered and venerated faculty. Her clutch of dedicated students are planning a large dish involving many sautéed vegetables and rice. Perhaps I’ll post our methodologies if it turns out well.
  5. Pack to go home on. I fly home early on Tuesday, 2007-12-11 so I need to have certain items like clothes, my tefillin, chargers for my various media devices, personal grooming equipment (razor, etc), books and assorted other required equipment.

Fun Computing Term: Thunk

Yesterday evening, when pouring through the massive amount of text that is the computing world, I encountered a very fun computing term which is none other than the word “thunk”. Now, after some un-careful research, I have determined that thunk has several, context-dependent meanings. Two of these yield some potentially unique opportunities for daily usage.

First, in those functional languages which are lazily evaluated (Haskell and friends), a thunk is a delayed computation. That is to say that a infinite list (which is actually possible in lazily evaluated languages) is, except for those bits which were used and therefore computed, full of thunk. Similarly, a task or event which has not been completed due to explicitly and artificially induced delays may also be termed a thunk. One might say “This afternoon is designated for finishing tasks and tying up loose ends as my to do lists are full of thunk(s)”. With this in mind, I propose some new, more creative uses of the term. For example, “Let’s thunk X because task Y is more important right now”. Maybe even, “Thunk that, let’s play StarCraft instead!”.

The second usage of the term is more domain-specific than the first. The original usage seems to have originated when IBM and Microsoft determined the way to move between a 16-bit and a 32-bit environment as a way to keep support for older software on then-new windows systems. It would seem that every time an instruction or address reference needed to be translated from 16->32 or 32->16, it was called a thunk. Therefore, to map something from one space to another, may be called “thunking”. This may even be equivalent to something like a mathematical function or a functor in category theory such that a function, f, defines a mapping from A to B, f:A->B. If this is the case, it may even be said that the very usage of thunk outside of it’s original context may be considered a thunked usage of the term!

Happy thunking!

One Man, One Bowl: The Ultimate Heuristic For Dish Management

When living with other human beings, it can become very difficult to make sure everyone takes care of their respective dishes. In fact, while everyone may agree on a strategy and plan, the agreement are generally forgotten or ignored within a few weeks.

At college, I live in a flat with three other geeks. We have all agreed not to let dishes go unwashed for more than 24 hours. With a few minor exceptions, this keeps our kitchen fairly tidy. In fact, it may even be that the messier bits of our kitchen are caused by the food-preparation processes and their byproducts. Still, having visited the kitchens of others, we are constantly reminded of how nice it is to have a clean space.

In fact, our success was pointed out by our friend Fred who came over last week to play some StarCraft. As some of us went to grab our dishes to eat some of the veggie stir fry we had just prepared, Fred pointed out the reason for our continued cleanliness: One man, one bowl.

The inner workings of the system are profound yet elementary. Every person, being a poor college student, has a severley-limited selection of dishes. Therefore, we may assume they will most likely default to using the most versatile dish, which is none other than the common bowl, the most often. As such, there is one bowl per person.

While this may seem insignificant at first, consider the implications. First, everyone is responsible for one piece of dish ware which makes keeping one’s implements clean a much more manageable task. Second, because people need to eat multiple times a day, the dish must be used multiple times a day. In order to use the dish again, it must be washed.

This heuristic is still dependent on personal initiative. The time, T, a dish spends in a non-clean state can be defined by the summation
1m1b-formula
where n is the number of meals per day, m is the duration of the meal, b is the time between the end of the meal and the beginning of the cleaning phase while c is time between the beginning and the beginning of the next meal. This means that if a person puts off washing the bowl until it is needed for the next meal, then the bowl will spend most of it’s time in a non-clean state.

However, even with everyone leaving bowls unwashed until required next, the largest amount of dishes waiting to be washed never exceeds the number of people eating in a 24-hour period.

Shockingly simple, yet startlingly effective.

What I’m Doing This Year

So, in case anyone was wondering what I’ll be doing this year in college, I’m taking this year-long program called Student Originated Software (commonly abbreviated SOS). It has four components which are:

  • Data Structures: A study of the various containers which are used by programs to store and organize information. Examples include arrays, matrices, stacks, hashes and trees. We’ll also be discussing and analyzing the algorithms used to manipulate data as we compare different methods of storage and sorting.
  • Operating Systems: An in-depth look at various components of modern operating systems such as schedulers, processes and threads, memory management and filesystems. We’ll even be hacking some on the Linux kernel!
  • Software Architecture: Not really sure where this thread is going but it seems to be about the organizations of large systems. Should be neat…
  • Project: A personal (individual or group) development project of some sort.

Later on we’ll be doing some algorithmic analysis and having more project time. You can read the official description and visit the SOS website.

Success and Failure in the VM

Well, I set out to test Zimbra and a Desktop environment in conjunction with SELinux, and I had a few surprises along the way. First, it turns out that the open source edition of Zimbra is a giant, self-contained, beast of a product. Try as I did, I was unable to get it to install no matter how many libraries it asked me to install.

The other experiment, the XFCE desktop, did just fine. You can check out a screenshot of me downloading the Zimbra package here. Anyway, I did follow the excellent setup instructions on the Debian wiki and I successfully got the targeted refpolicy installed and working. The result? No real noticeable change. So, my next step will be to install the strict policy and see if things start to break…

UPDATE: Also, I settled on KVM because it can use the VT bit. The performance increase is really cool.

Next Page »