Suggestions for Scriptable CAI Apps?
Corvus9 asks: "I am involved with a University project for creating a Computer-Assisted Instruction application. Currently, we have teachers writing the content and CS students working on the application, which is currently being developed in Flash. However, we would like to make something that would allow teachers and non-CS students to create their own applications. Can Slashdot readers suggest some kind of authoring system that would satisfy this? Commercial and open-source applications are acceptable."
"For this to be usable by teachers, we need to provide higher-level constructs like 'multiple-choice test' or 'kinematic model' as base objects, and a scripting model usable by non-computer people whose native language is not English.
I have been searching for an embeddable scripting language to use, and have found nothing satisfactory. Some of the requirements for the scripting language are:
1. Understandable to non-programmers. Our target audience is intelligent professionals who have neither the time nor interest in learning a computer language. Concepts like function calls are very advanced for our users, and things like inheritance or threading are totally beyond them. We need something where a humanities student can look at a script and at least have some idea what it is trying to do.
2. Usable by non-English speakers. Some of our target audience are native French and Spanish speakers. This means that we need to avoid English-language keywords and avoid culture-specific punctuation. For example, in French the decimal separator is a comma, not a period so we must allow users to type in real numbers with either decimal separator, without ambiguity. Also, some ASCII characters like '#', '\', and '{}' are not available on all our user's keyboards. We could allow a 'skinnable UI' that switches between languages, but a French script must be executable on an English document.
3. Extendable. The initial concept is to provide a number of complex scripts like 'multiple-choice test' and allow the end user to customize it. This means that the application must provide some kind of IDE, or integrate with one available for Windows.
4. Create stand-alone courseware. All authoring will be done on Windows PCs, but the created courseware should be executable on Windows and Linux. Mac OS X support would be helpful as well. Flash-compatible output would be preferred."
I have been searching for an embeddable scripting language to use, and have found nothing satisfactory. Some of the requirements for the scripting language are:
1. Understandable to non-programmers. Our target audience is intelligent professionals who have neither the time nor interest in learning a computer language. Concepts like function calls are very advanced for our users, and things like inheritance or threading are totally beyond them. We need something where a humanities student can look at a script and at least have some idea what it is trying to do.
2. Usable by non-English speakers. Some of our target audience are native French and Spanish speakers. This means that we need to avoid English-language keywords and avoid culture-specific punctuation. For example, in French the decimal separator is a comma, not a period so we must allow users to type in real numbers with either decimal separator, without ambiguity. Also, some ASCII characters like '#', '\', and '{}' are not available on all our user's keyboards. We could allow a 'skinnable UI' that switches between languages, but a French script must be executable on an English document.
3. Extendable. The initial concept is to provide a number of complex scripts like 'multiple-choice test' and allow the end user to customize it. This means that the application must provide some kind of IDE, or integrate with one available for Windows.
4. Create stand-alone courseware. All authoring will be done on Windows PCs, but the created courseware should be executable on Windows and Linux. Mac OS X support would be helpful as well. Flash-compatible output would be preferred."
However, we would like to make something that would allow teachers and non-CS students to create their own applications. Can Slashdot readers suggest some kind of authoring system that would satisfy this?
No. There have been billions of research dollars and millions of man-hours spent on trying to develop methods whereby non-programmers can become programmers. While some of them have had application-specific uses, not a single one has suceeded. Anyone who tells you otherwise is lying.
The key is that, it's not that hard to program. With a little bit of instruction, just about anyone can be taught to change the oil in their car. The same is true of programming. Many of the home computers purchased in the 80's were bought so that the users could develop straightforward programs in BASIC. If hundreds of thousands of owners could accomplish that back then, why can't they accomplish it today?
The answer is that they can. Anyone can still be taught to program. The problem that you're facing, however, is that the average program complexity has increased considerably. Which means that your average program is no longer like changing the oil, but is more like rebuilding a carburator. Still something that can be taught, but an order of maganitude more complex.
At the end of the day, what you need is a custom configuration file or scripting language that is targetted with the project-at-hand in mind. That way you can simplify it down to only the components that absolutely NEED to be exposed to the users. But consider this route carefully! You need to analyze how much the teachers really need to be doing this, and decide if the time you will save them significantly outweighs the amount of time it would take for you to just do the work yourself. Otherwise you're just wasting valuable project time that could be spent elsewhere.
Good luck!
Javascript + Nintendo DSi = DSiCade
Wow, got a bit of an anger issue with academia do ya? Give the guy a break, he was given a task and he turned to a self professed community of ubergeeks to see if they had an answer.
Reading through some of the early responses it looks like they gave him at least one path to follow with moodle which looks like a pretty nice solution. I do feel that he threw out a bit of unintentional flame bait when he stated that they wanted a tool that would allow non-programmers to program when what it seems like he meant was he wanted a system where the users could add their own content without involving programmers.
For an alternative solution he might also want to take a look at http://ocw.mit.edu/index.html which is a solution heavily grounded in a commercial product by ab initio, after all, if it's good enough for MIT it might just fit his needs for flexability and scalability. Not only that, but I believe (and I could very well be mistaken) that OCW itself is available in an open source license format.
Generally, non-programmers have little or no idea what they would do with a full programming language. You give them something much, much smaller, based on what they want to do.
For instance, you could allow them to create multiple choice tests, even somewhat complex ones which allow more than one answer to be correct, or only certain combinations to be correct, and still shield them completely from having to write the code that drives multiple choice tests. Sure, if they want to do something else, like an online part multi-choice and part essay exam, the multi-choice graded by computer and the essay mailed to a teacher, they'll have to come back to a programmer, but it's far better than bothering the programmer with every single multi-choice review/test they want to set up.
I, for one, am skeptical that they are even thinking along those lines, and will be disappointed when they either have to write far too much code, end up with something far too limiting, or discover that they'll just end up teaching professors to program anyway. Why? Simple: They chose Flash.
A group which choses Flash as a basis for "Application" development understands neither Flash nor Applications particularly well. If I was on this project, I'd jump ship, no matter what it took. A grade hit, a solo project, whatever.
Don't thank God, thank a doctor!