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."
Moodle has everything you are looking for. http://moodle.org/
Slashdot anagrams to "Sad Sloth"
Squeak is a cross-platform Smalltalk environment that has a lot of features for non-programmers: For example, it is it's own IDE. For another, it's got lots of different drag-and-droppable widget things that can be programmed (graphically, even). In fact, it's mostly designed for education (computer science and otherwise).
"[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz
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.