I am developing an open source program which for my school project. I have done some research on it, but there are still few questions. It is a school project, it is not any advance application and I am willing to share my work.

Is that mean if I release my program with license, people will afraid to change my code because it may result in law sue?

Can I claim my product as "open source" if I don't have license, I can define some rule of it (but without law protection)?

Do i have to apply for those license (e.g. GNU), I have to submit my product code or only fulfill in a form?

As for #1: Only setting a license won't protect your program; using a restrictive license (or none at all) will prevent some people from being able to oficially reuse your code. As for #2: that's basically "making your own license", which is tricky; better pick an existing one (see e.g. this) As for #3: no application is necessary for most common licenses, just include the license in the documentation and announce it in the program somewhere (most licenses have guidelines for this).
–
PiskvorMar 11 '12 at 16:56

The first thing to do is to talk to the course professor, the department, or the university's legal department. Some universities have restrictions on what you can do with coursework. In some cases, you give up all rights to the work, meaning that you do not own it and you can not do anything with it. This varies by university, and sometimes even department. In addition to legal issues, if this is a common project, there might be academic dishonesty repercussions with releasing a project done for a course. Of course, only someone from the university can answer these questions.

Assuming that you are allowed to release your program, the next thing to do is to choose a license. If you release the code, you really should apply some license to it. This license would tell people what they can and can not do with the source code in terms of using, modifying, and redistributing (among other things). It also can release you from liabilities if the source code is used improperly and causes some kind of damage.

There are many questions here on Programmers about choosing the appropriate license, so I'm not going to go into all of your options. There are a lot out there. You should consider using one of the existing licenses rather than inventing your own. Existing licenses have been carefully written and (usually) reviewed by people with a legal background - these are things that are more likely to stand up when challenged.

Once you choose a license, you just make it obvious which one you have. Usually, this includes including a LICENSE file in your release that includes the full text of the licenses. Often, individual source files will also contain a line that identifies the copyright holder and the license under which the copyright holder has released the code.

If the school is contracting you to creating this application, then it is most likely not your call to be sharing the code.

I am assuming you are volunteering for this. A program CAN be open source as well as proprietary. There is no open-source registrar or anything like that. If you share the code, it is open source. Qt for example is open source. If you put code in a certain license like GNU and place a license file explaining the terms under which you are distributing the code, that is enough.