Wednesday, 13 March 2013

Connecting Mobile Learning To The Cloud

Connecting Mobile Learning To The Cloud

In 2009 the University of Wisconsin-Extension's Academic Advanced Distributed Learning Co-Laboratory (AADLC) signed a partnership agreement with the Florida Virtual School (FLVS) to create an iPhone iOS application1.. The app, Revu4u (Review for You), is designed to help students prepare for Advanced Placement (AP) tests, which enable high-school students to acquire college credit in various subjects.
Revu4u is a free app that allows students to download question "packs" covering different AP content areas. The app includes one free question pack (algebra) and question packs in other subjects are available for purchase. Once a pack of questions has been purchased and downloaded, students can practice for AP tests using their iPhone. Students also have the option to participate in a leaderboard ranking system to see how they compare to others in the same content areas.
Revu4u was designed as a test bed for instructional apps that combine mobile technology and distributed or "cloud" computing. There were three key elements to the project: A native iOS app, a question pack authoring tool, and a cloud-hosted database. This article focuses on the project's cloud database component (Amazon SimpleDB). The following sections describe the rationale for choosing Amazon SimpleDB and associated challenges that had to be overcome to create a successful software system.
Several project needs led AADLC developers to select Amazon SimpleDB as the Revu4u database solution. Based on the structure of the Apple App Store at the time of development, the default option was to create all question pack content in the iOS application itself. However that approach created problems for maintaining control of content. FLVS holds license agreements with several content providers. Some of these agreements require FLVS to maintain control over content when delivered to students. For most Web courses, this control is easily handled by using databases on FLVS servers. There were concerns about allowing content to be embedded in the application because the only way to make changes or revoke access to specific content pieces was to reprogram the application. Storing the content in a separate database under FLVS control eased ownership concerns and allowed updating of individual question packs. An added benefit of using a separate storage platform was that the content could be made available to other mobile operating systems in the future.
There are many ways to store digital content using traditional databases. FLVS has an extensive data center to support its online courses but the team had no idea what scale would be needed to support a fledgling application. Investing in significant server hardware for an experimental application would make the project untenable. When an application is released through the Apple App Store, however, there is no way to limit the number of downloads. At the time Revu4u was in development in 2009, the App Store ecology was relatively sparse with fewer than 35,000 apps available for download [1]. Given the potential market of 14 million Apple iOs devices at that time [2] and the relatively small number of apps available, success posed its own risk.
Developers at the AADLC were already experimenting with Amazon's Web Services for other projects. Some testing indicated it was possible to store content using Amazon's SimpleDB and deliver the content into an Apple iOS application. Amazon only charges for usage and storage so there were no upfront costs to test a solution that could scale to millions of users. If there were only a few downloads, then the cost would literally be pennies[3].
One final requirement was that the data storage solution could eventually be replicated on servers behind a firewall. An open source software project called NSimpleDB replicates the Amazon SimpleDB data model. Using this solution, AADLC developers could create an independent version of the Revu4u storage solution if it was ever needed [4].
While Amazon SimpleDB met the project requirements, there were some initial issues to overcome. Three key challenges included learning how to use a schema-less database, working with file size limitations, and connecting Amazon SimpleDB to Revu4u through the Apple App Store. The following sections provide a description of design decisions in response to these hurdles.
Working from nothing: First use of a schema-less database.Anyone familiar with database development is aware relational databases are usually structured through a schema, which is to say a set of rules to ensure accuracy and consistency in the data expressed through a series of formulas. Amazon SimpleDB is a "schema-less" database. This makes the system more versatile overall, but poses a fundamental challenge for those accustomed to working with a schema as it forces rethinking almost everything about the way content is stored and retrieved.
Amazon SimpleDB was just moving out of beta testing and into wide distribution at the time AADLC began developing Revu4u. While there were a few scattered news stories and blog posts on this new data service[5, 6], a lack of concrete examples meant that AADLC developers had to create a conceptual map as a starting point. The lead AADLC software engineer developed a concept map of Amazon SimpleDB based on his existing knowledge of relational databases. While the more traditional elements of a relational database are absent in Amazon SimpleDB (e.g. tables, rows, columns), he worked to establish which native functions could at least approximate these components.
Amazon uses the concept of "domains" to denote storage areas. While there are some significant differences between domains and tables in traditional databases, it is a close conceptual match. Within a domain, an Amazon SimpleDB "item" could approximate a row, and an "item attribute" could be thought of as a column. While the differences between each of these functions in Amazon SimpleDB and their counterparts in a typical database are technically more substantial than this analogy suggests, this conceptual mapping gave AADLC developers a way to organize our approach to the project.
File size limitations. Amazon's Web Services site now touts the use of Amazon SimpleDB to support iOS applications [7]. However at the time this project was in development, the concept was still new. One challenge was to determine how to format the question packs so they could be downloaded and used in the iOS mobile application. This formatting had to take into account the size limitations imposed by Amazon SimpleDB.
The question content FLVS sent to the AADLC was already in XML files. Each XML file contained a question stem, answer choices, and feedback. Breaking this file apart into component parts was possible but that would have meant more complexity in rendering the content on the iPhone. The team therefore decided to keep all parts of the question as a single file. Mapping this structure back to Amazon SimpleDB was more challenging than originally envisioned because keeping the question together meant a larger file size. The Amazon Simple DB "item attribute" was used to store the content elements. Item attributes, however, are limited in size to only 1024 bytes. Some questions contained more than 1024 bytes of information. The solution required a workaround of breaking each question into a chunk no bigger than 1024 bytes. An additional attribute was added to identify each question part so they could be reassembled when downloaded to the iPhone app. Breaking a question into chunks based on size rather than component parts of the question (i.e. stem, answers, feedback), made reassembly far easier for the iPhone app.
Even this item attribute workaround faced limitations when dealing with extremely large questions. While item attributes are limited to 1024 bytes, each item is limited to 256 attributes. Questions containing images, for example, quickly exceeded 256*1024 bytes. The lead software engineer at the AADLC developed an additional workaround that allowed a question to span across items. Each item name was appended with a value that showed that they were part of the same question. The iPhone app 
Connecting cloud to mobile. The last challenge was to make a connection from Amazon Simple DB through the Apple App Store so question packs could be downloaded to Revu4u. When the project began, Apple did not allow any in-app purchasing and the team spent considerable time figuring out how to get separate question packages into the app. About halfway through the effort, Apple changed this policy and the ability to make purchases inside the app was permitted. This policy change allowed the team to focus on the mechanics of moving the data rather than trying to develop a workaround.
Each question pack was given an Amazon SimpleDB key mapped to a purchasing code in the Apple App Store. When users select a new question pack for download on their iPhone, the App store manages the financial transaction and then requests the appropriate XML files for that question pack from Amazon SimpleDB. The question pack, in the form of raw data, is then downloaded to the user's iPhone. Revu4u parses the raw question data, presents it in a human-readable format, and handles scoring and feedback
Apple approved Revu4u in April 2010. While the number of Revu4u downloads peaked in the hundreds (about 600 per month) and not in the millions, the database cost for that peak month was less than $2 (USD). Amazon SimpleDB was instrumental in allowing the project to be financially and technically feasible. Revu4u is still available for iOS devices through the Apple App Store.
Next Steps
Revu4u is a simple multiple-choice test preparation app with limited data requirements. The Academic ADL Co-Lab is now working on a more robust system, which will push this mobile and cloud approach in new directions. Funded under a "Broad Agency Announcement" research contract with the U.S. Department of Defense, MASLO (Mobile Access to Supplementary Learning Objects) is an open source development project that will be available in early summer 2012. MASLO will continue to support multiple-choice questions but will also allow other forms of supplemental instructional content

Tuesday, 26 February 2013

Microsoft’s C# programming language gains top billing as best language for 2012, according to a new ranking of programming languages.

Microsoft's C# programming language earned the rank of the No. 1 programming language of 2012,  the PYPL PopularitY of Programming Language index revealed.
According to the PYPL index, C# had the biggest growth in 2012, rising more than 2.3 percent, by far the biggest growth of any language over the past year, surpassing Java, PHP and C++.
Moreover, while the popular TIOBE Index looks at Objective-C as a language of the year candidate, the PYPL index goes with C#.
"The TIOBE Programming Community Index has it wrong: C# is the language of the year, not Objective-C," said a post on the PYPL Web page. "Indeed, according to the PYPL index, C# had the biggest growth in popularity this year: +2.3%. Over a five-year period, Python is the language whose popularity is growing the fastest; it is already the second most popular in the U.S."
The PYPL index is based on data from Google Trends, which measures search volume, and the results are based on the relative number of searches for programming tutorials in the given language. The PYPL index is created by analyzing how often language tutorials are searched on Google—the more a specific language tutorial is searched, the more popular the language is assumed to be. It is a leading indicator. And as the raw data comes from Google Trends, anyone can verify it, or make the analysis for their own country.
Also, according to the PYPL index, Java and JavaScript are fairly stable, the growth of C# comes at the expense of C and Basic, and the growth of Python is at the expense of Perl.
In December, TIOBE reported that Objective-C was on its way to repeat as its "language of the year." According to a statement on the TIOBE Website at the time, "There is only 1 month left before TIOBE will announce the programming language of the year 2012. Objective-C continues to rise. Other mobile phone application languages such as C, C++ and Java are rising, too, but not fast enough to compete seriously with Objective-C. In fact it seems that if you are not in the mobile phone market you are losing ground."
At the same time in December, Xamarin announced Xamarin.Mac, a new tool that enables developers to use C# to build self-contained Mac OS X apps suitable for publication in the Mac App Store. With the release of Xamarin.Mac, it is now possible to build apps in C# for more than 2.2 billion devices worldwide, comprising 1.2 billion Windows devices and, using Xamarin, 1 billionAndroid, iOS, and Mac devices.
For December, Objective-C, which is commonly used to build iOS and Mac OS apps, ranked No. 3 and C# ranked No. 5 on the TIOBE Index of the most popular programming languages. C was ranked first, Java second and C++ fourth in that list. For January 2012, the PYPL index ranked Java No. 1, PHP second, C# and C++ tied for third, and the C language was next at fifth.
Meanwhile, in a Jan. 2 blog post, Nat Friedman, CEO of Xamarin, listed several reasons why he believes C# is the best language for mobile development. "What accounts for the growth of C# in 2012?" Friedman asked. "Well, the launch of Windows 8 has probably played a role—C# remains the dominant language of third-party application development on Windows devices." He then went on to list eight reasons why C# is good for mobile development, including its reliability, ease of adoption, fast execution and portability, among others.

Friday, 8 February 2013

How Indian companies can change the future of research

Collaboration between companies and campuses has been cemented under the National Functional Knowledge Hub project. And L&T heads the first knowledge hub that has come up in the country — in Mumbai. Five engineering colleges and six companies in the capital goods sector have come together to ensure that students get to work at the companies and gain hands-on experience.

The students can walk into the companies situated around their colleges to work on cutting-edge research in areas such as product design and also interact with the industry so that they get a sense of the kind of domain expertise they need to achieve. "As things stand, there is a huge disconnect between the needs of the industry and the syllabus and the only way out is for the students to get a feel of the real world," says M Ananda krishnan, governor of IIT-Kanpur board, who was associated with the knowledge hub project during its early days.

The Federation of Indian Chambers of Commerce and Industry (Ficci) started the knowledge hub programme and has planned five such regional hubs in the country to facilitate industry-academia linkages. "These programmes help the institutions to expose their students to the cutting-edge demands of their industry. It also helps companies find solutions through the research work done at these campuses," says Shobha Mishra Ghosh, head of education at Ficci.

SOS to Private Sector

Although IITs and a few top-notch institutions exist in India, many of the new colleges that have come up in the past 20 years lack necessary infrastructure. At the same time, research bodies too have lost touch with the needs of the country and the industry and cater to a programme that runs on churning out PhDs instead of working on innovations. The absence of a dependable and equipped higher education system in the country and a bureaucratic scientific tradition has thrown up a massive casualty: research.

Companies such as L&T, NIIT and Intel have realised that they cannot rely on the university system alone in India to supply engineers who are ready for the real world and have started collaborating with premier institutions in the country. This is why the corporate sector has begun to take an interest in education and research.

Apart from companies, the government also appears to be convinced that the private sector can play a huge role in research. This is the reason why, after having extended invitations under the public private partnership (PPP) route to the industry to collaborate on building roads, airports, railways and water, the government sees a huge role for the private sector in research and development (R&D) as well. The new science, technology and innovation policy, released by the prime minister, Manmohan Singh, earlier this month, is a reflection of this thought.

The new policy seeks to give room to the private sector to set up research facilities and to fund research on a 1:1 basis. As of now government bodies spend two-thirds of the total expenditure on research. The policy also states that the government would follow up with incentives for companies who want to get into research.