Open Source and School Works

April 12th, 2008 at 22:34 · Filed Under Computing, Humanity, Philosophy, Social, Software Development, Technology 

The increasing buzz about the omnipotence of Google and Open Source projects has left us wondering, what do students do with their research and course assignments today?

The Internet has become a huge reservoir of knowledge since the past two decades. The use of this knowledge has widen the gap in students thinking about traditional working environment, processes and ethics as well as their awareness of copyright laws and humanistic behavior and obligation. Unfortunately, many youngsters studying in local colleges and universities are not well aware of the pitfalls of using such information and open source projects.

With many years of software development (in both closed- and open- source) and research experience, I am able to quickly identify a genuine work or an adaptation of works from other people. I have seen many copy-and-paste work by students and even received copy-and-paste (exact copy-and-paste and adaptation) works by students applying for internship.

During a FYP judging 3 days ago, I had encountered a project which a student had adapted someone’s work as his own. With two simple questions, I established a firm “confidence” of plagiarism. The abridged story goes:

Every students are given about 6 months to complete their projects. The project can be individual or team work. This particular project which I encountered was an individual project. It’s a project management system capable of drawing and displaying gantt chart. When the student was giving his presentation, a doubt arose in me. Local undergraduate students do not have such high command of programming languages, not to mention developing a complicated software. Creating gantt chart alone is a tough process involving complex algorithm. To develop a gantt chart generating software requires extensive experience and knowledge in project management. It is impossible for this student to complete the gantt chart drawing in 6 months or less all by himself.

In fact, I already knew the project is not authentic. I could simply tell him that his project was not genuine but I did not want to humiliate him in front of the others. Furthermore, he did put in some efforts elsewhere. So I asked two questions:

  1. Do you complete this project alone? His answer, “Yes”
  2. Can your software do baseline? His answer, “What is baseline?”

Project baseline and baselining are the most fundamental and important features in project management. I am not going to explain baseline in details. You can find out what baseline is by Googling. This poor samaritan revealed himself. No further question was asked by me or the other two judges. Of course, I did not give any points to his project because I simply could not give any, even the minimum. It would not be fair to the other projects which had received minimum points from me.

This young man was not satisfied and he stayed back to ask me why and possibly to argue why he did not deserve to win the project. When he approached me, I could see in his face his dissatisfaction and disagreement with sorrow interwoven in his mixed feeling. He was obviously upset. I could sense his emotion. “What do you mean by baseline? I used C++ to program the algorithm…”, the young man asked and remarked politely. I explained to him that a project baseline is a reference to measure the progress against. Without the baseline, there is nothing to measure against your progress and hence cannot tell if the project is lagging or leading. “But.. sir, I used C++ to program my algorithm and it can calculate the progress from the parameters I entered..”, said the young man. Well, it was clear that he did not understand what I was trying to relay to him. The baseline and C++ algorithm were two different things. This reassured my conclusion.

After the group photo session, we continued our discussion. I told him it was not possible to develop a gantt chart software from scratch in just 6 months. He told me the actual time spent in development was 4 months. He used 1 month to study his project requirement and another month to learn C++. He was very new in C++ and had not even mastered the language yet. This again concluded my finding was correct. After more debate and explanation, he broke into tears and admitted that he copied some codes from the open source. I could see his tears running down and he took out a piece of tissue paper to wipe off his tears. He kept on accusing me saying he copied his project. I never did. I pitied him and at the same time I was so afraid that he would commit suicide. Hey, he is a guy, you know. A soft hearted young man, so am I a soft hearted old man!

I need to comfort him and tackle his psychology. I began counseling him.

And I said to him, “It does not matter if you win a trophy and voted the best or champion project of the year. The most important thing is how much you learn from a failure and how you manage your failure. You are managing your failure right now because you take your initiative and courage to discuss with me and you have learned a lot from our discussion. You learned what is project baseline and baselining. You learned about open source licensing and so much more about software development and ethics. Your peers who have won trophies and they went home happily. While you are staying here to have this heart breaking but meaningful discussion, while you are having the tears because you are upset, your friends could be celebrating their victory with their friends now in a restaurant or cafe. What is the difference you make between yourself and your victorious friends? Don’t be upset because you have failed. You should embrace failure. What you have done by approaching me is a correct decision. Whether your project has failed or won, you should approach the judges to do networking. I may not have an immediate job to offer you but we may collaborate in future for some software projects or business venture. That’s the social networking that you should seek while in university rather than packing your trophy and your degree and go home happily to celebrate.”

After the counseling, he began to lighten and smile. I gave him my call card. He told me he would go to Singapore after his graduation. Hopefully, he found that day enlightening. And I was happy to put a smile on his face.

A reliable resource on the Internet may not be 100% reliable and correct. For example, Wikipedia, popular among students and professionals, is not 100% free of errors and misleading information. If you find a dispute in the Wikipedia and a book, do a double (or triple) verification with people commanding authority in that field. Wikipedia is a global effort contributed to build a free and open repository of knowledge. Any professors down to any Tom Dick and Hairy on the street can contribute to Wikipedia. The site can not grant itself any credibility but the users can. If you cannot differentiate a mistake in Wikipedia, then it has no credibility at all, just as simple as it is.

In the past decade, software development and software business have undergone tremendous evolution. A group called FSF (Free Software Foundation) and many more individual software professionals around the globe have embraced open source ideas. Open source software are generally free from licensing. Its source codes are freely available. Free does not mean it has no copyright at all. Free does not mean you can do anything you want. Many open source projects and their source codes are subject to many different types of licensing. I am not going to discuss licensing issues here because I am not a legal professional. One thing I want to talk about is the open source spirit. Why do people contribute their efforts for free? Many contributors in the open source community develop software for a number of obvious reasons:

  1. To further leverage their knowledge and skill. By opening up their source codes, these people allow freedom to examine and to make improvement to their projects by many other software developers from around the world who may have better ideas and methods in solving problems.
  2. To embrace “Software is FREE!” Yes, software should be free but not the support. You can download Linux or MySQL (the most famous and popular SQL database in the world today) for free but if you require support to help you to resolve some problems, you will need to pay for professional advice or solutions. This is the model of software business in the 21st century.
  3. To create competition. Some closed source software products are actually built upon their open source cousins. A parallel development between the closed- and open- source cousins allows new ideas or technologies to be applied in the products. This encourages healthy competition in technology development and enhancement.

If you use a piece of source codes or parts from the open source, you cannot claim it as your own work like the young man did. Even if you adapt or modify the codes from the open source, you will still need to credit the original author(s) in your work. You will need to respect people’s efforts and the spirit of open source.

Comments

3 Responses to “Open Source and School Works”

  • Zhang Wei on April 12th, 2008 23:59 1

    China has a large number of open source contributors. My university, Wuhan University is actively participating in all sort of open source projects.

    I referenced and quoted hundreds of open source references in my thesis of Master. I do agree with you to respect the spirit of open source. Without it, knowledge cannot be shared and improved.

    张薇

  • Adrian Hoe on April 13th, 2008 0:05 2

    I was once actively (not exactly) in clinux.org especially under Ada category, a open source forum created by Wuhan University and the Wuhan’s LUG (Linux User Group).

    Were you in the group? I can’t really remember which year was it. But I am sure I receive emails periodically from clinux.org.

  • Adrian Hoe on April 13th, 2008 0:09 3

    I login and checked my account. I have been member for 4 years and 38 weeks.

Leave a Reply