jepri, the story about your flatmate Eiffel rang serious bells. In my 20 years IT career, I have encountered many examples of people with this attitude set. My advice to you is to be tougher on the individual, and encourage responsibility at the same time. Make it clear that it is his computer science course and his loss if he does not want to listen to your advice (this may appear patronising to someone observing, but this method works).
in reply to Adult learning problem
I have had experience of training, mentoring and managing people in this category. There are several mistakes that are easy to make:
In terms of getting him to engage in the first place, it is worthwhile looking at the size of the problem he is working on, and whether this is too easy or hard. Get him to talk about what he feels about the problem. Apply project management theory, and encourage him to do the same. Break the task down into smaller units.
- Doing the chap's grunt work for him. Apart from losing respect, this is damaging as it re-enforces his arrogance. The best way is to say "No: you do it - or find someone else to help".
- Doing the chap's thinking for him. This is worse. This risks making him dependent on you for any cognitive processing required in problem solving.
- Appearing unapproachable. This appears to countermand the other advice here, but if you make it clear that you are willing to listen to _reasonable_ requests, you will gain respect. A successful approach here is "what would YOU do to solve this problem".
- Being too sparing on the praise when due. many people are quick to find fault, but timely praise reaps dividends. This may earn you pints of beer and lifelong friends.
Update: Interesting to see how I have miss-parsed the English phrase "teaching my flatmate Eiffel". Doh! - there was tiredness and lack of coffee creeping in, but I wonder how any future NLP bots would have coped with this one.