Monday, 31 August 2009

But God loves

My reflection on the British banking system and on today's children culminates in a passage that we were reading this morning. Barclay (1975) in ending his daily commentary on Romans 3:19-26 says “the way to a right relationship with God lies, not in a frenzied, desperate, doomed attempt to win acquittal by our performance; it lies in the humble, penitent acceptance of the love and the grace which God offers us in Jesus Christ” (p 59).

God in his justice accepts us, the sinner, not as a criminal, but as a son whom he still loves. Despite what we do and the number of times that we break his heart, he continues to love us and reach out to us. We shut him out by failing to recognise his love and rejecting the forgiveness that he offers us each day. Despite all this, he continues to love.

As a grandfather, I seek that my grandchildren will come to us seeking our help to learn and grow. We know that they wont always achieve what we would like and often fail to satisfy their own goals. With learning to ride, we accept that they will fall off but we help them up and set them off again for another attempt. With console games, they get upset when beaten or they don't achieve what they wanted, you sit down with them and encourage them that they haven't achieved what they wanted this time but with practice, they will get better. When they don't do what we want or they fail to live up to our expectations, we don't reject them, we show them love and endeavour to help them understand. Hopefully, we treat them as we would like them to become offering encouragement and support.

God's relationship with us is the same. He reaches out to us by not rejecting us for what we are but seeing the potential in us to be what he desires for us. He treats us as he wants us to be so that we might learn more about him.

Reference

Barclay, W. (1975). The letter to the Romans (revised ed.). Edinburgh: The Saint Andrew Press.

Broken Heart

I have been struggling with seeing my grandchildren entertained for long periods of the day with computer games and movies. OK, there wasn't TV around when I was growing up and we had a lot of space in our backyard so we could really get out and kick balls around or race bikes around the back lawn. The problem is that I wonder what is happening to the next generation brought up on a diet of games and little opportunity to react with people.

My personal desire is to get my grandchildren out enjoying things that they can do for themselves. Inspire some creativity and enjoy what God has created. A day at a kite festival yesterday proved refreshing for all.

At the same time, I am concerned that we can put too much pressure on young children to be what we want them to be. Back on 8 August, I talked about learning and the lessons learnt. As my heart yearns to see children with a greater desire for creative, active enjoyment than for computer or game console games, I wonder about the lessons that we need to learn as grandparents and parents.

Those around us don't necessarily understand what is the inner desires of our heart. They will often disappoint us and let us down. Do we close the door on them and discipline them every time this occurs or do we try and reach out in love seeking to help them understand our pain and to try and continue to build the relationship. How much easier life would be if we could walk away every time something upset us but turning our backs on problems doesn't solve the problems nor does it help others to develop into the types of persons that we believe they should be. Nor does it help us to be the type of person that we should be.

We have to learn to love despite the pain inflicted and the lack of response that we might receive. In the process, we need to grow and adapt so that we can better respond to others and can understand more of the pain and hurt that they might be feeling. Maybe it isn't so much what is wrong with them but what is wrong with us.

I write this blog knowing that I have a great list of tasks that could keep me from spending time with the grandchildren. This happened when my children were growing up. When my children were at the same age as and a little older than my grandchildren, I was working a full time job, involved in youth ministry, trying to organise a group to support the use of computers in Christian mission, and was the secretary for a church that had just lost its pastor. At anyone time, I was doing between the equivalent of one to three full time jobs. If my wife hadn't spent most of her time focused on the children, they would have been neglected and ignored. Looking back, I regret not having taken the time to enjoy their childhood and to be with them as they grew up. Having tasks to do wasn't an excuse.

I can see the same happening with today's children. Mums and dads have busy lives. Grandparents also have things to get on with. What happens to the children and their need to be loved and guided through the developmental years. They are left to nurseries and schools to teach them with interaction from busy parents in the evening and weekends.

As I reflect, my heart breaks and I cry out for compassion and strength to show a different side and to treat today's children as I would like them to become and not as I am.

A Banking System

We have now been in England for a little over two months and we are still having problems with getting the UK banking system to work for us and not against us. Our initial slow progress was caused by working through a suitable foreign exchange arrangement but it is also slowed by the over regulated and over managed banking system.

To open a bank account in the UK, you have to have a permanent address at which you are paying for services such as power. The problem is to rent or purchase a property, you need a bank account. The way around it is to have an overseas bank vouch for your credentials which is what we did. That gave us a base from which to work. Having our daughter living here gave us a UK address so in theory, we had a head start.

However to get a better interest rate on our savings, we decided to open an Internet account with a building society. It took us a while to review the possibilities but it is nearly three weeks since we started the process of opening the account a beginning to transfer the money. The process is long winded and fill of delays each of about five working days.

The first step of the process was to submit paper work along with proof of identity. We came away from that thinking all that we needed to do was register online and we would have our account but we had to wait for the building society to send us through the post an customer number. This would take five days. Once we received that identification code, we could register online but not open the account. That required yet another snail mail notification through the postal system. Now we have that we got in and had to transfer the money (oops!! there is a limit to how much you can transfer electronically in a day – Ok! We will just spread it out over a few days and we will be right). Not quite!!! Having activated the savings account online and deposited the initial transfer, we weren't allowed to look at the account or do any transactions on it until it was unlocked by the building society. This could take up to another 5 working days.

If you have done the calculations, this is three weeks to do a simple investment. You have to ask whether these banks really want our business. We are informed that this is all about ensuring credibility and security in the system so that no one can defraud us and so we can't launder an ill gotten gains.

In effect, we are being treated as possible criminals. Should the banking system be surprised that ordinary people who in their normal daily operations wouldn't think of defrauding the system begin to do so? We are concerned that it might take a month to get our money out when we decide to buy a house. What is that going to do to the purchase process. Mind you we are told there are other issues in the purchase process that could cause a house purchase to drag out for a year or more. One has to ask whether the British system of finance is really designed to work for the customer but there again maybe they haven't heard of the customer. They have only heard of the criminal.

One philosophy argues that if you want the best from a person, you should treat them as you want them to be. As I reflect on the British banking system, I see that everyone is regarded with suspicion and is treated as a potential criminal. It is difficult to believe that the majority of 61 million people have criminal intent. There is no trust in the system and as a consequence little trust develops.

Monday, 24 August 2009

Collar Interfaces

In working on a recent programming contract, we were using test-driven development (TDD) with a mocking framework. The test calls a method of the object under test but doesn't isolate the method from the objects that it calls. This is the input interface to the class. It defines the way that we will use the object. References to objects that it uses may be passed to the object but that doesn't define the expected behaviour of these objects that the object under test is using.

Mocking requires that you consider the dependent object behaviour. The mock object creates a replacement for objects used by the object under test and defines the expected responses of that object without actually creating the object. Using the mock object, we define what method we expect the object under test to call, the parameters that we expect to be passed, and the any expected return value. The result is that we verify the operation of our object independent of other objects that it might use. As long as the authors of dependent objects agree to the interfaces and behaviours that we have tested to, we should be able to plug the objects together and have an operational system.

In effect, the combination of TDD and mocking has defines both the input (usage) interface and the dependencies interface for the object being tested. The difficulty is that the object / class doesn't carry that information with it. We have to go to our tests to determine the required behaviours.

One of the people that I interviewed for my PhD thesis (Thompson 2008) talked about how with hardware these dependencies were defined in what is called a collar interface. He suggested that a collar interface should be defined for objects. My experience with TDD and mocks suggests that a collar interface definition would really help. The mock is looking to ensure that the objects downstream dependency relationships are working as expected. With these defined as part of the collar interface, it would become easier for the programmer to write test cases for objects.

There is another aspect of using mocks. When you you test-drive development from the calls and return values, you ignore the downstream effect other than ensuring that the dependency objects are in place. If there are too many downstream dependencies then it can be difficult to set up the conditions for the test. There can also be a lot of side effects that are difficult to control.

Using a mocking framework removes the need to create all the downstream dependencies and how to simplify them. The programmer doesn't simply define the call and expected return values. In defining the mock objects, they define precisely what methods they expect to call, the parameter values that are expected on those calls, and the values to be returned. That id they have defined the complete collar interface for the method under test.

The mock expectation and return should / could be used as test drivers for the classes being mocked out. None of the tools that I have used so far do this type of verification. It in theory could generate test stubs from the mock definitions. After all, these are the behaviours that our system is expecting of the dependent objects.

Taking this thinking, it seems possible that tables of calls and expectations could be used to build tests with mocked dependencies. If the full collar interface was defined for a class, generating the tests for these dependency chains may be easier to achieve.

Reference

Thompson, E. (2008). How do they understand? Practitioner perceptions of an object-oriented program. Massey University, Palmerston North.

Saturday, 8 August 2009

Learning – Lessons learnt

Working with young children helps provide insight into learning. This blog is about lessons learnt by working with my grandchildren.

Lesson 1: Variations

In 2007, I drafted a paper in which I included some material on my grandchildren learning to distinguish between a duck and an owl. At that point, any big bird was automatically a duck. So the question was how do you help them distinguish the difference. The answer is by helping them to see the differences or variations between a duck and an owl. These differences might be in the environment or in the structure of the animal. You don't see an owl on a pond. An owl and a duck stand differently. The owl appears to be more upright. The differences in facial features and feet. All of these things help us distinguish between a duck and an owl. As we learn, we learn by increasingly recognising the variations that exist and how they make something what it is or is not.

There is a theory of learning that is related to the use of variations (variation theory) (Marton and Tsui 2003). This theory talks about the space of learning being created by the variations used in teaching. The variations define the enacted object of learning. This should relate to the teachers intended object of learning and the what the student takes away as the lived object of learning. When working with young children, the differences between the intended, the enacted, and the lived objects of learning become very visible.

Lesson 2: Learning from failure

I have had items in my collection for some time that talked about learning from failure (Dörner 1997, Gick and McGarry 1992, Ginat 2003). It has also been part of my thinking that students in learning to program, have to see some of their code fail in order to learn appropriate ways to write the code.

Over the last few weeks, I have been helping my grandchildren learn to ride a bicycle. They started on trainer wheels but now, my grandson is beginning to ride without them. Of course every now and then he rides into something or falls off but I encourage him to get up and try again. The question is can they learn to ride and in particular learn to balance without having the experience of falling off or failing to ride. Yes, there has been a struggle sometimes encouraging him to get back on but in the end, falling off is part of the learning process.

Schank (1997) talks of expectation failure. Children have this experience frequently in their learning process. My grandson expects to be able to ride without falling off and without having to think about what he is doing. He also thinks that he should always win in computer games (I will come back to this issue later). Failure can lead to giving up or it can be used to learn and to try a different approach. Without the expectation failure often nothing is really learnt. Learning and failure can go together if we can build the confidence to try again or approach the problem from a different perspective.

Lesson 3: Learning in games

This has really presented quite a challenge over the last few weeks. When our children were growing up, there was no such thing as computer games or video games. Now, my grandchildren have computer and video games all around them. They watch mum and dad winning and expect to win themselves. They don't understand that losing is as much part of the game as winning. Mum and dad don't seem to lose or if they do, they observe the protest.

I think of my own experience in playing Monopoly. One of the people that we played with insisted in any trade that he came off best. The result is that I won't have the game of Monopoly in my house. What did the game teach me? It didn't help me to learn to lose. I just wanted to escape. I wonder whether by bringing our children up playing games that reward winners and penalise losers whether we are encouraging a generation who will take the escape path.

It is difficult to encourage a child who is disappointed at losing to go on and try again. There seems to be no reward. Maybe we need games that are more a case of fostering having fun and being rewarded for encouraging and helping others.

Now that I have thought about this issue, I have decided that when I play some of these games with my grandchildren, I am going to purposely make mistakes and lose simply to encourage them and to show that I don't always succeed as well. Better still, I will look for games which they find easier to play and are less competitive in nature.

Lesson 4: Learning to serve

My major priority has been looking for employment but I have also been attempting to write research papers and do some programming (actually experimenting and testing the next version of FlashBuilder and the Flex SDK). When there are two young children in the house with expectations of being able to play often with a lot of noise and of granddad doing things with them, it can be difficult to make progress. Trying to enforce quiet behaviour isn't the solution. What really works is an adult spending time with them playing games, baking, going for walks, flying kites, … basically encouraging them to learn how to create their own fun.

As I reflect on the bringing up of my own children, I recognise that it was my wife, Marilyn who took on most of that responsibility. A classic example was planned expedition during one holiday period from our home in Onehunga up to One Tree Hill (the North Pole). The kids had to help plan the expedition. They were encouraged to be creative with the use of their time.

In this situation, we need to think carefully about our priorities. It is so easy to be caught up in our own activities and forget the needs of those around us. When those around us are young children, they don't necessarily understand that we want to get other things done. They create noise and place demands. We need to serve them and help them to build independence. We need to see that we can't play the games in front of them and then expect them not to want to play those games. We need to show constraint around them and be willing to give up some of our precious time to serve them.

There is another aspect to this learning to serve. In talking with recruiting agents and possible employers, I am often asked what I want to achieve. This is difficult because what I would really like to do is continue with my teaching and research but that isn't always possible. If I say that is what I would prefer to do then work in industry isn't a possibility. Since my research is in computing education, even lecturing and research positions in many computer science departments are not open to me.

In the end, my personal goals have to be subordinated to those of the organisation that I work for. I come as a servant seeking to offer what I can and influence what I can with the skills and knowledge that I have gained over a number of years.

But it isn't easy being the servant or having the servant attitude. There is also a need to recognise who we really serve. There are times when we need to challenge those that we work for and the systems that we work under but in general, the key attitude has to be one of service and accomplishing what is required of us. Sometimes, we have to serve in order to gain the right to have a voice.

Reference

Dörner, D. (1997). The logic of failure : recognizing and avoiding error in complex situations. Cambridge, MA: Perseus Books.

Gick, M. L., & McGarry, S. J. (1992). Learning from mistakes: Inducing analogous solution failures to a source problem produces later successes in analogical transfer. Journal of Experimental Psychology: Learning, Memory, and Cognition, 18.

Ginat, D. (2003). The greedy trap and learning from mistakes, Proceedings of the 34th technical symposium on Computer science education (pp. 11-15). Reno Nevada: ACM.

Marton, F., & Tsui, A. B. M. (Eds.). (2003). Classroom discourse and the space of learning. Mahwah, NJ; London: Lawrence Erlbaum Associates, Publishers.

Schank, R. C. (1997). Virtual learning: A revolutionary approach to building a highly skilled workforce. New York: McGraw-Hill.

Monday, 3 August 2009

God's judgement

I have already indicated that I am reluctant to link the current economic downturn with being God's judgement but on reading Leviticus 26:3-46 and Knight's (1981) comments on it, I am led to reflect that if the nations that claim to be Christian or a Christian base tot their society are not living as God's witness then as this passage indicates, they should expect to receive God's judgement.

Knight makes the statement “For the Church, the People of the New Covenant, has now been chosen to be the instrument in God's plan that every knee should bow to him, and every tongue should give him (Christ) praise (Rom 14:11). If therefore the chosen instrument of the universal paln should itself be the means of frustrating the realization of that plan, then the People of God must surely bear a curse beyond anything that natural man, as he clings to the various religious and ideologies of the world, will ever have to suffer” (p 165).

If God's word is indicating that we should be using a different economic principle to that currently in place and the modern church stands idle in proposing an alternative system then surely, we should expect to see something of God's wrath. Israel was sent into exile and the land was given its Sabbath rest. Israel had her prophets warning of the pending judgement but sadly, I don't hear any modern day prophets calling the Christian community to repent of their selfish exploitation of non-Christian nations. If the modern church is God's voice then it should be leading the way in reforming western society and building bridges to Eastern nations that find capitalism unacceptable.

My call is for Christians to re-examine God's word and to seek out what it means to operate a fair and just economic system. They should then be willing to take the steps to put in place the system that they believe God is calling them to implement.

Reference

Knight, G. A. F. (1981). Levitcus. Edinburgh: The Saint Andrew Press.