Computing that has Purpose & Meaning

Computing
I think that the "Land War in Asia (aka, CS undergraduate education)" post over at FCS' Difference Engine Blog skirts around some of the ideas I have been playing with recently about teaching Computer Science and Applied Computing. In particular is the following phrase:

    We need to teach Computing that has purpose and meaning


which I think is what Applied Computing tries, but often fails, to do. The idea that is sugested in the linked post is for CS teaching to tell a story (perhaps metaphorically) and to have a beginning, middle, and end. In the real world many people do not need skills from the more theoretical end of CS. I say this with my tongue ever so slightly in my cheek, having thought that I wouldn't need any of those geometry and trigonometry skills from Mathematics until I started working on visualisations of argument structure. Although I say that for effect as I actually needed those skills when I worked building sites doing joinery in the real world. In computing though, the skills that people do need are applied computing skills. These are good, practical, real-world computing skills that cover at least formal skills in:

  •     problem solving,
  •     ideation,
  •     coding,
  •     source control,
  •     development methodology,
  •     team-working,
  •     communication
  •     probably others but I can't think of any right now...


Additonally there needs to be sufficient background and experience of the academic side of CS to allow the student to have some idea of the breadth of tools and techniques that CS can offer as well as how to aquire and apply them to their own problems. However I don't think that Applied Computing should be taught in isolation as I do not want to turn Applied Computing into a vocational course. I think that what is required is the story, provided by an associated application domain that scaffolds the use of computational tools to solve problems. For example, Applied Computing with Life Sciences, Psychology, Law, Engineering, or any of a myriad of subject domains. At university level these should of course be selected from those areas that the University is already good at. For example, the University of Dundee has a large and successful College of Life Sciences and increasing numbers of vacancies for software developers which it struggles to fill. Unfortunately there is not sufficient joined-up-thinking to ensure that LifeSci students are getting a thorough grounding in computing so the graduates that are being produced are not suited to some of the jobs that are becoming available. With the increasing trend towards heavy computer use in the life sciences this is a bad situation. Additionally, the Applied Computing degree does not have close ties with many of the range of other subject domains that Dundee does well, so ends up being a kind of theory-light CS. This gives graduates lots of tools to take away with them but no subject matter of their own to which they can apply them.

Interestingly this approach might be useful in tackling that age-old question of how to attract and retain women undergraduates in CS. In "Is Teaching Computer Science Different from Teaching Other Sciences?" (1997), Bernstein suggests that women see computers as tools and men see computers as toys. Whilst I think that this is an overly simplistic view, gender bias and preferences are much more complicated than that, I think that teaching computers as tools is essentially what I have suggested above but with the caveat that an application domain gives you the structure and narrative into which to fit those computing tools.

Posted
 

Fundamentals Concepts in Computer Science: Computability

There is a nice brief introduction to computability over at Good Math, Bad Math. My research has increasingly moved in the direction of this area of formal computer science over the last couple of years as I have developed the Dialogue Game Description Language, a domain specific language underpinned by a formal grammar expressed in EBNF and used to describe inter-agent communication protocols.

From my perspective, if you are interested in finding out more about what Dijkstra meant when he stated that "computer science is no more about computers than astronomy is about telescopes" then this article is a good place to start. Computer science is the study of the theoretical foundations of information and computation as well as the more practically oriented implementation and application aspects. It is these theoretical foundations that computability is concerned with. More specifically computability is a sub-branch of the theory of computation an area of computer science that addresses questions like "what problems can we solve using a computing device?" and "if we can solve this problem on a computer, how efficiently can we do so?".

Posted
 

NYC Odyssey Day 1

I flew into JFK on Monday evening. After remembering how the subway works, what card I needed, and understanding the map I then did a combination of subway (Airtrain, A, G, F, and Q lines) and walking to get to my hotel. By the time I got there it was dark and I had yomped my bag for a good mile or so on foot in evening temperatures that were quite a bit warmer than those I left in Dundee. So my first full day here was Tuesday. I headed up to Brooklyn College and spent some time seeing the first day of the Bridges to Computer Summer School where the kids get a taste of computer science through fun and interesting topics such as Cryptography, Graphics, Web Design, Robotics, and Geographical Information Systems (GIS). I managed to get a good idea of what the scheme is about then managed to grab some time to chat with Simon Parsons about researchy stuff. They are doing some interesting work here involving agents, argumentation, and education which parallels and dovetails quite nicely with some of the topics that I have been looking at recently. I spent a bit of time explaining some of the research and teaching that I have been involved in, such as argumentation teaching, MAgtALO, DGDL, strategic argumentation, argument blogging, online visualisation of argument (OVA). I then talked about the ideas that are beginning to form for how some of these could be recombined and deployed as teaching tools in a learning support context. The main thrust is that agents and argumentation systems, both individually and separately, offer useful teaching and learning support tools that could be used in university level classes, particularly teaching introductory computer science, problem solving, and critical thinking. I also have an idea for an argumentative dialogue based online application that fits into the GoogleWave distributed collaboration mode and that uses a novel interface. Lunch was two slices of pizza and a can of juice with the kids and instructors -- I helped with serving up the food to everyone and getting it shifted to the right place at the right time. Afterwards Simon and Betsy were pretty tired from the running around organising stuff so I headed back to my hotel before heading out to get a T-Bone steak which tasted pretty bloody good. All in all a good day  was had . It was quite productive with the beginnings of a number of ideas for collaborative research. I wasn't sure how much I would like Brooklyn but I have warmed to it greatly. My last visit here was confined to Manhattan and I found that the Greenwich area was really quite nice. For evenings out I like the small quiet bars that are dotted around everywhere where the music isn't too loud, the bartenders are friendly and talkative, and there is rarely any waiting for a fresh drink. I haven't yet found a decent bar in the Sheepshead bay area that is like that -- mostly it seems to be restaurants and tourists, though I am probably wrong. Then again I have a decent shop a minutes walk from my hotel which has a fine selection of bottled beers in the chiller, at least as good a range as Tesco has back home, so I think that I can manage.
Posted
 

CMNA 9, IJCAI'09, & Travelling

Media_httpwwwstrangea_dzvxr
I will be at CMNA 9 on the 13th of July and given the nice mixture of theory and application at previous CMNA workshops, I thought that this XKCD strip would fit nciely. This year's CMNA will be held during IJCAI in Pasadena, California which means that I have some intercontinental travel coming up. First though I will be spending a week at Brooklyn College in N.Y. visiting Simon Parsons and finding out about their argumentation, intelligent agent, and  C.S. Education research. Luckily this will coincide with the Bridges to Computing summer school which should give me some food for thought on how other institutions attract and retain C.S. students. Hopegully this will be a busy, exciting, and productive east coast stopover on the way to California.
Posted
 

Academic Earth

Media_httpwwwstrangea_onkhf
Academic Earth is a relatively new site where scholars post video lectures from their academic courses. Whilst MIT has been doing something similar for ages with their Open Courseware project and Berkeley has had the Structure and Interpretation of Computer Programs (SICP) lecture videos available for ages, I like that this has a really nice online interface that presents all of the available videos from many different sources in a fairly uniform fashion. Anyhow, I have had a good look through the Computer Science lectures and found a number that are of interest to me including the aforementioned SICP which I should finally try to watch and understand, as well as Operating Systems and System Programming and Machine Structures which are both relevant to my AC2B module, and Circuits and Electronics which isn't relevant to anything I teach or actively research but looks just darn interesting from a personal perspective. Particularly nice is that lectures can be downloaded, as MP4, shared or embedded in lots of web 2.0 type ways. As revision materials I think that they could be very useful from an academic perspective.
Posted
 

Computer Science Skills

From notes made by Phillip J. Windley of a talk given by Alan Kay: "Squeak is written in 230,000 lines of Smalltalk. They think it could be 20,000. There are 59,000 methods in 3.5Mb of object code, for about 59 bytes per method. There are about 5 million objects and it was implemented by ten people. The system is self-bootstrapping, so it's all in there. Learning how to do this ought to be part of computer science but regrettably it's not."
Posted