I consider a BE project more of a process where there are some steps to follow.
The first stage involves acquainting ourselves with each other and finding a
project topic.
Step 1:
Fill the Questionnaire and email it back to me.
This will help me know more about you so we can find a project topic which you
will enjoy working on. I would like to get introduced to each of the team
members- in terms of your strengths and weaknesses in the field of computer
science (i.e. what programming language are you best at, how are you
documentation skills, what other skills do you possess that distinguish
you from the other team members, where do your interests lie - in researching,
coding, designing interfaces? What are your future goals?) Basically,
having this information about each of your team members will help me with i)
distributing tasks in a manner that every student enjoys doing what they
are assigned and ii) align the tasks with your future goals. If you plan
joining a company then I will lay more stress on things that would help you in
your job. If your plan is to do MS, I would lay more stress on research.
As for my contribution, I will be working with you as an integral part of the
team, provide all resources and fill in the information gap.
Each member would be assigned separate tasks and there would be clear
distribution of work. So I just want to caution you that you cannot select a
dummy team member. I will not allow someone else to get the credit for the work
which u do. If you have other member, I would want to know what the other team
member would be doing and what are his interests and know more about him. So
each team member needs to fill out the above word file separately. Each
of the team members have varied interests and that's y I want to know each team
members skills. interests.. so that we can make best use of them. Usually its
good if the team members have different interests because the project has lot
of variety then and each of the members learn from each other. The way I work
is assign a specific task or part of the project to each team member which is
usally not dependent on the other team member part but when put together makes
a good project. Ideally, a good team has one programmer who is good at
designing at front end in VC++/delphi/C#/VB.NET. The other member should be a
good C++/ MATLAB programmer for working on the core algorithm and doing
research. Usually the 3rd student member is the bad apple and brings the morale
of the whole team down. I will be the 3rd member in the team and will be
coordinating design and making joint decisions as to which approach which
should select. You will be learning a lot about team work and will be
acquainted with the latest technologies. If none of the team members are good
at GUI design, then we will have to skip the GUI and focus on the core
algorithm. Thus its very important that I understand the strength and weakness
of the team members so I can create a project topic for you. The way usually it
works is that based on your answers in questionnaire I will select the building
blocks and create a project topic for you! Please remember I will select a
topic only if I think it can be published/commercialized or patented.
Once I suggest a project topic to you, please get back to me within a week
atleast because if you not interested in that particular project topic I can
give the same topic to other group of students who might be interested in it.
So please keep the communication channels open and stay in touch. If you get
back to me after 1 month(yes that happens almost all the time) I will have to
say sorry to you because I probably must have given the topic to someone else.
So please dont take things for granted and minimize your assumptions. This will
help us in working together.
Step 2:
Most of the research projects which I usually take have some commercial
value and practical applications. You will see the theory into practice and
that's what makes the project exciting and challenging to find new applications
and do something innovative. In order to protect myself from legal disputes
later I prefer you signing the document if I give you the topic. You don't need
to be intimidated by the length and scope of the document.
You also have the option of not signing the Sponsor Research Agreement and
going directly to step 3. I would prefer you going for that option only if you
already have a specific project topic in mind. That way I wouldn't have to
disclose any Confidential information to you. Some projects are purely software
based and don't involve any research. You do not have to sign agreement for
those projects. To summarize, if you already have a topic then you don't have
to sign the agreement.
Please note that if you have any new concept which will benefit the society
especially the disabled and the poor, you will be awarded $200 instead of $100
and you do not have to sign any agreement. If you have any questions
or concerns or suggestions, please don't hesitate to mail me and discuss.
Sign the Sponsor Research Agreement so I can
disclose Confidential Information to you. Please read and Sign the Sponsor
Research Agreement (need at least Acrobat Reader 5+)
Any company sponsoring your project will make you sign such an agreement. If
you compare my agreement with the agreement
which IIT offers, it's basically the same except that mine is more
thorough. If you have any questions feel free to ask me. You don't have to sign
the agreement if you don't understand any clause in it If any clause is
objectionable please discuss and I would be most willing to change it. The
purpose of the agreement is to avoid problems later and assure you that you
will given $100 at end of project. There is a non-disclosure clause in the
agreement which implies that you cannot discuss the algorithm or your project
with your friends although you can discuss it with your internal guide. You
also cannot sell the algorithm or code to any third party! If you find a
partner, your partner will have to follow same steps.
Also, please note that although I am restraining you from disclosing the
details to everyone, at the same time I strongly recommend that you
participate in competitions. In fact it's a must that you participate. You can
also mention your project topic to get a job BUT you cannot disclose the
complete details to a potential employer or sell the project to a 3rd
party.
In ALL cases we will end up publishing it or file a patent so that we can
disclose the information to public but until then you cannot disclose it. Thus,
in the agreement there is a
clause that you cannot disclose without my permission. That way I can choose
what's the best time to disclose information. Practically, it means you
have to obey the non disclosure clause until we are ready for the competition
and public disclosure.
If you decide to accept the agreement you can mail at a local address in
Pune OR scan it and email it back to me OR mail it to the address on the
agreement OR fax it.
Step 3:
There are few things I would like you to know more about me so that we
understand each other better.
1.I will work as a team member with you. I will work on some aspect of the
project so that you learn team coordination. You have to have a desire to learn
new and not be fearful of new. A good project would involve 50% work utilizing
your existing skills and rest 50% involving learning stuff that you don't know.
So having good basics help.
2. I will provide u the required resources and share all my knowledge with you
so that u can concentrate on your tasks and not waste too much time on
searching things. I want you to remember this rule. I encourage asking as many
questions you have and being inquisitive. There is no shame in not knowing
something. Its is however when we refuse to learn. So if you have a doubt and
before you ask me I would want to see your attempt. What attempt did you make
in searching for the answer before asking me? Sometimes in answer to your
question I will ask you a question. So don't expect ready-made solutions from
me. I will make you work hard for it. And if I see you are not asking too many
questions I will start asking you. As a thumb rule, if you are stuck with a
problem, give 1 hour to it for searching the solution. If you still don't find
it its time to email me. Also, please note that I am not making any assumptions
that you know everything. Except for god, no one knows everything. There are
many things which I still don't know. So please don't hold back your doubts
assuming that I expect you to know everything. If the answer is too easy to
answer I will provide you a link or a resource to look up for the answer. If
your question is difficult I will give you the answer right away. If I don't
know the answer, I will let you know and search for the answer. One of the
reasons I love doing student projects is because I will be learning lot of new
things with you and many times I learn new things from students itself.
3. I WILL NOT HELP YOU IN COMPILATION ERRORS. I can help you in debugging your
code but I will not debug it for you. After you are done finish testing your
code, I will read each and every line in your code and do a code review. I also
read each and every word in your report too! More on writing report later as
you make more progress. If you have problems getting rid of compilation errors,
it time to get a programming book and start reading from page 1.
4. I am very flexible with schedule and usually stop communication with
students during study leave so that they can concentrate on their other
subjects. Otherwise I prefer to communicate at least once a week.
5.I have no intention of taking classes in astrology so I cant predict or guess
what you are up to unless you communicate to me and mail me. I don't like
guess work. I don't like huge lapses in communication. I want you to
communicate all your problems to me without any hesitation. I prefer not
working with lazy students. You have to be hard working and be self-motivated.
"Silence" in communication is assumed as work not done or not
interested anymore or stress level is too high. If you are sick or your hard
disk crashes please inform your other team member so that they can drop me a 1
line email informing me of the same.
6. The only prerequisite for doing the project is DESIRE. It is said
desire can move mountains. If you have the desire to achieve results you will!
If you have the desire to learn u will. If you have the desire to learning
programming you will. Its never too late to learn. Desire is like fuel for the
mind. It can make you do things which you never expected. Surprisingly, all my
past students have been higher second class students who haven't done well in
univ exams but graduate with flying colors. The only reason I believe they
succeeded was because they wanted to do. They had the burning desire to succeed
and prove their capability. I will never judge you by your marks but only
by your desire. Many students who are not good at C struggle with the project
when in coding phase and feel misled that no prerequisite was specified. I will
help you with programming too. I will answer ALL your programming questions,
solve your doubts and make sure that you understand concepts. Its totally up to
to you how much you want to learn and how much HARD WORK you want to put
in to catch up and sharpen the skills necessary for the project. The other
prerequisite is CONFIDENCE. You have to believe in yourself and in your
ability. Its very difficult to do research if you don't believe in yourself.
You have to trust your intuition and be yourself. That's why no question is a
stupid question and I strongly encourage you to ask questions and discuss your
thoughts. Thus, its very important that you have the right mindset before you
start research. Your "can do" attitude will make a big difference to
the project. In the end results are not all that matters. Our goal is not to
finish a project and fulfill a university requirement. We are here to learn
from each other and learn to share and contribute. You will be interacting a
lot with me in next few months and realize that the end result doesn't matter
but how we approach and solve a problem in a fun, exciting way is what is
important. How you achieve your destination and what path you follow is more
important than reaching the destination.
Step 4: Finding a project topic: It's very important that you do
something which you like. The topic you choose is very important so that
later you can choose your field of specialization and decide your career path.
The topic of the project can also be helpful in getting a job if you are
working on cutting edge technology project. Taking a challenge project requires
lot of motivation and hard work. No matter how much I try to convince you,
you have to select the topic based on your interest and not mine.
So although there is no prerequisite for doing a software project, it would
be helpful if you know at least one programming language like C or C++. However,
if you are not confident about your programming skills and still want to do
research, I will encourage you to learn and use MATLAB. We can also do
non-research software project such as working in .NET. The selection of
topic is based on
Step 5: My thoughts on communication skills
and meeting deadlines. DO NOT CONTACT ME
IF YOU HAVEN’T READ THIS LINK.
BEGINNING OF SEMESTER I:
Step 6:
Literature review is first part of any project.
I will send you links to few papers. Please download the papers and if possible print it and read it carefully. I don't expect you to be familiar with any of the terms like HMM, PCA... so first just read through the paper trying to get an overview. Right down all the thoughts and doubts which u get in mind. Then read the paper again concentrating more on the details. You might have to read that paper 3 to 4 times at least to get a grasp of the topic. Email me then and feel free to ask as many doubts as u have. Don't be intimidated by the new terms in the paper.. its natural to be unaware of them since they are not in syllabus. But at some point u have to take a step and have a beginning.
If you still like the topic after reading the paper I might give u a few more papers to read about other techniques and ultimately do a critical analysis of the subject topic. Each paper will follow a discussion with me to see your level of understanding and to solve your doubts.
Step 7: Documentation and Review of Chapter on Literature Reviewed You will document Chapter 2 i.e. Literature Review, of their project report providing references and links to related work. I will review the chapter and suggests corrections. We will then critically analyze and evaluate the existing methods used to solve the problem and make a decision as to which building blocks should be used.
Step 8: Acquiring Pre-requisites for Algorithm Development Once we select the choice of algorithm, you will acquire a thorough understanding of the theoretical background and learn the methodologies involved in developing the algorithm. I will answer detailed technical questions when they arise.
Step 9. 1st Deliverable/Milestone 1. You have to submit a research proposal documenting all the methods and block level design of the algorithm.
You have to submit this first deliverable before the end of study leave in Semester I (end of October). Please start with the draft of the proposal as soon as you start with the literature review. Don't wait till the end as there will be too many corrections. Your final draft is due before the PL. If you miss this target, probability is that you will not be able to finish the project on time. So please take this deadline seriously as submission of your proposal determines your quality and capability to do innovative research. This is a hard deadline. That's why its very important that you communicate your problems since day 1 so that you can meet this deadline. Meeting deadlines and being responsible is one of the important lessons you will learn. Please remember that if you don't submit your draft by then you should start looking for another project guide. If you are not motivated enough there is not nothing much I can do!
END OF SEMESTER I.
Step 10: Algorithm Design
Step 11: Documentation and Review of Methodology I will help you analyze the designs, identifies possible oversights, and presents additional alternatives to the existing design if it has some obvious flaws.
Step 12: Submit a Project Proposal Submitting a Proposal lays the groundwork for the project. It is a milestone achieved by you since the specifications and requirements of the project are clearly defined.
Step 13: Review of Project Proposal I will review your proposal.
Step 14: Implementation of Prototype You will have to follow the coding standard while implementing the algorithm. You adopt object oriented design principles while coding so that their code can be reused in future.
Step 15: Code Review you will mail me each module as soon as they get done writing instead of submitting all the source code for review at one time. Identifying bugs in the code before experimentation saves valuable time. I will interact with you while reviewing the code and also writes up a report with his evaluation of the design. Studies have shown that many more bugs and design flaws are identified and fixed during a single code review than through months of testing and debugging.
Step 16: Experimentation
Step 17: Analysis of Conducted Experiments
Step 18: Documentation of final report with experiments, performance and conclusion. You also have to prepare a power point presentation and submit the same. You are now ready to participate in competitions.
END OF SEMESTER II
Step 19: IEEE Publication. You should probably start with the draft paper for the IEEE journal/conference.