369 (+2)
Posted: November 3, 2012 Filed under: Education, Opinion | Tags: advocacy, authenticity, blogging, community, data visualisation, design, education, educational problem, ethics, feedback, Generation Why, higher education, in the student's head, resources, student perspective, teaching, teaching approaches 1 CommentThe post before my previous post was my 369th post. I only saw because I’m in manual posting mode at the moment and it’s funny how my brain immediately started to pull the number apart. It’s the first three powers of 3, of course, 3, 6, 9, but it’s also 123 x 3 (and I almost always notice 1,2,3). It’s divisible by 9 (because the digits add up to 9), which means it’s also divisible by 3 (which give us 123 as I said earlier). So it’s non-prime (no surprises there). Some people will trigger on the 36x part because of the 365/366 number of days in the year.
That’s pretty much where I stop on this, and no doubt there will be much more in the comments from more mathematical folk than I, but numbers almost always pop out at me. Like some people (certainly not all) in the fields of Science Technology Engineering and Mathematics, numbers and facts fascinate me. However, I know many fine Computer Scientists who do not notice these things at all – and this is one of those great examples where the stereotypes fall down. Our discipline, like all the others, has mathematical people, some of whom are also artists, musicians, poets, jugglers, juggalos, but it also has people who are not as mathematical. This is one of the problems when we try to establish who might be good at what we do or who might enjoy it. We try to come up with a simple identification scheme that we can apply – the risk being, of course, that if we get it wrong we risk excluding more people than we include.
So many students tell me that they can’t do computing/programming because they’re no good at maths. Point 1, you’re probably better at maths than you think, but Point 2, you don’t have to be good at maths to program unless you’re doing some serious formal and proof work, algorithmic efficiencies or mathematical scientific programming. You can get by on a reasonable understanding of the basics, and yes, I do mean algebra here but very, very low level, and focus as you need to. Yes, certain things will make more sense if your mind is trained in a certain way, but this comes with training and practice.
It’s too easy to put people in a box when they like or remember numbers, and forget that half the population (at one stage) could bellow out 8675309 if they were singing along to the radio. Or recite their own phone number from the house they lived in when they were 10, for that matter. We’re all good for about 7 digit numbers, and a few of these slots, although the introduction of smart phones has reduced the number of numbers we have to remember.
So in this 369(+2)th post, let me speak to everyone out there who ever thought that the door to programming was closed because they couldn’t get through math, or really didn’t enjoy it. Programming is all about solving problems, only some of which are mathematical. Do you like solving problems? Did you successfully dress yourself today?
Did you, at any stage in the past month, run across an unfamiliar door handle and find yourself able to open it, based on applying previous principles, to the extent that you successfully traversed the door? Congratulations, human, you have the requisite skills to solve problems. Programming can give you a set of tools to apply that skill to bigger problems, for your own enjoyment or to the benefit of more people.
Road to Intensive Teaching: Post 1
Posted: November 2, 2012 Filed under: Education | Tags: advocacy, authenticity, collaboration, community, curriculum, data visualisation, design, education, educational problem, educational research, Generation Why, grand challenge, higher education, in the student's head, learning, networking, principles of design, reflection, resources, student perspective, teaching, teaching approaches, thinking, tools Leave a commentI’m back on the road for intensive teaching mode again and, as always, the challenge lies in delivering 16 hours of content in a way that will stick and that will allow the students to develop and apply their understanding of the core knowledge. Make no mistake, these are keen students who have committed to being here, but it’s both warm and humid where I am and, after a long weekend of working, we’re all going to be a bit punch-drunk by Sunday.
That’s why there is going to be a heap of collaborative working, questioning, voting, discussion. That’s why there are going to be collaborative discussions of connecting machines and security. Computer Networking is a strange beast at the best of times because it’s often presented as a set of competing models and protocols, with very few actual axioms beyond “never early adopt anything because of a vendor promise” and “the only way to merge two standards is by developing another standard. Now you have three standards.”
There is a lot of serious Computer Science lurking in networking. Algorithmic efficiency is regularly considered in things like routing convergence and the nature of distributed routing protocols. Proofs of correctness abound (or at least are known about) in a variety of protocols that , every day, keep the Internet humming despite all of the dumb things that humans do. It’s good that it keeps going because the Internet is important. You, as a connected being, are probably smarter than you, disconnected. A great reach for your connectivity is almost always a good thing. (Nyancat and hate groups notwithstanding. Libraries have always contained strange and unpleasant things.)
“If I have seen further, it is by standing on the shoulders of giants” (Newton, quoting Bernard of Chartres) – the Internet brings the giants to you at a speed and a range that dwarfs anything we have achieved previously in terms of knowledge sharing. It’s not just about the connections, of course, because we are also interested in how we connect, to whom we connect and who can read what we’re sharing.
There’s a vast amount of effort going into making the networks more secure and, before you think “Great, encrypted cat pictures”, let me reassure you that every single thing that comes out of your computer could, right now, be secretly and invisibly rerouted to a malicious third party and you would never, ever know unless you were keeping a really close eye (including historical records) on your connection latency. I have colleagues who are striving to make sure that we have security protocols that will make it harder for any country to accidentally divert all of the world’s traffic through itself. That will stop one typing error on a line somewhere from bringing down the US network.
“The network” is amazing. It’s empowering. It is changing the way that people think and live, mostly for the better in my opinion. It is harder to ignore the rest of the world or the people who are not like you, when you can see them, talk to them and hear their stories all day, every day. The Internet is a small but exploding universe of the products of people and, increasingly, the products of the products of people.
Computer Networking is really, really important for us in the 21st Century. Regrettably, the basics can be a bit dull, which is why I’m looking to restructure this course to look at interesting problems, which drives the need for comprehensive solutions. In the classroom, we talk about protocols and can experiment with them, but even when we have full labs to practise this, we don’t see the cosmos above, we see the reality below.
Nobody is interested in the compaction issues of mud until they need to build a bridge or a road. That’s actually very sensible because we can’t know everything – even Sherlock Holmes had his blind spots because he had to focus on what he considered to be important. If I give the students good reasons, a grand framing, a grand challenge if you will, then all of the clicking, prodding, thinking and protocol examination suddenly has a purpose. If I get it really right, then I’ll have difficulty getting them out of the classroom on Sunday afternoon.
Fingers crossed!
(Who am I kidding? My fingers have an in-built crossover!)
I am a potato – heading towards caramelisation. (Programming Language Threshold Concepts Part II)
Posted: October 28, 2012 Filed under: Education | Tags: curriculum, design, education, educational problem, educational research, feedback, Generation Why, higher education, in the student's head, learning, measurement, principles of design, reflection, resources, student perspective, teaching, teaching approaches, thinking, threshold concepts, tools Leave a commentFollowing up on yesterday’s discussion of some of the chapters in “Threshold Concepts Within the Disciplines”, I finished by talking about Flanagan and Smith’s thoughts on the linguistic issues in learning computer programming. This led me to the theory of markedness, a useful way to think about some of the syntactic structures that we see in computer programs. Let me introduce the concept of markedness with an example. Consider the pair of opposing concepts big/small. If you ask how ‘big’ something is, then you’re not actually assuming that the thing you’re asking about is ‘big’, you’re asking about its size. However, ask someone how ‘small’ something is and there’s a presumption that it’s actually small (most of the time). The same thing happens for old/young. Asking someone how old they are, bad jokes aside, is not implying that they are old – the word “old” here is standing in for the concept of age. This is an example of markedness in the relationship between lexical opposites: the assumed meaning (the default) is referred to as the unmarked form, where the marked form is more restrictive (in that it doesn’t subsume both concepts) and it is generally not the default. You see this in gender and plural forms too. In Lions/Lionesses, Lions is an unmarked form because it’s the default and it doesn’t exclude the Lionesses, whereas Lionesses would not be the general form used (for whatever reasons, good or bad) and excludes the male lions.
Why is this important for programming languages? Because we often have syntactic elements (the structures and the tokens that we type) that take the form of opposing concepts where one is the default, and hence unmarked, form. Many modern languages employ object-oriented programming practices (itself a threshold concept) that allow programmers to specify how the data that they define inside their programs is going to be used, even within that program. These practices include the ability to set access controls, that strictly define how you can use your code, how other pieces of code that you write can use your code, and how other people’s code can use it, as well. The fundamental access control pairs are public and private, one of which says anyone can use this piece of code to calculate things or can change this value, the other restricts such use or change to the owner. In the Java programming language, public dominates, by far, and can be considered unmarked. Private, however, changes the way that you can work with your own code and it’s easy for students to get this wrong. (To make it more confusing, there is another type of access control that sits effectively between public and private, which is an even more cognitively complex concept and is probably the least well understood of the lot!) One of the issues with any programming language is that deviating from the default requires you to understand what you are doing because you are having to type more, think more and understand more of the implications of your actions.
However, it gets harder, because we sometimes have marked/unmarked pairs where the unmarked element is completely invisible. If we didn’t have the need to describe how people could use our code then we wouldn’t need the access modifiers – the absence of public, private or protected wouldn’t signify anything. There are some implicit modes of operation in programming languages that can be overridden with keywords but the introduction of these keywords just doesn’t illustrate a positive/negative asymmetry (as with big/small or private/public), these illustrate an asymmetry between “something” and “nothing”. Now, the presence of a specific and marked keyword makes it glaringly obvious that there has been an invisible assumption sitting in that spot the whole time.
One of these troublesome word/nothing pairs is found in several languages and consists of the keyword static, with no matching keyword. What do you think the opposite (and pair) of static is? If you’re like most humans, you’d think dynamic. However, not only is this not what this keyword actually means but there is no dynamic keyword that balances it. Let’s look at this in Java:
public static void main(String [] args) {...}
public static int numberOfObjects(int theFirst) {...}
public int getValues() {...}
You’ll see that static keyword twice.Where static isn’t used, however, there’s nothing at all, and this (by its absence) also has a definite meaning and this defines what the default expectation is of behaviour in the Java programming language. From a teaching perspective, this means that we now have a default context, with a separation between those tokens and concepts that are marked and unmarked, and it becomes easier to see why students will struggle with instance methods and fields (which is what we call things without static) if we start with static, and struggle with the concept of static if we start the other way around! What further complicates is this is that every single program we write must contain at least one static method, because it is the starting point for the program’s execution. Even if you don’t want to talk about static yet, you must use it anyway (unless you want to provide the students with some skeleton code or a harness that removes this – but now we’ve put the wizard behind the curtain even more).
One other point I found very interesting in Flanagan and Smith’s chapter was the discussion of barriers and traps in programming languages, from Thimbleby’s critique of Java (1999). Barriers are the limitations on expressiveness that mean that what you want to say in a programming language can only be said in a certain way or in a certain place – which limits how we can explain the language and therefore affects learnability. As students tend to write their lines of code as and when they think of them, at least initially, these barriers will lead the students to make errors because they haven’t developed the locally valid computational idiom. I could ask for food in German as “please two pieces ham thick tasty” and, while I’ll get some looks, I’ll also get ham. Students hitting a barrier get confusing error messages that are given back to them at a time when they barely have enough framework to understand what these messages mean, let alone how to fix them. No ham for them!
Traps are unknown and unexpected problems, such as those caused by not using the right way to compare two things in a program. In short, it is possible in many programming languages to ask “does this equal that” and return an answer of true or false that does not depend upon the values of this or that, but where they are being stored in memory. This is a trap. It is confusing for the novice to try to work out why the program is telling her that two containers that have the value “3” in them are not the same because they are duplicates rather than aliases for the same entity. These traps can seriously trip someone up as they attempt to form a correct mental model and, in the worst case, can lead to magical or cargo-cult thinking once again. (This is not helped by languages that, despite saying that they will take such-and-such an action, take actions that further undermine consistent mental models without being obvious about it. Sekrit Java String munging, I’m looking at you.)
This way of thinking about languages is of great interest to me because, instead of talking about usability in an abstract sense, we are now discussing concrete benefits and deficiencies in the language. Is it heavily restrictive on what goes where, such as Pascal’s pre-declaration of variables or Java’s package import restrictions? Does the language have a large number on unbalanced marked/unmarked pairs where one of them is invisible and possibly counterintuitive, such as static? Is it easy to turn a simple English statement into a programmatic equivalent that does not do what was expected?
The authors suggested ways to dealing with this, including teaching students about formal grammars for programming languages – effectively treating this as learning a new language because the grammar, syntax and semantics are very, very different from English.(Suggestions included Wittgenstein’s Sprachspiel, language game, which will be a post for another time.) Another approach is to start from logic and then work forwards, turning this into forms that will then match the programming languages and giving us a Rosetta stone between English speakers and program speakers.
I have found the whole book very interesting so far and, obviously, so too this chapter. Identifying the problems and their locations, regrettably, is only the starting point. Now I have to think about ways to overcome this, building on what these and other authors have already written.
Imagine that you are a raw potato…
Posted: October 27, 2012 Filed under: Education | Tags: community, design, education, educational research, feedback, Generation Why, higher education, in the student's head, principles of design, resources, student perspective, teaching, teaching approaches, thinking, threshold concepts, tools Leave a commentThe words in the title of this post, surprisingly, are the first words in the Editors’ Preface to Land, Meyer and Smiths 2008 edited book “Threshold Concepts within the Disciplines”. Our group has been looking at the penetration of certain ideas through the discipline, examining how much the theory social constructivism accompanies the practice of group work for example, or, as in this case, seeing how many people identify threshold concepts in what they are trying to teach. Everyone who teaches first year Computer Science knows that some ideas seem to be sticking points and Meyer and Land’s two papers on “Threshold Concepts and Troublesome Knowledge” (2003 and 2005) provide a way of describing these sticking points by characterising why these particular aspects are hard – but also by identifying the benefits when someone actually gets it.
Threshold concept theory, in the words of Cousin, identifies the “the kind of complicated learner transitions learners undergo” and identifies portals that change the way that you think about a given discipline. This is deeply related to our goal of “Thinking as a discipline practitioner” because we must assume that a sound practitioner has passed through these portals and has transformed the way that they think in order to be able to practice correctly. Put simply, being a mathematician is more than plugging numbers into formulae.
As you can read, and I’ve mentioned in a previous post, threshold concepts are transformative, integrative, irreversible and (unfortunately) troublesome. Once you have passed through the hurdle then a new vista opens up before you but, my goodness, sometimes that’s a steep hurdle and, unsurprisingly, this is where many students fall.
The potato example in the preface describes the irreversible chemical process of cooking and how the way that we can use the potato changes at each stage. Potatoes, thankfully unaware, have no idea of what is going on nor can they oscillate on their pathway to transformation. Students, especially in the presence of the challenging, can and do oscillate on their transformational road. Anyone who teaches has seen this where we make great strides on one day and, the next, some of the progress ebbs away because a student has fallen back to a previous way of thinking. However, once we have really got the new concept to stick, then we can move forward on the basis of the new knowledge.
Threshold concepts can also be thought of as marking the boundary of areas within a discipline and, in this regard, have special interest to teachers and learners alike. Being able to subdivide knowledge into smaller sections to develop mastery that then allows further development makes the learning process easier to stage and scaffold. However, the looming and alien nature of the portal between sections introduces a range of problems that will apply to many of our students, so we have to ready to assist at these key points.
The book then provides a collection of chapters that discuss how these threshold concepts manifest inside different disciplines and in what forms the alien and troublesome nature can appear. It’s unsurprising again, for anyone teaching Computer Science or programming, that there are a large number of fundamental concepts in programming that are considered threshold concepts. These include the notion of program state, the collection of data that describes the information within a program. While state is an everyday concept (the light is on, the lift is on level 4), the concentration on state, the limitations and implications of manipulation and the new context raise this banal and everyday concepts into the threshold area. A large number of students can happily tell you which floor the lift is on, but cannot associate this physical state with the corresponding programmatic state in their own code.
Until students master some of these concepts, their questions will always appear facile, potentially ill-formed and (regrettably) may be interpreted as lazy. Flanagan and Smith raise an interesting point in that programming languages, which are written in pseudo-English with a precise but alien grammar, may be leading a linguistic problem, where the translation to a comprehensible form is one of the first threshold concepts that a student faces. As an example, consider this simple English set of instructions:
There are 10 apples in the basket. Take each apple out of the basket, polish it, and place it in the sink.
Now let’s look at what the ‘take each apple’ instruction looks like in the C programming language.
for (int i = 0; i < numberOfApples; i++) {
// commands here
}
This is second nature to me to read but a number of you have just looked at that and gone ‘huh’? If you don’t learn what each piece does, understand its importance and can then actually produce it when asked then the risk is that you will just reproduce this template whenever I ask you to count apples. However, there are two situations that humans understand readily: “do something so many times” and “do something UNTIL something happens”. In programs we write these two cases differently – but it’s a linguistic distinction that, from Flanagan and Smith’s work “From Playing to Understanding”, correlates quite well with an ability to pick the more appropriate way of writing the program. If the language itself is the threshold, and for some students it certainly appears that it is, then we are not even able to assume that the students will reach the first stage of ‘local thresholds’ found within the subdomain itself, they are stuck on the outside reading a menu in a foreign language trying to work out if it says “this way to the toilet”.
Such linguistic thresholds will make students appear very, very slow and this is a problem. If you ask a student a question and the words make no sense in the way that you’re presenting them, then they will either not respond (if they have a choice) as they don’t know what you asked, they will answer a different question (by taking a stab at the meaning) or they will ask you what you mean. If someone asks you what you mean when, to you, the problem is very simple, we run the risk of throwing up a barrier between teacher and learner, the teacher assuming that the learner is stupid or lazy, the student assuming that the teacher either doesn’t know what they’re saying or doesn’t care about them.
I’ll write more on the implications of all of this tomorrow.
Heading to SIGCSE!
Posted: October 25, 2012 Filed under: Education | Tags: authenticity, blogging, community, education, educational research, higher education, reflection, resources, sigcse, teaching approaches, time banking, tools, universal principles of design, workload Leave a commentI’m pretty snowed under for the rest of the week and, while I dig myself out of a giant pile of papers on teaching first year programmers (apparently it’s harder than throwing Cay’s book at them and yelling “LEARN!”), I thought I’d talk about some of the things that are going on in our Computer Science Education Research Group. The first thing to mention is, of course, the group is still pretty new – it’s not quite “new car smell” territory but we are certainly still finding out exactly which direction we’re going to take and, while that’s exciting, it also makes for bitten fingernails at paper acceptance notification time.
We submitted a number of papers to SIGCSE and a special session on Contributing Student Pedagogy and collaboration, following up on our multi-year study on this and Computer Science Education paper. One of the papers and the special session have been accepted, which is fantastic news for the group. Two other papers weren’t accepted. While one was a slightly unfortunate near-miss (but very well done, lead author who shall remain nameless [LAWSRN]), the other was a crowd splitter. The feedback on both was excellent and it’s given me a lot to think about, as I was lead on the paper that really didn’t meet the bar. As always, it’s a juggling act to work out what to put into a paper in order to support the argument to someone outside the group and, in hindsight quite rightly, the reviewers thought that I’d missed the mark and needed to try a different tack. However, with one exception, the reviewers thought that there was something there worth pursuing and that is, really, such an important piece of knowledge that it justifies the price of admission.
Yes, I’d have preferred to have got it right first time but the argument is crucial here and I know that I’m proposing something that is a little unorthodox. The messenger has to be able to deliver the message. Marathons are not about messengers who run three steps and drop dead before they did anything useful!
The acceptances are great news for the group and will help to shape what we do for the next 12-18 months. We also now have some papers that, with some improvement, can be sent to another appropriate conference. I always tell my students that academic writing is almost never wasted because if it’s not used here, or published there, the least that you can learn is not to write like that or not about that topic. Usually, however, rewriting and reevaluation makes work stronger and more likely to find a place where you can share it with the world.
We’re already planning follow-up studies in November on some of the work that will be published at SIGCSE and the nature of our investigations are to try and turn our findings into practically applicable steps that any teacher can take to improve participation and knowledge transfer. These are just some of the useful ideas that we hope to have ready for March but we’ll see how much we get done. As always. We’re coming up to the busy end of semester with final marking, exams and all of that, as well as the descent into admin madness as we lose the excuse of “hey, I’d love to do that but I’m teaching.” I have to make sure that I wrestle enough research time into my calendar to pursue some of the exciting work that we have planned.
I look forward to seeing some of you in Colorado in March to talk about how it went!
Students and Programming: A stroll through the archives in the contemplation of self-regulation.
Posted: October 23, 2012 Filed under: Education | Tags: community, education, educational problem, educational research, higher education, in the student's head, measurement, resources, sigcse, teaching, teaching approaches, thinking, time banking, universal principles of design Leave a commentI’ve been digging back into the foundations of Computer Science Education to develop some more breadth in the area and trying to fill in some of the reading holes that have developed as I’ve chased certain ideas forward. I’ve been looking at Maye’s “Psychology of How Novices Learn Computer Programming” from 1981, following it forward to a number of papers including McCracken (Chair) et al’s “A multi-national, multi-institutional study of assessment of programming skills of first-year CS students”. Among the many interesting items presented in this paper was a measure of Degree of Closeness (DoC): a quantification of how close the student had come to providing a correct solution, assessed on their source code. The DoC is rated on a five-point scale, with 1 being the furthest from a correct solution. These “DoC 1” students are of a great deal of interest to me because they include those students who submitted nothing – possible evidence of disengagement or just the student being overwhelmed. In fact the DoC 1 students were classified into three types:
- Type 1: The student handed up an empty file.
- Type 2: The student’s work showed no evidence of a plan.
- Type 3: The student appeared to have a plan but didn’t carry it out.
Why did the students do something without a plan? The authors hypothesise that the student may have been following a heuristic approach, doing what they could, until they could go no further. Type 3 was further subdivided into 3a (the student had a good plan or structure) and 3b (the student had a poor plan or structure). All of these, however, have one thing in common and that is that they can indicate a lack of resource organisation, which may be identified as a shortfall in metacognition. On reflection, however, many of these students blamed external factors for their problems. The Type 1 students blamed the time that they had to undertake the task, the lab machines, their lack of familiarity with the language. The DoC 5 students (from the same school) described their difficulties in terms of the process of creating a solution. Other comments from DoC 1 and 2 students included information such as insufficient time, students “not being good” at whatever this question was asking and, in one case, “Too cold environment, problem was too hard.” The most frequent complaint among the low performing students was that they had not had enough time, the presumption being that, had enough time been available, a solution was possible. Combine this with the students who handed up nothing or had no plan and we must start to question this assertion. (It is worth noting that some low-performing students had taken this test as their first ever solo lab-based examination so we cannot just dismiss all of these comments!)
The paper discusses a lot more and is rather critical of its own procedure (perhaps the time pressure was too high, the specifications a little cluttered, highly procedural rather than OO) and I would not argue with the authors on any of this but, from my perspective, I am zooming in on the issue of time because, if you’ve read any of my stuff before, you’ll know that I am working in self-regulation and time management. I look at the Types of DoC 1 students and I can see exactly what I saw in my own student timeliness data and reflection reports: a lack of ability to organise resources. This is now, apparently, combined with a persistent belief that fixing this was beyond the student’s control. It’s unsurprising that handing up nothing suddenly became a valid option.
The null submission could be a clear indicator of organisational ability, where the student can’t muster any kind of solution to the problem at all. Not one line of code or approximate solution. What is puzzling about this is that the activity was, in fact, heavily scheduled. Students sat in a lab and undertook it. There was no other task for them to perform except to do this code in either 1 or 1.5 hours. To not do anything at all may be a reaction to time pressure (as the authors raised) or it could be complete ignorance of how to solve the problem. There’s too much uncertainty here for me to say much more about this.
The “no plan” solution can likely be explained by the heuristic focus and I’ve certainly seen evidence of it. One of the most unforgiving aspects of the heuristic solution is that, without a design, it is easy to end up in a place where you are running out of time and have no idea of where to go to solve unforeseen problems that have arisen. These students are the ones who I would expect to start the last day that something is due and throw together a solution, working later and panicking more as they realised that their code wasn’t working. Having done a bit here and a piece there, they may cobble something together and hand it up but it is unlikely to work and is never robust.
The “I planned it but I couldn’t do it” group fall heavily into the problem space of self-regulation, because they had managed to organise their resources – so why didn’t anything come out? Did they procrastinate? Was their meta-planning process deficient, in that they spent most of their time perfecting a plan and not leaving enough time to make it happen? I have a number of students who have a tendency to go down the rabbit hole when chasing design issues and I sometimes have to reach down, grab them by the ears and haul them out. The reality of time constraints is that you have to work out what you can do and then do as much as you can with that time.
This is fascinating because I’m really trying to work out at which point students will give up and DoC 1 basically amounts to an “I didn’t manage it” mark in my local system. I have data that shows the marks students get from automated marking (immediate assessment) so I can look to see how long people will try to get above what (effectively) would be above DoC 1, and probably up around DoC 3. (The paper defines DoC 3 as “In reading the source code, the outline of a viable solution was apparent, including meaningful comments, stub code, or a good start on the code.” This would be enough to meet our assessment requirements although the mark wouldn’t be great.) DoC 1 would, I suspect, amount to “no submission” in many cases so my DoC 1 students are those who stayed enrolled (and sat the exam) but never created a repository or submission. (There are so many degrees of disengagement!)
I, of course, now have to move further forward along this paper line and I will hopefully intersect with my ‘contemporary’ reading into student programming activity. I will be reading pretty solidly on all of this for the upcoming months as we try to refine the time management and self-regulation strategies that we’ll be employing next year.
Polymaths, Philomaths and Teaching Philosophy: Why we can’t have the first without the second, and the second should be the goal of the third.
Posted: October 22, 2012 Filed under: Education | Tags: advocacy, authenticity, collaboration, community, education, educational problem, ethics, Generation Why, higher education, philosophy, principles of design, reflection, resources, teaching, teaching approaches, thinking, tools, universal principles of design, vygotsky 1 CommentYou may have heard the term polymath, a person who possesses knowledge across multiple fields, or if you’re particularly unlucky, you’ve been at one of those cocktail parties where someone hands you a business card that says, simply, “Firstname Surname, Polymath” and you have formed a very interesting idea of what a polymath is. We normally reserve this term for people who excel across multiple fields such as, to drawn examples from this Harvard Business Review blog by Kyle Wiens, Leonard da Vinci (artist and inventor), Benjamin Franklin, Paul Robeson or Steve Jobs. (Let me start to address the article’s gender imbalance with Hypatia of Alexandria, Natalie Portman, Maya Angelou and Mayim Bialik, to name a small group of multidisciplinary women, admittedly focussing on the Erdös-Bacon intersection.) By focusing on those who excel, we do automatically associate a higher degree of assumed depth of knowledge across these multiple fields. The term “Renaissance [person]” is often bandied about as well.

Da Vinci, seen here inventing the cell phone. Sadly, it was to be over 500 years before the cell phone tower was invented so he never received a call. His monthly bill was still enormous.
Now, I have worked as a system administrator and programmer, a winemaker and I’m now an academic in Computer Science, being slowly migrated into some aspects of managerialism, who hopes shortly to start a PhD in Creative Writing. Do I consider myself to be a polymath? No, absolutely not, and I struggle to think of anyone who would think of me that way, either. I have a lot of interests but, while I have had different areas of expertise over the years, I’ve never managed the assumed highly parallel nature of expertise that would be required to be considered a polymath, of any standing. I have academic recognition of some of these interests but this changes neither the value (to me or others) nor has it ever been required to be well-lettered to be in the group mentioned above.
I describe myself, if I have to, as a philomath, someone who is a lover of learning. (For both of the words, the math suffix comes from the Greek and means to learn, but poly means much/many and philo means loving, so a polymath is ‘many learnéd’.) The immediate pejorative for someone who leans lots of things across areas is the infamous “Jack of all trades” and its companion “master of none”. I love to learn new things, I like studying but I also like applying it. I am confident that the time I spent in each discipline was valuable and that I knew my stuff. However, the main point I’d like to state here is that you cannot be a polymath without first having been a philomath – I don’t see how you can develop good depth in many areas unless you have a genuine love of learning. So every polymath was first a philomath.
Now let’s talk about my students. If they are at all interested in anything I’m teaching them, and let’s assume that at least some of them love various parts of a course at some stage, then they are looking to develop more knowledge in one area of learning. However, looking at my students as mono-cultural beings who only exist when they are studying, say, the use of the linked list in programming, is to sell them very, very short indeed. My students love doing a wide range of things. Yes, those who love learning in my higher educational context will probably do better but I guarantee you that every single student you have loves doing something, and most likely that’s more than one thing! So every single one of my students is inherently a philomath – but the problems arise when what they love to learn is not what I want to teach!
This leads me to the philosophy of learning and teaching, how we frame, study and solve the problems of trying to construct knowledge and transform it to allow its successful transfer to other people, as well as how we prepare students to receive, use and develop it. It makes sense that the state that we wish to develop on our students is philomathy. Students are already learning from, interested and loving their lives and the important affairs of the world as they see them, so to get them interested in what we want to teach them requires us to acknowledge that we are only one part of their lives. I rarely meet a student who cannot provide a deep, accurate and informative discourse on something in their lives. If we accept this then, rather than demanding an unnatural automaton who rewrites their entire being to only accept our words on some sort of diabolical Turing Tape of compliance, we now have a much easier path, in some respects, because accepting this means that our students will spend time on something in the depth that we want – it is now a matter of finding out how to tap into this. At this point, the yellow rag of populism is often raised, unfairly in most cases, because it is assumed that students will only study things which are ‘pop’ or ‘easy’. There is nothing ‘easy’ about most of the pastimes at which our students excel and they will expend vast amount of efforts on tasks if they can see a clear reason to do so, it appears to be a fair return on investment, and they feel that they have reasonable autonomy in the process. Most of my students work harder for themselves than they ever will for me: all I do is provide a framework that allows them to achieve something and this, in turn, allows them to develop a love. Once the love has been generated, the philomathic wheel turns and knowledge (most of the time) develops.
Whether you agree on the nature of the tasks or not, I hope that you can see why the love of learning should be a core focus of our philosophy. Our students should engage because they want to and not just because we force them to do so. Only one of these approaches will persist when you remove the rewards and the punishments and, while Skinner may disagree, we appear to be more than rats, especially when we engage our delightfully odd brains to try and solve tasks that are not simply rote learned. Inspiring the love of learning in any one of our disciplines puts a student on the philomathic path but this requires us to accept that their love of learning may have manifested in many other areas, that may be confusedly described as without worth, and that all we are doing is to try and get them to bring their love to something that will be of benefit to them in their studies and, assuming we’ve set the course up correctly, their lives in our profession.
Sources of Knowledge: Stickiness and the Chasm Between Theory and Practice.
Posted: October 21, 2012 Filed under: Education | Tags: blogging, collaboration, design, education, educational research, higher education, in the student's head, principles of design, reflection, resources, student perspective, teaching, teaching approaches, thinking, tools, universal principles of design, vygotsky Leave a commentMy head is still full of my current crop of research papers and, while I can’t go into details, I can discuss something that I’m noticing more and more as I read into the area of Computer Science Education. Firstly, how much I have left to learn and, secondly, how difficult it is sometimes to track down ideas and establish novelty, provenance and worth. I read Mark Guzdial’s blog a lot because Mark has spent a lot of time being very clever in this area (Sorry, Mark, it’s true) but he is also an excellent connecter of the reader to good sources of information, as well as reminding us when something pops up that is effectively a rehash of an old idea. This level of knowledge and ability to discuss ideas is handy when we keep seeing some of the same old ideas pop up, from one source or another, over time. I’ve spoken before about how the development of the mass-accessible library didn’t end the importance of the University or school, and Mark makes a similar note in a recent post on MOOCs when he points us to an article on mail delivery lessons from a hundred years before and how this didn’t lead to the dissolution of the education system. Face-to-face continues to be important, as do bricks and mortar, so while the MOOC is a fascinating new tool and methodology with great promise, the predicted demise of the school and college may (once again) turn out to be premature.
If you’ve read Malcolm Gladwell’s “The Tipping Point”, you’ll be familiar with the notion that ideas need to have certain characteristics, and certain human agents, before they become truly persuasive and widely adopted. If you’ve read Dawkin’s “Selfish Gene” (published over a decade before) then you’ll understand that Gladwell’s book would be stronger if it recognised a debt to Dawkins’ coining of the term meme, for self-replicating beliefs and behaviours. Gladwell’s book, as a source, is a fairly unscientific restatement of some existing ideas with a useful narrative structure, despite depending on some now questionable case studies. In many ways, it is an example of itself because Gladwell turned existing published information into a form where, with his own additions, he has identified a useful way to discuss certain systems of behaviour. Better still, people do (still) read it.
(A quick use of Google Trends shows me that people search for “The Tipping Point” roughly twice as much as “The Selfish Gene” but for “Richard Dawkins” twice as much as “Malcolm Gladwell”. Given Dawkins’ very high profile in belligerent atheism, this is not overly surprising.)
Gladwell identified the following three rules of epidemics (in terms of the spread of ideas):
- The Law of the Few: There are a small group of people who make a big difference to the proliferation of an idea. The mavens accumulate knowledge and know a lot about the area. The connectors are the gregarious and sociable people who know a lot of other people and, in Gladwell’s words, “have a gift for bringing the word together”. The final type of people are salespeople or (more palatably) persuaders, the people who convince us that something is a good idea. Gladwell’s thesis is that it is not just about the message, but that the messenger matters.
- The Stickiness Factor: Ideas have to be memorable in order to spread effectively so there is something about the specific content of the message that will determine its impact. Content matters.
- The Power of Context: We are all heavily influenced by and sensitive to our environment. Context matters.
Dawkins’ meme is a very sticky idea and, while there’s a lot of discussion about the Selfish Gene, we now have the field of memetics and the fact that the word ‘meme’ is used (almost correctly) thousands, if not millions, of times a day. Every time that you’ve seen a prawn running on a treadmill while Yakity Sax plays, you can think of Richard Dawkins and thank him for giving you a word to describe this.
My early impressions of some of the problem with the representation of earlier ideas in CS Ed, as if they are new, makes me wonder if there is a fundamental problem with the stickiness of some of these ideas. I would argue that the most successful educational researchers, and I’ve had the privilege to see some of them, are in fact strong combinations of Gladwell’s few. Academics must be, by definition, mavens, information specialists in our domains. We must be able to reach out to our communities and spread our knowledge – is this enough for us to be called connectors? We have to survive peer review, formal discussions and criticism and we have to be able to argue our ideas, on the reasonable understanding that it is our ideas and not ourselves that is potentially at fault. Does this also make us persuaders? If we can find all of these “few” in our community, and we already a community of the few, where does it leave us in terms of explaining why we, in at least some areas, keep rehashing the same old ideas. Do we fail to appreciate the context of those colleagues we seek to reach or are our ideas just not sticky enough? (Context is crucial here, in my opinion, because it is very easy to to explain a new idea in a way that effectively says “You’ve been doing it wrong all these years. Now fix it or you’re a bad person.” This is going to create a hostile environment. Once again, context matters but this time it is in terms of establishing context.)
I wonder if this is compounded in Computer Science by the ability to separate theory from practice, and to draw in new practice from both an educational research focus and an industrial focus? To explain why teamwork actually works, we move into social constructivism and to Vygotsky, via Ben-Ari in many cases, Bandura, cognitive apprenticeship – that’s an educational research focus. To say that teamwork works, because we’ve got some good results from industry and we’re supported by figures such as Brooks, Boehm and Humphrey and their case studies in large-scale development – that’s an industrial focus. The practice of teamwork is sticky, that ship has sailed in software development, but does the stickiness of the practice transfer to the stickiness of the underlying why? The answer, I believe, is ‘no’ and I’m beginning to wonder if a very sticky “what” is actually acting against the stickiness of the “why”. Why ask “why?” when you know that it works? This seems to be a running together of the importance of stickiness and the environment of the CS Ed researcher as a theoretical educationalist, working in a field that has a strong industrial focus, with practitioner feedback and accreditation demands pushing a large stream of “what do to”.
It has been a thoughtful week and, once again, I admit my novice status here. Is this the real problem? If so, how can we fix it?
Making Time For Students
Posted: October 20, 2012 Filed under: Education | Tags: education, higher education, measurement, resources, student perspective, teaching, teaching approaches, thinking, tools, workload 1 CommentI was reminded of my slightly overloaded calendar today as students came and went throughout the day, I raced in and out of project meetings and RV and I worked on some papers that we’re trying to get together for an upcoming submission date in the next few months. I wish I could talk about the research but, given that it will all have to go into peer review and some of the people reading this may end up being on those panels, it will all have to wait until we get accepted or it comes back on fire with a note written in blood saying “Don’t call us…”
For those following the Australian Research scene, you might know that the Australian Federal Government had put a hold on releasing information on key research funding schemes and that this has led to uncertainty for those people whose salaries are paid by research grants. Why is this important in a learning and teaching blog? Because the majority of Higher Education academics are involved in research, teaching and administration but it’s not too much of a generalisation to say that those who are the most successful have substantial help on the research front from well-established groups and staff who are paid to do research full-time.
Right now, as I write this, our postdoc (RV) is reviewing the terminology of certain aspects of the discipline to allow us to continue our research. RV is running citation analyses, digging through papers, peering at my scrawl on the whiteboard and providing a vital aspect to the project: uninterrupted dedication to the research question. I’m seeing students, holding meetings, dealing with technical problems, worrying about my own grants, preparing for a new course roll-out on Monday… and writing this. RV’s role is rapidly becoming critical to my ability to work.
There are thousands of dedicated researchers like RV across Australia and it is easy to quantify their contribution to research, but easy to overlook their implicit benefit in terms of learning and teaching. Every senior academic who is involved in research and teaching will most likely only still be teaching because they someone to carry on the research and maintain the focus and continuity that only comes from having one major area to work on.
I think of it in terms of gearing. When I’m talking to other researchers, I use one set of mental gears. Inside my own group, I use another because we are all much more closely aligned. I use a completely different set when I talk to students and this set varies by year level, course and student! Making time for students is not just a case of having an hour in my calendar. Making time for students is a matter of making the mental space for a discussion that will be at the appropriate level. It’s having enough time to have a chat rather than a rapid-fire exchange. I don’t always succeed at this because far too many of my students apologise to me for taking up my time. Argh! My time is student time! It’s what I get a good 40% of my salary for! (Not that we’re counting. Like most academics, when asked what percentage of my time I spent on the three areas of research, teaching and admin, I say 50,50,40. 🙂 )
Now I am not, by any means, a senior academic and I am very early on in this process, so you can imagine how important those research staff are going to be in keeping projects going for senior staff who are having to make those gear changes at a very rapid speed across much larger domains. Knowledge workers need the time and headspace to think and switching context takes up valuable time, as well as tiring you out if you do it often enough.
On that basis, the recent news that the Government is unfreezing the medical research schemes and at least some of the major awards for everyone else is good news. My own grant in this area is highly unlikely to get up – my relief is not actually for myself, here – but we are already worried about an increased rate of departure for those researchers who are concerned about having a job next year and are, because of their skills and experience, highly mobile. The impact of these people leaving will not just be felt in terms of research output, which has a multi-year lag, but will be felt immediately wherever learning and teaching depended upon someone having the time and mental space to do it, because they had a member of the research staff supporting their other work. Universities are a complex ecosystem and there are very important connections between staff in different areas and areas of focus that are not immediately apparent when you make the simplistic distinction of staff (professional and academic) and, for academics, research/teaching/admin, research/admin, teaching/admin, pure research and pure teaching. The number of courses that I have to teach depends upon the number of staff available to teach, as well as the number of courses and students, and the number of staff (or their available hours) is directly affected by the number of people who help them.
It’s good news that the research funds are starting to unfreeze because it will say to the people who are depending upon grant money that an answer is coming soon. It’s also saying to the rest of us that we can start to think about planning and allocation for 2013 with more certainty, because the monies will be coming at some point.
This, in turn, stops me having to worry about things like contingency plans, who is going to be working with me, and how I will fund research assistants into 2014 because now I have a possibility of a grant, rather than a placeholder in a frozen scheme. This reduces my current overheads (for a while) and frees up some headspace. With any luck, the next student who walks into my office will not realise exactly how busy I am – and that’s the way that I like it.
A Study in Ethics: Lance Armstrong and Why You Shouldn’t Burn Your Bracelet.
Posted: October 19, 2012 Filed under: Education | Tags: advocacy, blogging, community, education, ethics, feedback, Generation Why, higher education, in the student's head, lance armstrong, principles of design, resources, student perspective, teaching, teaching approaches, thinking 2 CommentsIf you haven’t heard about the recent USADA release of new evidence against Lance Armstrong, former star of cycling and Chairman for his own LIVESTRONG Cancer Foundation, then let me summarise it: it’s pretty damning. After reviewing this and other evidence, I have little doubt that Lance Armstrong systematically and deliberately engaged in the procurement, distribution, promotion and consumption of banned substances while he was engaged in an activity that explicitly prohibited this. I also have very little doubt that he engaged in practices, such as blood transfusion, intimidation and the manipulation of colleagues and competitors, again in a way that contravened the rules of his sport and in a way that led the sport into disrepute. The USADA report contains a lot of the missing detail, witness reports, accounts and evidence that, up until now, has allowed Lance Armstrong to maintain that delightful state of grace that is plausible deniability. He has now been banned for life, although he can appeal, his sponsors are leaving him and he has stepped down as the Chairman of his charity.
I plan to use Armstrong in my discussions of ethics over the next year for a number of reasons and this is an early musing, so it’ll be raw and I welcome discussion. Here are my initial reasons and thoughts:
- It’s general knowledge and everyone knows enough about this case to have formed an opinion. Many of the other case studies I use refer to the past or situations that are not as widely distributed.
- It’s a scenario that (either way) is easy to believe and grounded in the experience of my students.
- Lance Armstrong appears to have been making decisions that impacted his team, his competitors, his entire sport. His area of influence is large.
- There is an associated entity that is heavily linked with Lance’s personal profile, the LIVESTRONG Cancer Charity.
Points 1 and 2 allows me to talk about Lance Armstrong and have everyone say “Oh, yeah!” as opposed to other classic discussions such as Tuskegee, Monster Study, Zimbardo, etc, where I first have to explain the situation, then the scenario and they try to make people believe that this could happen! Believing that a professional sports person may have taken drugs is, in many ways, far easier to get across than complicated stories of making children stutter. Point 3 allows me to get away from thee “So what if someone decides to do X to themselves?” argument – which is a red herring anyway in a competitive situation based (even in theory) on a level playing field. Rationalisations of the actions taken by an individual do not apply when they are imposed on another group, so many of the “my right to swing my arm ends at your nose” arguments that students effectively bring up in discussing moral and ethical behaviour will not stand up against the large body of evidence that Armstrong intimidated other riders, forced their silence, and required team members to follow the same regime. I expect that we’ll still have to have the “So what if everyone dopes” argument in terms of “are people choosing?” and “what are the ethical implications if generalised?” approaches.
But it is this last theme that I really wish to explore. I read a Gawker article telling everyone to rip off their yellow wristbands and that I strongly disagree with. Lance Armstrong is, most likely, a systematic cheat who has been, and still is, lying about his ongoing cheating in order to continue as many of his activities as possible, as well as maintaining some sense of fan base. The time where he could have apologised for his actions, stood up and taken a stand, is pretty much over. Sponsors who have stood by other athletes at difficult times have left him, because the evidence is so overwhelming.
But to say that this has anything to do with LIVESTRONG is an excellent example of the Genetic Fallacy – that is, because something came from Lance Armstrong, it is now somehow automatically bad. Would I drink from a Coke he gave me? Probably not. Do I still wish his large and influential cancer charity all the success in the world? Yes, of course. LIVESTRONG gave out roughly $30,000,000 last year across its programs and that’s a good thing.
It’s a terrible shame that, for so many years, Armstrong’s work with the charity was, more than slightly cynically, used to say what a good person he was despite the allegations. (There’s a great Onion piece from a couple of years ago that now seems bizarrely prescient). Much as LIVESTRONG is not guaranteed to be bad because Armstrong is a doper, running and setting up LIVESTRONG doesn’t absolve Armstrong from actions in other spheres. A Yahoo sports article describes his charity as being used as a ‘moral cloak’, although smokescreen might be the better word. But we need to look further.
To what does LIVESTRONG owe its success? Would it be as popular and successful if Armstrong hadn’t come back from cancer (he continues to be a cancer survivor) and then hadn’t won all of those tours? Given that his success was, apparently, completely dependent upon illegal activity, aren’t we now indebted to Armstrong’s illegal activity for the millions of dollars that have gone to help people with cancer?
We can talk about moral luck, false dichotomy and false antecedent/consequent (depending on which way around you wish to frame it) in this and this leads us into all sorts of weird and wonderful discussions, from a well-known and much discussed current affairs issue. But the core is quite simple: Armstrong’s actions had a significantly negative effect upon his world but at least one of the actions that he took has had a positive outcome. Whatever his motivation and intention, the outcome is beneficial. LIVESTRONG now has a challenge to see if it is big enough to survive this reversal of fortune but this is, most definitely, not the time to burn the bracelet. Turn it around, if you want, but, until it turns out that LIVESTRONG is some sort of giant front for clubbing baby harp seals, we can’t just lump this in with the unethical actions of one man.
I was thinking about what Armstrong could do now and, while I believe that he will never be able to do many of the things that he used to do (pro cycling/speaking arrangements/public figure), we know that he is quite good at two things:
- Riding a bike
- Getting drugs into difficult places.
One of the major problems in the world is getting the right pharmaceuticals to the right people because of government issues, instability and poverty. There are probably worse things for Armstrong to do than cycle from point to point, sneaking medicine past border guards, shinning down drain pipes to provide retrovirals to the poor in the slums of a poor city and hiking miles so that someone doesn’t die today. (I know, that’s all a bit hair shirt – I’m not suggesting that seeking atonement is either required or sensible.) More seriously, the end of my ethical study in Armstrong will only be written when he works out what he wants to do next. Then my students can look at it, scratch their heads and try to work out where that now places him in terms of morality and ethics.










