Today, As I Was Crawling Across the Floor…

As I believe I’ve already mentioned, I play a number of board games but, before you think “Oh no, not Monopoly!”, these are along the lines of the German-style board games, games that place some emphasis on strategy, don’t depend too heavily on luck, may have collaborative elements (or an entirely collaborative theme), tend not to be straight war games and manage to keep all the players in the game until the end. Notably, German-style board games don’t have to be German! While some of the ones that I enjoy (Settlers of Cataan, Ticket to Ride and Shadows Over Camelot) are European, a number are not (Arkham Horror, Battlestar Galactica and Lords of Waterdeep). A number of these require cooperative and collaborative play to succeed – some have a traitor within.

I have discussed these games with students on a number of occasions as many students have no idea that such games exist. The idea of players working together against a common enemy (Arkham Horror) appeals to a lot of people, especially as it allows you to share success. One of the best things about games that are well-designed to reward player action and keep everyone in the game is that the tension builds to a point a final victory gives everyone fiero – that powerful surge of joy.

Now, while there are many games out there, I decided to go through the full game design process to get my head around the components required to achieve a playable game. I’ve designed some games before and, after a brief time spent playing them, I’ve left most of them back on the shelf. Why? Poor game design, generally. As a writer, I have a tendency to think of stories and to run narrative in my head – in game terms, this is only one possible passage through the game. One of the strengths of computer games such as Deus Ex is the ability to play multiple times and get something new out: to shake up the events and run it in your order, forming a new narrative. (In DE, technically, you were on rails the whole time, the strength of the game is in the illusion of free will.)

Why is it important for me to try and design a good game? Because it requires a sound assessment of what is required, reflection upon how I can model a situation in a game, good design, solid prototyping, testing, feedback, revision, modification, re-testing, thought, evaluation and then more and more refinement. From a methodological point of view, my question to myself is “Can I build a game that is worth playing based on a general sketch of the problem, a few good ideas and then a solid process to allow me to build game features in the way that I would build code features?”

Right now I’m in the requirements gathering phase and this is proving to be very interesting. I’m working on a Zombie game (oh no, not another one) but I want to have a three-stage game where the options available to players, resources and freedom of action, change dramatically during each stage. I want it to be based in London. I want to allow for players to develop their characters as they play through a given game. I want player actions to have a lasting impact in the game, for decisions to matter. I want the game to generate a different board and base scenario set every time, to prevent players learning a default strategy. I want the whole thing to run, as a board game, in the German style. I want the instructions to fit onto 8 A4 pages – with pictures.

(I should note that I’ve been playing games for a long time and made a lot of notes about rules and mechanics that I like, so this has all formed part of my requirements gathering, but I’m not trying to put a new skin on an old game – I’m trying to create something interesting that is also not a blatant rip-off. Also, yes, I know that there are already a lot of zombie games out there. That isn’t the point.)

I’ve been crawling the web for pictures of London, layouts, property values, building types and other things to get London into my head. Because the board has to change every time, and I can’t use computer generation, I need a modular board structure. That, of course, requires that the modules make sense and feel like London, and that the composition of these modules also makes sense. I need the size of the board to make the players work for their victories and not make victory too easy or too hard to attain. (So, I’m building bounds into the modularity and composition that I can tune based on what happens in play testing.)

I knew this but my research nailed it as a requirement: London is about as far away from being a grid layout as you can get, with a river snaking through it. Because of this, and my randomisation and modularity requirements, I had to think about a system that allowed me to put the elements together but that didn’t make London look like New York.  Instead, I’ve opted for a tiled layout based on hexagons. They tesselate nicely, you can’t run in straight lines, and you can’t see further than the side of one hex, which reflects the problems of working in London without having to force someone to copy out a section of the London map with all of its terrible twists and turns.

The other thing I really wanted to know was “How fast do zombies move?” and, rather than just look it up, I’ve spent a bit of this afternoon shambling around the house and timing myself to see what the traditional “slow” zombie does. Standard walking and running are easy (I have a good feel for those figures) but then I thought about that stalwart of zombie movies – the legless crawler. So, in the interests of research, I measured off a 10m course and dragged myself across the floor only using my arms. Then I added a fudge factor to account for the smoothness of the floor and, voila, a range of speeds that tell me how long zombies will take to move across my maps.

Why do I need to do this? Because I’ve never done it before. From now on, if someone asks me what the estimated speed of a legless zombie is on a level surface, I can say “Oh, about 0.25m/s” and really stop the conversation at the Vice Chancellor’s cocktail party.

Requirements gathering, around a problem specification, is a vital activity because if it’s done properly then you gain more and more understanding of the problem and, even though initially the questions seem to explode, you can move to a point that you have answered most of the important questions. By the time I’ve finished this stage, I should have refined my problem statement into a form that allows me to write the proper design and then build the first prototype without too many further questions. I should have the base rules down in a form that I can give to somebody and see what they do.

By doing this, I’m practising my own Software Engineering skills in a very different way, which makes me think about them outside of the comfortable framework of a programming language. Students often head off to start writing code because it’s easier to sit and write code that might work, instead of spending the time doing the far more difficulty activities of problem specification, requirements gathering, specification refinement and full design. I don’t get much of a chance to work on commercial software these days, so a zombie game on the weekends is an unusual, if rewarding, way to practice these skills.

Sliding across the floor is murder on the knees, though…


What are the Fiction and Non-Fiction Equivalents of Computer Science?

I commented yesterday that I wanted to talk about something covered in Mark’s blog, namely if it was possible to create an analogy between Common Core standards in different disciplines with English Language Arts and CS as the two exemplars. In particular, Mark pondered, and I quote him verbatim:

”Students should read as much nonfiction as fiction.”  What does that mean in terms of the notations of computing? Students should read as many program proofs as programs?  Students should read as much code as comments?

This a great question and I’m not sure that I have much of an answer but I’ve been enjoying thinking about it. We bandy the terms syntax and semantics around in Computer Science a lot: the legal structures of the programs we write and the meanings of the components and the programs. Is it even meaningful to talk about fiction and non-fiction in these terms and where do these fit? I’ve gone in a slightly different direction from Mark but I hope to bring it back to his suggestions later on.

I’m not an English specialist, so please forgive me or provide constructive guidance as you need to, but both fiction and non-fiction rely upon the same syntactic elements and the same semantic elements in linguistic terms – so the fact that we must have legal programs with well-defined syntax and semantics pose no obstacle to a fictional/non-fictional interpretation.

Forgive me as I go to Wikipedia for definitions for fiction and non-fiction for a moment:

“Non-fiction (or nonfiction) is the form of any narrativeaccount, or other communicative work whose assertions and descriptions are understood to be factual.” (Warning, embedded Wikipedia links)

“Fiction is the form of any narrative or informative work that deals, in part or in whole, with information or events that are not factual, but rather, imaginary—that is, invented by the author” (Again, beware Wikipedia).

Now here we can start to see something that we can get our teeth into. Many computer programs model reality and are computerised representation of concrete systems, while others may have no physical analogue at all or model a system that has never or may never exist. Are our simulations and emulations of large-scale system non-fiction? If so, is a virtual reality fictional because it has never existed or non-fictional because we are simulating realistic gravity? (But, of course, fiction is often written in a real world setting but with imaginary elements.)

From a software engineering perspective, I can see an advantage to making statements regarding abstract representations and concrete analogues, much as I can see a separation in graphics and game design between narrative/event engine construction and the physics engine underneath.

Is this enough of a separation? Mark’s comments on proof versus program is an interesting one: if we had an idea (an author’s creation) then it is a fiction until we can determine that it exists, but proof or implementation provides this proof of existence. In my mind, a proof and a program are both non-fiction in terms of their reification, but the idea that they span may still be fictional. Comments versus code is also very interesting – comments do not change the behaviour of code but explain, from the author’s mind, what has happened. (Given some student code and comment combinations, I can happily see a code as non-fiction, comment as fiction modality – or even comment as magical reality!)

Of course, this is all an enjoyable mental exercise, but what can I take from this and use in my teaching. Is there a particular set of code or comments that students should read for maximum benefit and can we make a separation that, even if not partitioned so neatly across two sets, gives us the idea of what constitutes a balanced diet of the products of our discipline?

I’d love to see some discussion on this but, if nothing here, then I’m happy to buy the first round of drinks at HERDSA or ICER to start a really good conversation going!


What’s the Big Idea?

I was reading Mark Guzdial’s blog just before sitting down to write tonight and came across this post. Mark was musing about the parallels between the Common Core standards of English Language arts and those of Computing Literacy. He also mentioned the CS:Principles program – an AP course designed to give an understanding of fundamental principles, the breadth of application and the way that computing can change the world.

I want to talk more about the parallels that Mark mentioned but I’ll do that in another post because I read through the CS:Principles Big Ideas and wanted to share them with you. There are seven big ideas:

  1. Creativity, recognising the innately creative nature of computing;
  2. Abstraction, where we rise above detail to allow us to focus on the right things;
  3. Data, where data is the foundation of the creation of knowledge;
  4. Algorithms, to develop solutions to computational problems;
  5. Programming, the enabler of our dreams of solutions and the way that we turn algorithms into solution – the basis of our expression;
  6. Internet, the ties that bind all modern computing together; and
  7. Impact, the fact that Computing can, and regularly does, change the world.

I think that I’m going to refer to these with the NSF Grand Challenges as part of my new Grand Challenges course, because there is a lot of similarity. I’ve nearly got the design finished so it’s not too late to incorporate new material. (I don’t like trying to rearrange courses too late into the process because I use a lot of linked assessment and scaffolding, it gets very tricky and easy to make mistakes if I try and insert a late design change.)

For me, the first and the last ideas are among the most important. Yes, you may be able to plod your way through simple work in computing but really good solutions require skill, practice, and creativity. When you get a really good solution or approach to a problem, you are going to change things – possibly even the world. It looks like someone took the fundamentals of computing and jammed together between two pieces of amazing stuff, framing the discipline inside the right context for a change. Instead of putting computing in a nerd sandwich, it’s in an awesome sandwich. I like that a lot.

It turns out that there are a lot of images when you search for “Awesome Sandwich”.

Allowing yourself to be creative, understanding abstraction, knowing how to put data together, working out to move the data around in the right ways and then coding it correctly, using all of the resources that you have to hand and that you can reach out and touch through the Internet – that’s how to change the world.

 


Last Lecture Blues

I delivered the last lecture, technically the review and revision lecture, for my first year course today. As usual, when I’ve had a good group of students or a course I enjoy, the relief in having reduced my workload is minor compared to the realisation that another semester has come to an end and that this particular party is over.

Hellooooo???

Today’s lecture was optional but we still managed to get roughly 30% of the active class along. Questions were asked, questions were discussed, outline answers were given and then, although they all say and listened until I’d finished a few minutes late, they were all up and gone. The next time I’ll see most of them is at the exam, a few weeks from now. After that? It depends on what I teach. Some of these students I’ll run into over the years and we’ll actually get to know each other. Some may end up as my honours or post-graduate students. Some will walk out of the gates this semester and never return.

Now, hear me out, because I’m not complaining about it, but this is not the easiest job in the world. Done properly, education requires constant questioning, study, planning, implementing, listening, talking and, above all, dealing with the fact that you may see the best student you ever have for a maximum of 6 months. It is, however, a job that I love, a job that I have a passion for and, of course, in many ways it’s a calling more than a job.

One of the things I’ve had a chance to reflect on in this blog is how much I enjoy my job, while at the same time recognising how hard it is to do it well. Many times, the students I need to speak to most are those who contact me least, who up and fade away one day, leaving me wondering what happened to them.

At the end of the semester, it’s a good time to ask myself some core questions and see if I can give some good answers:

  1. Did I do the best job that I could do, given the resources (structures, curriculum, computers etc) that I had to work with?
  2. Did I actively seek out the students who needed help, rather than just waiting for people to contact me?
  3. Did I look for pitfalls before I ran into them?
  4. Did I look after the staff who were working with or for me, and mentor them correctly?
  5. Did I try to make everything that I worked with an awesome experience for my students?

This has been the busiest six months of my life and one of my joys has been walking into a lecture theatre, having written the course, knowing the material and losing myself in an hour of interactive, collaborative and enjoyable knowledge exchange with my students. Despite that, being so busy, sometimes I didn’t quite have the foresight that I should had had and my radar range was measured in days rather than weeks. Don’t get me wrong, everything got done, but I could have tried to locate troubled students more actively, and some minor pitfalls nearly got me.

However, I think that we still delivered a great course and I’m happy with 1, 4 and 5. I aimed for awesome and I think we hit it fairly often. 2 and 3 needed work but I’ve already started making the required changes to make this better.

On reflection, I’d give myself an 8ish/10 but, of course, that’s not enough. Overall, in the course, because of the excellent support from my co-lecturer and my teaching staff, the course itself I’d push up into the 9-pluses. I, however, should be up there as well and right now, I’m too busy.

So, it’s time for some rebalancing into the new semester. Some more structure for identifying problems students. Looking at things a little earlier. And aiming for an awesome 10/10 for my own performance next semester.

To all my students, past and present, it’s been fantastic. Best of luck with your exams!


Happy Bolivian Teacher Appreciation Day

The Wiphala of Qollasuyu: the banner of the native people of the Andes and official co-flag of Bolivia. Happy Teachers’ Day for all of those of you show would rather use this flag!

Ok, I’ll be honest. I saw a link to the US Teacher Appreciation Day and, because I read it too quickly, I thought it was going to be on the 8th of June rather than the 8th of May. Today I was going to talk about how important it is to recognise the value and contribution of teachers every day – especially for me as someone who gets students after 12 years of successful learning! (World Teachers’ Day is on October the 5th, if you’re curious.)

However, instead, I went to look up if anyone actually had today as their national teaching day and, fortunately for me, it turns out that Bolivia celebrates their Teachers’ Day today (Wikipedia link). (Where today is in Australian time zones, sorry, confused people reading this on the 5th and saying “Martha! That boy’s gone mad again!”)

Happy Teachers’ Day, Bolivian Teachers! (Bolivian Flag)

But reading through that Wikipedia page made me appreciate how differently, including sincerely, we value teachers. Sometimes it’s part of a “Teachers’ Week”, sometimes it stands alone. Sometimes gifts are given, except where this might amount to bribery so the schools get closed (citation seriously needed here, because that’s a very big claim to base on a Wikipedia article!) Sometimes teachers get the day off, or half day off.

Some countries have students visiting their past and present teachers to bring gifts or show their appreciation. Apparently, in some countries, teachers get together and celebrate their profession by going out.

It doesn’t really matter what is done, after all, as long as the activity is sincere and recognises the teacher for teaching you well, listening, helping or contributing to your progress. But I really like the idea of teachers themselves getting together to say “Yeah! We’re teachers! We do an important job and we are doing it well. Hooray for us!”

There’s no worse way to celebrate a day by making a token gesture – it’s really better not to. (Any secretaries out there who have received a joke t-shirt that says “I’m with stupid” on Secretary’s Day know what I’m talking about.) But it’s not about being recognised by other people, it’s about taking the time to look back at your year and think about everything that’s happened. It’s about recognising what you have done, despite resourcing issues, increasing pressure, decreasing salaries and a changing world.

It’s about thinking about what it means to be a teacher – whether you are a student or a teacher.

So, teachers, wherever you are, have a happy Bolivian Teachers’ Appreciation Day and a good year to come.


The Shortest Distance Between Two Points Is The Internet

MY CHEESE!

I’ve been noticing a slight upwards trend in readership, as I’ve previously noted. On Friday, however, the readership exploded. 209 views on Friday, 259 views on Saturday. (Normally, I’m lucky to get a third of that.) One person, who obviously needs some help, viewed 99 things in one hour. (Even I’ve never done that.)

It was pretty obvious that something had happened but the other shoe didn’t drop until today, when a comment confirmation request came in. I’d been mentioned in a radio show and podcast for electronics enthusiasts and professionals – The Amp Hour!

Dave Jones had found my post on the bra ad that managed to combine sexism and insulting engineers and had, in his own words, been dismayed by it. His comment, and a link on the website, and suddenly I have some (quite possibly heavily confused) people reading my blog and wondering what they’d wandered into.

I saw the comment confirmation request, followed it back, commented, Dave responded, loop closed.

Except, of course, for how amazingly cool it is that something I wrote about an issue that bothered me found someone else, who it also bothered, who mentioned it, which sent people to me, which sent me to him, and then we basically met up in the corridor, nodded at each other and said “Hi”.

Of course, this would be far more impressive if Dave was in Antarctica, but he’s actually in Sydney. He went looking for stuff about the ad because he saw it and it bugged him – and he found my blog.

But this is still pretty cool. We’re a thousand kilometres apart (or so) and we’ve both agreed that the ad is rubbish. Twenty years ago, we would have had to have met or one of us would have had to write an article that got published on paper and distributed to me. I certainly wouldn’t know about Dave’s expertise in Internet Dating (seriously?) or passion for geocaching.

This is the world that that I have to prepare my students for. A world where their comments, good or bad, can travel for thousand of kilometres. A world where presence doesn’t have to mean physical presence. Of course, as educators, that applies to our classrooms and spaces as well. Our world does not have to be bricks and mortar, bench seats and blackboards.

We’re trying to make connections: knowledge, ideas, people, the future. We already appear to have the infrastructure to do it – do we have all of the right tools and the drive and vision to realise it?

I have no idea but I hope that we do. In the meantime, I’ll be over here, looking at the walls and thinking about the shortest distance between two points.


Eating Your Own Dog Food (How Can I Get Better at Words with Friends?)

I am currently being simultaneously beaten in four games of Words with Friends. This amuses me far more than it bugs me because it appears that, despite having a large vocabulary, a (I’m told) quick wit and being relatively skilled in the right word in the right place – I am rather bad at a game that should reward at least some of these skills.

One of the things that I dislike, and I know that my students dislike, is when someone stands up and says “To solve problem X, you need to take set of actions S.” Then, when you come to X, or you find that person’s version of a solution to X, it’s not actually S that is used. It’s “S-like” or “S-lite” or “Z, which looks like an S backwards and sounds like it if you’re an American with a lisp.”

There’s a term I love called “eating your own dog food” (Wikipedia link) that means that a company uses the products that it creates in order to solve the problems for which a customer would buy their products. It’s a fairly simple mantra: if you’re making the best thing to solve Problem X, then you should be using it yourself when you run across Problem X. Now,of course, a company can do this by banning or proscribing any other products but this misses the point. At it’s heart, dogfooding means that, in a situation where you are free to choose, you make a product so good that you would choose it anyway.

It speaks to authenticity when you talk about your product and it provides both goals and thinking framework. The same thing works for education – if I tell someone to take a certain approach to solve a problem, then it should be one that I would use as well.

So, if a student said to me “I am bad at this type of problem,” I’d start talking to them to find out exactly what they’re good and bad at, get them to analyse their own process, get them to identify some improvement strategies (with my guidance and suggestions) and then put something together to get it going. Then we’d follow up, discuss what happened, and (with some careful scaffolding) we’d iteratively improve this as far as we could. I’d also be open to the student working out whether the problem is actually one that they need to solve – although it’s a given that I’ll have a strong opinion if it’s something important.

So, let me eat my own dog food for this post, to help me get better at Words with Friends, to again expose my thinking processes but also to demonstrate the efficacy of doing this!

Step 1: What’s the problem?

So, I can get reasonable scores at Words with Friends but I don’t seem to be winning. Words with Friends is a game that rewards you for playing words with “high value” tiles on key positions that add score multipliers. The words QATS can be worth 13 or 99 depending on where it is placed. You have 7 randomly selected tiles with different letters, and a range of values for letters in a 1:1 association, but must follow strict placement and connection rules. In summary, a Words with Friends game is a connected set of tiles, where each set of tiles placed must form a valid word once set placement is complete, and points are calculated from the composition and placement of the tiles, but bonus spaces on the board only count once. The random allocation of letters means that you have to have a set of strategies to minimise the negative impact of a bad draw and to maximise the benefit of a good draw. So you need a way of determining the possible moves and then picking the best one.

Some simple guidelines that help you to choose words can be formed along the lines of the number of base points by letter (so words featuring Q, X or J will be worth more because these are high value letters), the values of words will tend to increase as the word length increases as there are more letters with values to count (although certain high value letters cannot be juxtaposed – QXJJXWY is not a word, sadly), but both of these metrics are overshadowed by the strategic placement of letters to either extend existing words (allowing you to recount existing tiles and extending point 2) or to access the bonus spaces. Given that QATS can be worth 99 points as a four-letter word if played in the right place, it might be worth ignoring QUEUES earlier if think you can reach that spot.

Step 2: So where is my problem?

After thinking about my game, I realised that I wasn’t playing Words with Friends properly, because I wasn’t giving enough thought to the adversarial nature of the occupancy of the bonus spaces. My original game was more along the lines of “look at letters, look at board, find a good word, play it.” As a result, any occupancy of the bonus spaces was a nice-to-have, rather than a must-have. I also didn’t target placement that allowed me to count tiles already on the board and, looking at other games, my game is a loose grid compared to the tight mesh that can earn very large points.

I’m also wasn’t thinking about the problem space correctly. There are a fixed number of tiles in the game, with known distribution. As tiles are played, I know how many tiles are left and that up to 14 of them are in my and my opponent’s hand. If I know how many tiles there are of each letter, I can play with a reasonable idea of the likelihood of my opponent’s best move. Early on, this is hard, but that’s ok, because we can both play in a way that doesn’t give a bonus tile advantage. Later on, it’s probably more useful.

Finally, I was trying to use words that I knew, rather than words that are legal in Words with Friends. I had no idea that the following were acceptable until (at least once out of desperation) I tried them. Here are some you might (nor might now) know: AA, QAT, ZEE, ZAS, SCARP, DYNE. The last one is interesting, because it’s a unit of force, but BRIX, a unit used to measure concentration (often of sugar) isn’t a legal word.

So, I had three problems, most of which relate to the fact that I’m more used to playing “Take 2” (a game played with Scrabble tiles but no bonus spaces) than “Scrabble” itself, where the bonus spaces are crucial.

Step 3: What are the strategies for improvements?

The first, and most obvious, strategy is to get used to playing in the adversarial space and pay much closer attention to which bonus spaces I leave open in my play and to increase my recounting of existing tiles. The second is to start keeping track of tiles that are out and play to the more likely outcome. Finally, I need to get a list of which words are legal in Words with Friends and, basically, learn them.

Step 4: Early outcomes

After getting thrashed in my first games, I started applying the first strategy. I have since achieved words worth over 100 points and, despite not winning, the gap is diminishing. So this appears to be working.

The second and the third… look, it’s going to sound funny but this seems like a lot of work for a game. I quite like playing the best word I can think of without having to constrain myself to play some word I’m never going to actually use (when we’re up to our elbows in aa, I will accept your criticism then) or sit there eliminating tiles one-by-one (or using an assistant to do it). Given that I’m not even sure that this is the way people actually play, I’m probably better off playing a lot of games and naturally picking up words that occur, rather than trying to learn them all in one go.

Of course, if a student said something along the last lines to me, then they’re saying that they don’t mind not succeeding. In this case, it’s perfectly true. I enjoy playing and, right now, I don’t need to win to enjoy the game.

Just as well really, I think I’m about to lose four games within a minute of each other. That’s four in a row – pity, if there were three of them I could do a syzygy joke.

Step 5: Discussion and Iteration

So, here’s the discussion and my chance to think about whether my strategies need modification to achieve my original goal. Now, if I keep that goal at winning, then I do need to keep iterating but I have noticed that with a simple change of aiming more a the bonuses, I get a good “Yeah” from a high points word that probably won’t be matched by winning a game.

To wrap up, having looked at the problem, thought through it and make some constructive suggestions regarding improvement, I’ve not only improved my game but I’ve improved my understanding and enjoyment of the activity. I feel far more in control of my hideous performance and can now talk to more people about other ways to improve that maintain that enjoyment.

Now, of course, I imagine that a million WwF players are going to jump in and say “nooooo! here’s how you do it.” Please do so! Right now I’m talking to myself but I’d love some guidance for iterative improvement.


Learning from other people – Academic Summer Camp (except in winter???)

I’ve just signed up for the Digital Humanities Winter Institute course on “Large-scale text analysis with R”. K read about it on ProfHacker and passed it on to me thinking I’d be interested. Of course, I was, but it goes well beyond learning R itself. R is a statistically focused programming package that is available for free for most platforms. It’s the statistical (and free, did I mention that?) cousin to the mathematically inclined Matlab.

I’ve spoken about R before and I’ve done a bit of work in it but, and here’s why I’m going, I’ve done all of it from within a heavily quantitative Computer Science framework. What excites me about this course is that I will be working with people from a completely different spectrum and with a set of text analyses with which I’m not very familiar at all. Let me post the text of the course here (from this website) [my bold]:

Large-Scale Text Analysis with R
Instructor: Matt Jockers, Assistant Professor of Digital Humanities, Department of English, University of Nebraska, Lincoln

Text collections such as the HathiTrust Digital Library and Google Books have provided scholars in many fields with convenient access to their materials in digital form, but text analysis at the scale of millions or billions of words still requires the use of tools and methods that may initially seem complex or esoteric to researchers in the humanities. Large-Scale Text Analysis with R will provide a practical introduction to a range of text analysis tools and methods. The course will include units on data extraction, stylistic analysis, authorship attribution, genre detection, gender detection, unsupervised clustering, supervised classification, topic modeling, and sentiment analysis. The main computing environment for the course will be R, “the open source programming language and software environment for statistical computing and graphics.” While no programming experience is required, students should have basic computer skills and be familiar with their computer’s file system and comfortable with the command line. The course will cover best practices in data gathering and preparation, as well as addressing some of the theoretical questions that arise when employing a quantitative methodology for the study of literature. Participants will be given a “sample corpus” to use in class exercises, but some class time will be available for independent work and participants are encouraged to bring their own text corpora and research questions so they may apply their newly learned skills to projects of their own.

There are two things I like about this: firstly that I will be exposed to such a different type and approach to analysis that is going to be immediately useful in the corpus analyses that we’re planning to carry out on our own corpora, but, secondly, because I will have an intensive dedicated block of time in which to pursue it. January is often a time to take leave (as it’s Summer in Australia) – instead, I’ll be rugged up in the Maryland chill, sitting with like-minded people and indulging myself in data analysis and learning, learning, learning, to bring knowledge home for my own students and my research group.

So, this is my Summer Camp. My time to really indulge myself in my coding and just hack away at analyses and see what happens.

I’ve also signed up to a group who are going to work on the “Million Syllabi Project Hack-a-thon“, where “we explore new ways of using the million syllabi dataset gathered by Dan Cohen’s Syllabus Finder Tool” (from the web site). 10 years worth of syllabi to explore, at a time when my school is looking for ways to be able to teach into more areas, to meet more needs, to create a clear and attractive identity for our discipline? A community of hackers looking at ways of recomposing, reinterpreting and understanding what is in this corpus?

How can I not go? I hope to see some of you there! I’ll be the one who sounds Australian and shivers a lot.


Great News, Another Group Paper Accepted!

Our Computer Science Education Research group has been doing the usual things you do when forming a group: stating a vision, setting goals, defining objectives and then working like mad. We’ve been doing a lot of research and we’ve been publishing our work to get peer review, general feedback and a lot of discussion going. This year, we presented a paper in SIGCSE, we’ve already had a paper accepted for DEXA in Vienna (go, Thushari!) and, I’m very pleased to say that we’ve been just been notified that our paper “A Fast Measure for Identifying At-Risk Students in Computer Science” has been accepted as one of the research papers for ICER 2012, in Auckland, New Zealand.

This is great news for our group and I’m really looking forward to some great discussion on our work.

I’ll see some of you at ICER!

Click here to go to the ICER 2012 Information Page!


It is an amazing day.

Today marks the start of my sixth month of blogging. It is also the day after my largest number of hits, my most ‘viewed’ month and my my most ‘viewed’ week. Thank you to everyone who has visited and all of those of you who have taken the time to comment! It is amazing, in many ways, how ordinary a day this is to me, given how much is going on. But, of course, every day is amazing because every day is a new day. There is always the chance to do something new, something different, something wonderful.

Someone else thought that this was what an amazing day looked like. I agree!

I have tried to share my own progress in terms of understanding key concepts of learning and teaching, as a student, as a practitioner, and as a person. I can only hope that some of the people who have stumbled across this blog have found something useful here. (Sorry to the people who were looking for Page 3 girls.)

Analysing the searches that brought people here has, as I’ve previously noted, been somewhat sad as “alone in the crowd” is still the biggest draw. I worry because if you are looking for words to live by, this may not be the place to find the words that keep you alive. So, if your searches bring you here as well, I can only hope that you find what you need.

The word ‘hope’ springs up a lot in my writing. It’s a standard English form (I hope that you are well) but, for me, it is more than that. I have a great hope for the future – I would have difficulty doing my job if I did not. Every semester, I get to see a new group of students, some of whom I may know, and we start again. Knowledge, learning, hope.

For no other reason than that, the hope of something better, the hope of something brighter, and the hope that I may be helping to illuminate the way ahead – it is an amazing day.