PROCESS FLOW



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 ur interests like which is your fav subject or what u really like doing. We can do a hardware or embedded systems project as well. It all depends on what are your existing skills and your strengths and weaknesses. I usually make students do projects in DSP,AI,Computer vision,Image processing. My research interests vary widely from Computer Graphics to Networking. I am very easily motivated and I like to learn so I am open to all topics. I can help u with whatever topic u decide to do..whether hardware/software/embedded....


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.