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.

Wait, is static typing good or bad?

Though I haven’t taken that much time to learn about type systems, I have read up a little bit. I devoured Chris Smith’s essay on What To Know Before Debating Type Systems and briefly tinkered around with a typed lambda calculus before trying to really get into some of the heavier stuff that my program covered in a seminar earlier this year. All of this, combined with my personal experiences using dynamically and statically typed languages, gave me just enough of a background to get by when learning or comparing various programming languages.

While I favor dynamically-typed languages (like Lisp, Ruby and Python) as a matter of personal preference, I have tremendous respect for statically-typed languages (like C and Java). In my humble opinion, some of the most interesting languages are those which allow one to switch between the paradigms as need or desire dictates. Take for example, Haskell’s type annotations or Common Lisp’s type specifiers (particularly declare). The former allows one to annotate Haskell function definitions with type information to enforce type constraints while the latter can be used to turn off Lisp’s dynamic typing system when trying to do something special like optimize certain functions.

After I discovered all of this and determined that I think it’s pretty neat but not something I have the time to pursue right now, my interest has been rekindled by a recently delivered presentation entitled Types Considered Harmful. Perhaps it’s also time for me to re-read another famous type-system paper, Java is not type-safe.

Don’t forget your white bible

I’ve been doing a fair amount of hacking in C recently thanks to some very interesting class assignments. As my C skills had been virtually non-existent before being forced to use it this year, I can honestly say that my appreciation for the language is improving. While I can’t yet say that I’m so competent, I am becoming increasingly comfortable with my ability to use some of the more powerful features like pointers and addressing. This was finally my chance to brush of my copy of K&R’s The C Programming Language (2nd edition covers ANSI C) which I had purchased in high school when C seemed like a good thing to learn in between Lisp and Python (speaking of which, I still miss the language features of higher-level languages). Regardless, anyone learning to learn C should still turn to the oldie-but-goodie and buy a copy to keep on the desk. For those who do purchase it, look at the copyright page and notice that the book was actually formatted and written with troff.

Prettier GUIs thanks to separators

I read a very interesting essay on OSnews regarding the improvement of GUI layout with separators and containers. Essentially, the whole premise is that visual elements in most interfaces are needlessly cluttered and it is precisely this congestion which decreases the usability and aesthetic appeal of applications. In response to this problem, the author demonstrates how good layout conventions employing containers and separators can improve visual definition and arrangement. He goes on to elaborate on the potential benefits of using open standards like XML and SVG to aid in GUI creation and puts a considerable amount of emphasis on inheritance among GUI components.

Now, while the examples in the essay are extremely enlightening, I still feel that certain, poorly-thought-out interfaces are beyond help. At the very least, it made me think twice about the importance of the margin and padding properties in CSS while giving me a whole new outlook on the apps I use every day.

(Processing - Java) + JavaScript = Wonderous!

I’ve messed about with Processing a couple of years ago but haven’t done much with it since. I saw this post from Lambda the Ultimate detailing how the gentleman behind the jQuery JavaScript toolkit ported almost all of Processing from Java to JavaScript. Now, the whole thing will run directly in your browser thanks to the canvas element. The demos (ported from the original Processing examples page) are very impressive.

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.

Start Eating the Paste

Anyone who frequents programming-related IRC channels will already have an appreciation for online pastebins, originally termed nopastes. For those who might be unfamiliar the basic idea is that pastebins provide a quick and convenient way to display text on the web and share it with others. The canonical usage of a pastebin is a situation where an individual must share a snippet of source code with other programmers to illustrate a concept or seek advice. The most famous of pastebins:

Most interesting is the recent increase in pastebin spam. The open nature of pastebins make them ripe for abuse by spammers and that has led to numerous discussions of the problem and use of CAPTCHAs to try and combat the issue. I had no idea this was even an issue though it makes a lot of sense now that I think about it…

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.

A Paper on Self Organization in Wikipedia

I just finished reading a fascinating paper on the topic of self organization in Wikipedia. These Dutch researchers put together a very entertaining read for the 2006 WikiSym workshop on Research in Wikipedia where they analyzed the Dutch Wikipedia, as it was in 2005, looking for signs of self organization.

One of the most interesting things that the researchers measured was the degree of article connectedness. They modeled the entire Dutch Wikipedia as a giant graph with each article being a node while measuring the number of articles linking to it (indegree) and a the number of articles it links to (outdegree). The indegree and the outdegree are combined to give you the article’s total degree. In order to classify articles based on degree, the research team coined terminology to describe connectedness. Articles were designated as a guru authority, all-around authority, referring authority or a regular node. For details on the results, you  really must see the paper.

It’s really fascinating to realize that a lack of top-down control can lead to an effective working team. Even more impressive is the sheer scale of Wikipedia’s accomplishments. With 2.3+ million articles in the English Wikipedia, it’s become quite apparent that the community at large is most certainly capable of producing effectively. The specifics of this are made clear by the paper’s discussion of author expertise. Most informative are the histogram plots detailing authoring and edit patterns.

Of course now, after reading this paper, I have a strong desire to download a text dump of the English Wikipedia and crawl it to determine connectedness. Granted I could certainly find a computer capable of holding the the full dump (~3.8 Gb compressed XML) but it would most likely take an eternity to crawl the document Moreover, the resulting data would be particularly unwieldy even if stored in a decent database. Perhaps someday…

Free, Legal TV on the Web

Want to see the latest episode of your favorite TV show? Did you miss it on TV and don’t have a DVR (like TiVo)? Don’t want to watch grainy and partial clips on YouTube or pick it up from some other illicit means? Starting this week, you’re in luck!

A new joint venture of FOX and NBC has all of your favorite programming online, in decent resolution for free. You can watch what you want, when you want and you don’t need to subscribe for an on-demand service only to be even more tied to your television set. Hulu has stuff from NBC and FOX channels like SciFi, Bravo, FX and others. It even offers a bunch of full-length movies that you can watch at your leisure. Best yet: it also seems to be presented with limited commercial interruption through episode sponsorship. I’m watching the latest episode of House as I write this. Go to Hulu.com and check it out for yourself.

My real criticisms are that the Flash player is rather heavy and can slow down easily, thus skipping frames. Also, the resolution is decent but doesn’t scale well so avoid the full screen player. That being said, there is, supposedly, an HD gallery but I haven’t poked around in it yet.

« Previous PageNext Page »