Friday, November 16, 2012

Criticism's of Agile Development by Dennis et al

In their book "Systems Analysis and Design with UML" 4th Edition, Dennis et al discuss Agile Development, and mention the following criticisms:
  1. Today's business environment, where much of the actual information systems development is offshored, outsourced, and/or subcontracted does not fit well with agile development methodologies requiring co-location of the development team
  2. If agile development is not carefully managed, and by definition it is not, the development process can devolve into a prototyping approach that essentially becomes a “programmers gone wild” environment where programmers attempt to hack together solutions
  3. A lack of actual documentation created during the development of the software, raises issues regarding the auditability of the systems being created. Without sufficient documentation, neither the system nor the systems-development process can be assured.
  4. It is unclear whether agile approaches can deliver large mission-critical systems
My immediate reaction to point 1 is "Google Hangouts", "Skype Screenshare" etc.  It seems to me that one can work almost side by side with other people around the world now.  Regarding point 2, I think this is a danger for all software projects.  I don't know that I agree that agile methods are not carefully managed.  It would seem to me that careful management is an orthogonal issue to agile development.  You can have a large waterfall development process that is not carefully managed, and ends up generating reams of useless documentation, and you can have a carefully managed agile project that keeps the developers talking to the customers, and any documentation generated carefully in step with needs and software alike.  

Regarding point 3 agile methodologies emphasize working software over documentation, but that doesn't mean there should be no documentation.  Dennis et al appear to be arguing that some critical mass of documentation is required in order to perform an audit, and assure the system and systems-development process. I don't see why this should be the case.  Surely an audit can be performed on a working system as well as on documentation.  Futhermore, isn't the bigger danger that one has lots of documentation that is unrelated the actual system or indeed the actual needs of the users.  In this case what does the documentation help us assure in terms of the system or systems development process.

Regarding point 4 this seems like a open question.  One might well argue that large payroll systems, or systems like the mars rover must be developed much more carefully than a social media app for a mobile device, but in all cases if the resulting system fails to meet user needs then there are no winners. Personally. I am skeptical that the big design up front waterfall model necessarily produces good results on large mission-critical systems.

To be fair, Dennis et al go on to say:
Even with these criticisms, given the potential for agile approaches to address the application backlog and to provide timely solutions to many business problems, agile approaches should be considered in some circumstances.
So all credit to them for including the agile ideas in their systems analysis textbook.

Monday, November 12, 2012

Tom Gammarino's Free Writing Challenge

So as part of my game programming course, guest imagineer Tom Gammarino challenged my students to a 10 minute free writing challenge, where they write on any topic for 10 minutes without stopping, and I thought it important to take the challenge myself.  My ten minutes of writing without stopping became 15mins and I include it below.  I had planned to do something more narrative based, but it became more about some thoughts about games I am wondering about being able to create.  Either way it was fun to force writing like this - I wonder if I could do it for longer - I always remember that author who thought he was going to die (Anthony Burgess?) who tried to write all his remaining novels in a year and then didn't die and just carried on writing at some ridiculously prolific rate - anyway, want to try this again and force myself into some more narrative thing where I am describing something that is happening to some set of characters ...

There was a young man from nantucket, I like limericks and IO'd like to implement a computer system to generate them ,but I just don't seem to get time for these thethings during the normal course of he semester, and I want to create a computer game interactive narrative that explores the development of Japan during the Jomon period, which is a really interesting period since they seemed to develop advanced pottery before some other parts of the world ,who were still in the new stone age or something.  of course the astounding thing is the suggestion that we can really know anything about what people's lives were like during that time.  I'm reading these japanese history manga and the early lives seem pretty idyllic in terms of hunting and gathering and building small villages and starting to use agriculture, but pretty soon we get into the later yayoi and kofun periods and before long there is warfare and invading korean and things like that - seems like agriculture supported a huge increase in population and that ultimately led to people who had leisure time for warfare and inequality and things like that.  Of course before the start of organized hostilities there would have been lots of unpleasant situations like not managed to get enough to eat, and your kids dying from starvation, and getting injured going hunting and starving to death.  It would just be so fascinating to actually go back in time and watch some people living in one of these periods that we only really know anything about by archaeology and inference based on observing indigenous tribes - of course I guess the thing to do would be to become an anthropologist and go off and live with some of these pre-industrial tribes that still live in the amazon rain forest - I did take an anthropology course at edinburgh university one time and the instructor had lived in the rainforest with one group and talked about his experience of being a child, like they couldn't leave him along in the forest as he would get totally lost - he didn't have any independence and was totally reliant on the tribesmen to get him to places and to feed him, since he had none of the skills that allowed him to survive in the forest - of course it's the gradual introduction of technology and adoption of new techniques for getting food etc. that's just absolutely fascinating which is what we see in games like civilization and makes them real fun, although they do still seem to lack something of a narrative.  I ilke these japanese history comics because they give a bit more of a narrative sense, but it doesn't go quite far enough - they introduce some early historical figures like some queen who sent a messenger to mainlinad china in the 2nd century, but we don't really know hardly anything about her, and so they kind of sketch her out as a kind of intelligent young woman who was really good at predicting the weather, and who was raised up to be queen to avoid the men all fighting each other to be king, but we really don't know the politics of the events of the time, and I guess they are afraid to make them up since they are trying to be historically accurate books/comics things, but I think they could go further, but then I am also complaining that they don't really know how people lived although I haven't followed up on all the background sources that they might be using.  but there's a difference about developing a narrative.  There was a book, "clan of the cave bear" or something that explored that - it was like a story set in the stone age, and "American Gods" had some of that in it's little pre-history vignettes - I still think an interactive narrative in the Jomon would be cool, but I'd really like an underlying physics model so that game play was kind of open ended, e.g. you could make clay into pots and discover some early technologies, but in a more narrative oriented fashion than civilization, e.g. you can store more nuts and berries in your pots in order to make it through the winter, I mean get your little family to make it through the winter - I can imagine a really raw game where sometimes you'd have to make choices like leaving a sick child to starve in order to have your other healthy children survive - would that make for fun gameplay? I'm not sure - it's certainly a very dramatic issue and something that early humans likely had to face - there was a song I learnt in a language school in japan that was said to be dedicated to those children that had to be killed so their brothers and sisters might survive.  It seems so horrific in this modern age where we expect all of our offspring to make it to maturity - is there value from exploring these things?  perhaps in just making us appreciate how lucky we are now ...

Friday, October 26, 2012

Code Complete: High Quality Routines

So reading Steve McConnell's Code Complete chapter 7 on writing "High Quality Routines" I am struck that there is lots and lots of great advice in there about writing methods.  Particular things such as clear naming conventions, relatively short routine length, short sets of input parameters etc. are all excellent.  However the problem that I have with the chapter overall is that it feels like it is easy to read it and then not put much of the advice into practice.  While the chapter has lots of great example code snippets, I feel like it is easy to ignore the great advice, given that it's not being encountered as part of a larger project.

Maybe this is just me.  I'm a huge fan of working on things in a larger context, but I know that that's not everybody's cup of tea.  It has been argued that some people like to read the abstract theory associated with things before encountering examples in context.  If you're one of these people please do get in touch and let me know.  I'd like to learn more about your thought processes.

Anyhow, just as an example of some mixed routine practices from things I was programming today, I created one short routine
and grabbed another from StackOverflow:

http://stackoverflow.com/questions/8240637/javascript-convert-numbers-to-letters-beyond-the-26-character-alphabet

Now I've got a really awful vanilla name for the routine I created (processForm) and all sorts of hacked together pieces of things, but that's partly a reflection of the "tracer bullet" methodology I was working on here, which was to get something that would take a form submission from a Google App Script generated html page, and enter the resulting data into a spreadsheet as described in this StackOverflow post:

http://stackoverflow.com/questions/13086880/can-i-mix-jqueryui-and-google-app-script-form-submissions

At least I can be pleased that both routines are relatively short and have a very small number of input parameters.  I think that both could be improved with refactoring.  I'll present that in a future blog post, but right now I know I and my students are going to be using this code every week to support assignment submissions, and getting a feel for getting this working in Google App Scripts was the top priority that trumped every other consideration.  Not the best programming practice perhaps, but let's see how I can iterate and improve this over the next few weeks.

Google App Scripts really rocks, but I'm still trying to work out how to version and share all this stuff effectively so we can see the software engineering and systems analysis issues in the context of this larger project, as described in this other SO post:

http://stackoverflow.com/questions/12712593/should-google-app-scripts-be-stored-in-version-control-like-github


Automated Text Chat Assistants for Online Classes


I'm proposing this research project at my University in the hope of getting some course releases to spend more time on it. The proposed project concerns analyzing the text and email logs from a number of online computer science and multimedia communication classes in order to identify common students questions and concerns.  This data will be used to improve course design and automate the generation of frequently asked questions (FAQs) web pages.  Longer-term goals include the developing an instant messenger (IM) chatbot that can interact with students online when instructors are not available.

Background:
Researchers have studied the effects of making synchronous chat available in online classes such as Spencer & Hiltz (2003) who showed that students found classes with synchronous chat significantly more ‘rewarding’ and less ‘complex’ than classes with only asynchronous communication. This is not to say that asynchronous interaction such as that facilitated by blogs, emails, bulletin boards, wikis and so forth it not valuable.  In fact according to Johnson (2006) both synchronous and asynchronous forms of online discussion have advantages and there is evidence that both contribute to student cognitive and affective outcomes.

While the benefits of rich interactive tools for online learning are not in question, there have been relatively few assessments (although see Tomei, 2006) of the time taken by the online instructor to manage these systems.  The principle investigator of this project argues that much instructor time could be saved by the automated generation of class frequently asked question (FAQ) pages, as well as by providing multiple means to access this information, possibly including chatbot technology to interact with students over instant messenger (IM) systems such as Skype.

There have been a number of attempts to integrate chatbot technology into the online classroom over the years.  For example Heller et al. (2005) demonstrated that famous person chatbots (e.g. FreudBot) are promising as a teaching and learning tool in online education; while Mikic et al. (2009) developed the CHARLIE chatbot which can maintain a general conversation with students, showing them contents of courses, and asking them questions about learning material.  Even without a working chatbot there are studies (Kerly et al., 2006) using Wizard-of-Oz experiments that indicate this technology, if successful, could have widespread application in schools, universities and other training scenarios.

There are some positive results at the K-12 level (Kerly et al., 2007) however other authors (e.g. Knill et al., 2004) have cautioned that:

The teacher is the backbone in the teaching process. Technology like computer algebra systems, multimedia presentations or ‘chatbots’ can serve as amplifiers but not replace a good guide.

Despite these concerns recent researchers have experimented with humor enabled chatbots (Augello, 2008) and chatbots that support second language learning (De Gasparis & Florio, 2012; Jiyou, 2009; Sha, 2009); while yet others have demonstrated chatbot effectiveness in supporting network management training (Leonhardt et al., 2007) and security training (Kowalski et al., 2009). Furthermore in a detailed study Alencar & Netto (2011) developed an online education portal chatbot that successfully answered 69% of the students’ general questions about distance education.
In summary it seems that there is a great potential for the use of chatbot technology in the online classroom, but that one should be careful not to try and replace the human instructor entirely.  The proposed project is focused on providing automated online teaching assistants that will help the human online instructor manage their online classes. The principle investigators experience indicates that synchronous chat helps with student engagement and retention although as Wilging & Johnson (2004) point out students’ reasons for dropping out of an online program are varied and unique to each individual.  It is the principle investigators hope that well designed automated FAQs and IM chatbots can server to amplify the retention-enhancing effect of synchronous chat in online classes.
Clearly a cautious approach is required to develop systems that can successfully support online learning success.  This project plans to analyze the logs from several online classes using the ethnographic approach demonstrated by authors such Zembylas & Vrasidas (2007).

Work Plan:
Jan/Feb 2013: Analysis of CSCI 4702, 4705 and MULT 4702 chat logs
Feb/Mar 2013: Generation of 1st version of FAQs
Mar/Apr 2013: Automation of FAQ generation
Apr/May 2013: Link existing chatbot to FAQs to support usability testing over summer 2013

Work and Funding so far:
This project has not previously received any funding, but the principal investigator conducted an exploratory analysis of the chat logs during summer 2012.  A basic chatbot that answers simple questions has been created and deployed and further analysis and development is required to make something that can be of use in an online course.

No funding has been received or applied for from other sources.  The project is ongoing and will continue as long as the principal investigator continues to teach online classes.  However in the first instance a single course release is being requested to help work through the large volume of text chat that needs analyzing

Budget Justification:
The budget is for a single course release to provide the principal investigator with time to conduct the chat-log analysis and do code development based on the results.

Access:
No specific facilities are required.  The only requirement is IRB approval which is pending from the HPU CHS.

Dissemination:
Dissemination includes presenting the work at professional conferences such as the World Congress on Education or the International Conference on Advanced Learning Technologies, and ultimately in journals such as Knowledge-Based Systems and Distance Education.  The work would also be disseminated as an open source package and be promoted through the “Funniest Computer Ever” annual computer comedy contest. 
In the long term it would be good to see many educators making use of the techniques and tools developed from this project, and the plan is to disseminate the work as widely as possible through both academic, i.e. peer-reviewed publications and technical circles, i.e. an open source toolkit for online educators.

Deliverables:
Two conference paper submissions and working FAQ and chatbot prototypes by end of Summer 2013, for deployment in Fall 2013 classes.

Bibliography
  • Alencar, M. & Netto, J. (2011). Developing a 3D Conversation Agent Talking About Online Courses. In T. Bastiaens & M. Ebner (Eds.), Proceedings of World Conference on Educational Multimedia, Hypermedia and Telecommunications 2011 (pp. 1713-1719). Chesapeake, VA: AACE
  • Augello, A. (2008)Humorist Bot: Bringing Computational Humour in a Chat-Bot System. International Conference on Complex, Intelligent and Software Intensive Systems, 2008. CISIS 2008.
  • De Gasperis G.  & Florio N. (2012) Learning to Read/Type a Second Language in a Chatbot Enhanced Environment. International Workshop on Evidence Based Technology Enhanced Learning. Advances in Intelligent and Soft Computing, 2012, Volume 152/2012, 47-56
  • Heller, B., Proctor, M., Mah, D., Jewell, L. & Cheung, B. (2005). Freudbot: An Investigation of Chatbot Technology in Distance Education. In P. Kommers & G. Richards (Eds.), Proceedings of World Conference on Educational Multimedia, Hypermedia and Telecommunications 2005 (pp. 3913-3918). Chesapeake, VA: AACE.
  • Jiyou J. (2009) CSIEC: A computer assisted English learning chatbot based on textual knowledge and reasoning. Knowledge-Based Systems. Volume 22, Issue 4, May 2009, Pages 249–255
  • Kerly, A., Ellis, R. & Bull, S. (2007). CALMsystem: A Conversational Agent for Learner Modelling, in R. Ellis, T. Allen & M. Petridis (eds), Applications and Innovations in Intelligent Systems XV – Proceedings of AI-2007, 27th SGAI International Conference on Innovative Techniques and Applications of Artificial Intelligence, Springer Verlag 89-102.
  • Knill, O., Carlsson, J., Chi, A., and Lezama, M. (2004). An artificial intelligence experiment in college math education. Preprint available at http://www.math.harvard.edu/knill/preprints/sofia.pdf.
  • Kowalski S., Pavlovska K. & Goldstein M. (2009) Two Case Studies for Using Chatbots for Security Training. World Conference on Information Security Education 2009.
  • Leonhardt, M.D. Tarouco, L., Vicari, R.M.,Santos, E.R. & dos Santos da Silva, M. (2007) Using Chatbots for Network Management Training through Problem-based Oriented Education. Seventh IEEE International Conference on Advanced Learning Technologies, 2007. ICALT 2007.
  • Shaa G. (2009) AI-based chatterbots and spoken English teaching: a critical analysis. Computer Assisted Language Learning, Volume 22, Issue 3.
  • Spencer, D. H., & Hiltz S. R.  (2003) A field study of use of synchronous chat in online courses. Paper presented at the 36th Hawaii International Conference on System Sciences, Big Island, HI, January. http://csdl2.computer.org/comp/proceedings/hicss/2003/1874/01/187410036.pdf
  • Tomei, D.L. (2006). The Impact of Online Teaching on Faculty Load: Computing the Ideal Class Size for Online Courses. Journal of Technology and Teacher Education, 14(3), 531-541.
  • Zembylas, M & Vrasidas C. (2007) Listening for Silence in Text-Based, Online Encounters. Distance Education; May 2007; 28, 1.


Friday, October 19, 2012

Monkey Business Board Game with my Kids

So as described in yesterday's post I sat down with my kids last night and played a board game called "Monkey Business", by the Early Learning Center people.  This game as you can probably see from the image involves hanging plastic monkeys on a tree like thing.  The tree canopy is attached to the tree with a magnet.  When enough monkeys are hanging the magnet detaches and drops the monkeys into a pool of crocodiles at the bottom. Each player takes a turn to spin the dial to see how many monkeys they have to add, and I think the person who adds the monkey that "breaks the camel's back" so to speak, is the loser.  I worry about that a little for my boys since the focus in the game is on a single loser ...

I played this game with my three-year old boys Jack and Arthur, and it proceeded reasonably well.  We took turns hanging monkeys from the tree.  Occasionally individual monkeys would fall off, without the entire tree coming down, and there wasn't anything in the rules to cover this.  We didn't finish the game properly as after about 6 turns Arthur got frustrated and knocked the canopy down, which was a shame, as I have yet to actually play the game to completion :-)

Part of Arthur's frustration might have been related to the previous set up, which was that boys all had to have showers and be completely ready for bed before they could 1) do their homework, and 2) play games.  My seven year old son Luke had mathletics homework from school, which he enjoys, so he rushed down after showering to do that on the computer, and by the time the twins were down as well he had finished that, and all three boys moved happily on to their Kumon Japanese alphabets homeworks.

Now, while the boys quite like their Japanese alphabet homeworks (in fact Luke asked to do it when he woke up this morning), I have been setting a trend of letting them play on tablets after they do it. So Luke was still working on his Kanji, and Jack & Arthur had finished their Hiragana work when I suggested the monkey business tabletop game.  It was greeted with enthusiasm by the twins.  However during play I think I may have been occasionally distracted giving support to Luke doing his Kanji homework, and I think Arthur was thinking "I really want to get on to playing with the tablets and I've had enough of monkeys, and Daddy's not completely focused on our game", when he decided to knock everything over.  I was rather upset.  I told him he couldn't use the tablet now, and he was also upset.

The evening ended with Luke finishing his Kanji homework and us all playing 4 way Wii Mariokart on our wall projector.  Initially Arthur was still in a bad mood, but he actually made great progress controlling his kart, and finished two or three races for the first time.  Luke beat me in almost every race, and Jack got frustrated that he couldn't finish the course when Arthur was managing it.  He needed some scaffolding and reassurance that everything was okay, and it would take time to master MarioKart.

So in summary, I'm glad I got the board game out and want to do it more.  Any recommendations for good board games for a dad and three boys aged 7, 3 and 3?


Thursday, October 18, 2012

London Educational Games Meetup Rocks!

I very much enjoyed attending the London Educational Games Meetup last night.  They had six people present their games and platforms and things. First Laurent Arhuro presented flashapps, which looked like a nice set of mobile games for kids.  I didn't get a chance to ask him whether he had any particular pedagogical approach for these apps.  I have my kids playing all the free learning apps, so I'm not sure I'm going to immediately check out his apps since they cost money (am I a bad person?) but I wondered why he didn't have free and premium versions ... also is flashapps a confusing name since flash is a technology that is now gradually dying and doesn't run on mobiles anyway.  Either way he gave some good insights to deploying on amazon, ios and google play and how children are always moving on to next thing.  My kids zap through game after game each 30 seconds or so.

Brian Egles presented Jaguar Maths in Motion which sounded awesome - teaching kids about abstract math through a simulated F1 competition.  The project involves collaborating with schools.  Actually I'd like my boys to be slightly less obsessed with cars, but that's another story.  I asked Brian if the software was available outside schools, and apparently it can be bought, but as we've already determined I have no money so I guess I won't explore that in more detail for a while.  What was fascinating was Brian's description of how it helps kids who are switched off on math - kids who are not interested in the more abstract stuff like measuring angles.  He said early use of shop stuff for addition, multiplication works fine in schools, but abstract stuff is hard for some who could do it but can't see the point.  Personally I tend to think that schools have it all back to front and should all be based on the summerhill model but again that's another story :-)

Michael Carter presented his board game take-off, which reminded me about the lack of multiplayer support for my three boys playing on their tablets.  It's board games tonight I swear!  I don't want my kids growing up unable to negotiate and take turns.  Anyway, I asked Michael if his game involved a die? Apparently not - you get a card with number of moves from 1 to 5 so there is some skill about landing on the triangles on the board that allow you move the central section back and forth which can block access to the hangers that you need to access of win.  That technique reminded me of mariokart - guys who are behind tend to have an advantage ...  Kirsten mentioned that Rob Harris has a playtesting board game meetup that might be could for Michael, and I recalled somebody tweeting recently about it being nice to move real pieces around on a real board for a change.  Board game renaissance anyone?

In the break my friends and I started wondering why there aren't more handwriting recognition apps on touchscreen tablets/phones.

After the break we heard from Peter Stidwell about his ethical thinking game Quandary which sounds like a more philiosophical version of civilization, but is free, so I'll see if I can get my computer game students to play it.  It's all about settling on new planet, negotiating with people and has a graphic novel format!  Will blog about it once I've played if I get a chance.

We then heard from Ash Cairo about Phone battles and despite the guns and fast food content it looked like there was an exciting multiplayer multiplatform system there.  Finally we heard from Julia Bateson from Excite-ed who was previously a school teacher but now runs programs in schools to help train kids to becomes game designers - sounds like what I do for 18+ year olds at Hawaii Pacific University :-)  She mentioned GameStarMechanic which looks even easier to use than Construct2, GameMaker, GameSalad and Stencyl, but costs money, so I guess I won't be using it soon.  What particularly resonated was her talking about how kids from all different groups could collaborate, e.g. arty, techy, wordy all the different combinations of skills going into games.  Totally!  Exactly what I try to do with my collaborative game programming and game design classes where I try to get designer and programmers to collaborate to produce games.

Phew, what an evening, and followed it up with a great-ish burrito - should have ordered the salsa diablo.  Sorry I couldn't make it to "The Boot" for drinks - three young kids and all ... maybe next time - well realistically in about 15 years :-)

Monday, October 1, 2012

Google Spreadsheet ImportRange not working for me ... :-(

So I was hoping to use the Google Spreadsheet "ImportRange" function to cross-link some spreadsheets in the hopes of automating assignment status updates for my students, but no such luck:

http://support.google.com/docs/bin/answer.py?hl=en&answer=155183

I've tried to replicate in spreadsheets created from scratch.  Here's the source spreadsheet:

https://docs.google.com/spreadsheet/ccc?key=0Aq72y9iq5_1UdGFBRmc1VDYyS1p2UHZtLTd3U3REcHc#gid=0

and here's where I'm trying to pull in the data to:

https://docs.google.com/spreadsheet/ccc?key=0Aq72y9iq5_1UdHVnNzQ4SHBIRU9BS3ZhM2YyZFBqWWc#gid=0

and I have cell A1 set to:
ImportRange("0Aq72y9iq5_1UdGFBRmc1VDYyS1p2UHZtLTd3U3REcHc","Sheet1:A1")
but I get this error:
"#REF! error: The requested spreadsheet key, sheet title, or cell range was not found."
which is the error described here in the support document mentioned above,  which is supposed to be the error I get if I am not added as a collaborator on the source document, but since I am the author of both spreadsheets that doesn't make much sense.  I have tried playing with the openness settings of both spreadsheets, setting them to view with link, and completely public, but this has no impact on the error I get above

In my actual work case I get a completely different error trying to do approximately the same thing:


and of course I've searched Google for answers, and found various posts that describe similar errors, but haven't helped me fix my issue:

https://productforums.google.com/forum/#!topic/docs/HiqmmeeV0WI (incorrect sheet ids/syntax)

http://productforums.google.com/forum/#!topic/docs/6lczh2QEEXQ (wrap in expand statement)

Google spreadsheets is really great, and I can get loads done in the bits that I can get to work, but I really hate getting stuck like this and burning an hour on something where I can't get access to a more detailed error message, and the user community problem and solution dialogues are not organized around the documentation like they are in PHP and MySQL.

What I really really really want is some google spreadsheet people on IRC to actually talk through the problem ...