Join the Team

The mission of this research team is to create leaders.


If you are interested in joining CAM2 during Summer 2020, please refer to the New Member Onboarding page to apply.

This team no longer interviews the students that want to join. Instead, the team provides materials below to help students evaluate whether this team is right for them.


Using an analogy of sports, this research team is Olympics (or World Cup). The team wants only the top performers. If you want to become an outstanding researcher, you will prosper in this team. If your goal is to do as little as possible and to get credits, this team is not for you.

joinimg0 joinimg1

joinimg2 joinimg3

Dr. Lu (almost every professor) receives too many meaningless messages from careless students. In most cases, the students do not even know where the messages are sent to. Many messages ask to join Dr. Lu’s research team even though Dr. Lu has never done anything on the topics of the senders’ interest. Dr. Lu will not respond to these messages. Dr. Lu will respond to only questions from students that are already at Purdue or have already received admissions from Purdue. If you are not at Purdue, please contact the admission office. Dr. Lu will not answer questions like “Can I get an admission to Purdue?” or “Can you give me funding?”

Before you contact Dr. Lu, ask yourself these questions:

  • Do I know what this research team is doing?

  • Have I read this team’s recent papers?

  • Do I want to conduct research on these topics?

  • Can I contribute to solving the research problems?

Do not send email to Dr. Lu if you have no answer. Don’t waste your time.

Should you do research? Research, like any other activities that require long-term efforts (such as marathon, chess, painting…), is not for everyone. “Everyone should do research.” is as valid as “Everyone should run marathon.” or “Everyone should play chess.” Before you join a research team, think about the reasons. What do you want to accomplish? Why do you want to do research with this team? Remember, time is your most precious asset. Do you want to spend your time with these people? Why? Do these people want to spend time with you? Why?

If you want to talk to Dr. Lu, his office is MSEE 222.

Still want to join?

This research team gives students (including undergraduate students) the true experience of research. You will be given research problems, not classroom homework assignments. You need to solve these research problems and have contributions to the research community (such as research papers, open-source software, data). This is a large research team in the number of students. You will get the opportunities learning from other students, making life-long friends, solving problems that are too difficult for small teams. For graduate students: This team has many undergraduate students and you can get rare experience working with these students solving large research problems. They may help you review literature or conduct experiments. They may critique your methods. You may get the opportunity leading a team. It is expected that you are comfortable writing computer programs. You should have the skills equivalent to ECE 264 (or CS 240) at Purdue. CS 159 is insufficient. You must be able to learn Python.

Research requires a lot of self learning. If you learn in classroom only and need step-by-step guidance by teaching assistants, you are not ready for research.

This research team provides unique experience that is uncommon on campus: all students (including undergraduate students) solve research problems. Since research problems are difficult, this team has the following requirements:

  • Every student is expected to stay for at least two semesters (summer counts as a semester). Many students stay in the team for 2 years or even longer. Why? They want to solve research problems. If you intend to stay for only semester, do not come. One semester is too short to accomplish anything meaningful. Do not waste your time.

  • Every new member will receive fast-pace training. This takes the efforts of current members.

  • During spring or fall semester, every new member must take a research course (ECE 279, 379, 479, CS 490, or similar). The reason is simple: without taking a research course, new members always vanish when their coursework becomes heavy.

  • Teamwork is absolutely critical. If you want to work alone, do not come.

  • Every member must make a commitment to solving research problems. This team demands serious efforts.

  • Research must create new things (new software, new data, new theory, new algorithms, new interpretation…). If you do not create anything new, you are not doing research. “New” means new to human knowledge, not new to you. If your only intention is to “learn” without solving research problems, do not come.

  • Members are expected to interact in both professional and social settings. Many solutions are discovered when people talk outside research laboratories. Communication with your team is an essential part of research. The social events are important parts of member interactions. If you do not want to participate in any social event, do not join this research team.

  • This is a research team. It is not an amusement park. This team solves research problems and does not host tourists. Join this team only if you want to solve research problems. Spend at least six hours per week on the research project and attend weekly team meetings.

  • Report progress in writing and speaking. Research, by definition, is to discover new things. Thus, you must explain what you have discovered by speaking and writing.

  • This research team does not accept students that come with their own agenda. This team solves research problems that take long time. The topics have been determined long before any new member joins the team. As a new member, you are not allowed to suggest new topics. The team does not care what you want to do. As a new member, you must solve the problems that have already been selected by the team.

Frequently Asked Questions

  • Q: It seems that you are discouraging people to join your team, why? Will anyone actually want to join?

  • A: Too many people treat “research” as visiting an amusement park. They are looking for “fun” without the intention of taking efforts. They show up when they want to; they leave at any moment. They expect to get A easily. This research team does not need those people. This research team welcomes only the people that are serious about solving research problems. Yes, this team has many students because these people are serious about solving research problems.

  • Q: How many hours do I need to spend per week?

  • A: What do you want to accomplish? You need to spend at least six hours a week. If you cannot, you are wasting your time because you can accomplish nothing. Many people spend much more than six hours a week. If you are leading a research paper, it is possible that you spend 30 hours (or more) per week for several weeks before submission.

  • Q: Your team demands a lot. What do members get?

  • A: Why do people climb high mountains? Why do people compete in World Cup? They want to accomplish something extraordinary. This team gives members friendship with excellent researchers, authorship of research papers, strong recommendation letters, excellent job offers, and occasionally, pizza. Above everything else, this team gives members the pride of solving research problems.

  • Q: I do not want to take a research course because I already have too many credits.

  • A: If you have too many credits, you will not have time doing research. You will definitely vanish when your coursework becomes heavy. Do not come.

  • Q: This is my last semester and I do not want to take too many credits.

  • A: If this is your last semester, you will not stay for two semester. Do not come.

  • Q: I guarantee that I will stay, even though I do not take a research course.

  • A: You will not stay. You know very clearly. You do not want to take a research course because you cannot spend time. Do not come. Many people “assured” that they would stay without taking credits. Everyone vanished. This team does not need these people.

  • Q: If you are so restrictive, how many people actually apply for joining the team?

  • A: For Spring 2019, about 120 people wanted to join or stay in this team. This team’s size has been growing rapidly in recent semesters. Many people want to join this team because they want to spend time with those that are serious about solving research problems.

  • Q: Do you set a limit on the team’s size?

  • A: We welcome everyone that wants to solve research problems.

  • Q: I have an idea. Can you help me?

  • A: No. Go away. This team selects research problems that take many years to solve. The team will not change research topics because of your idea.

About Financial Support

Most students do not know how universities operate in terms of finance. As a result, they think professors magically have unlimited funds to support as many students as the professors decide. Before you ask Dr. Lu to provide financial support, please be aware of the following facts:

  • Dr. Lu does not print money. Research fund does not fall from sky like rain drops.

  • Purdue University does not give students’ tuition to professors for doing research. The tuition goes to facilities such as networks, buildings, furniture, electricity, staff, administration, cleaning …

  • For every $100 Dr. Lu spends on research (including machines, travel to conferences, salary for students …), Purdue takes $55 for facilities such as networks, buildings, furniture, electricity, cleaning … Thus, Dr. Lu has to request $155 from project sponsors.

  • Purdue does not give research money to professors because the professors have a lot of students.

  • Dr. Lu works with many students because he wants to give more students research experience. He enjoys the intellectual interactions with many excellent students. He also thinks the interactions among students help them succeed. The size of his research team has no effect on how much Purdue gives him for research (always $0).

  • Dr. Lu has zero influence about how Purdue spends tuition. Please talk to Purdue President if you have any suggestions.

  • Dr. Lu has zero influence on other professors’ decisions. Dr. Lu cannot tell any other professor to give any student financial support.

  • Dr. Lu obtains research funding by writing proposals.

  • Financial supports are divided into three types: fellowship, teaching assistantship, and research assistantship. Dr. Lu has no control of fellowship or teaching assistantship.

  • Research assistantship is a type of employment: a research assistant is an employee of Purdue University for conducting research described in the corresponding research proposal. If you do not do what is written in the proposal, you cannot receive research assistantship.

  • Professors provide research assistantship because the work in the proposals have to be carried out, not because professors are “nice”.

Common Mistakes by Students

  • Some students think “doing research” means disappearing for five years and coming back with world-changing discovery or invention.

  • Financial support is free money and students have complete freedom doing whatever they want.

  • Some students go to professors and say, “Give me money.” They do not know that, in a bank office, this is called robbery and is a crime.

  • Some students think sending emails to professors and money will be transferred to the students’ bank accounts the next day.

How to Get Financial Support from Dr. Lu?

  • Understand that Dr. Lu has no obligation giving you financial support. You have to earn it.

  • Getting financial support from Dr. Lu will take you a lot of efforts. He will not give you money because you send an email.

  • Read at least five of his papers published in the last three years. Do not initiate any conversation before you finish reading the papers.

  • Prepare to have multiple, long, and deep technical discussions.

  • Dr. Lu has a large established research program. You must do what the research program needs. He does not care about your new ideas.

  • Dr. Lu can support only Purdue students.

  • Dr. Lu emphasizes teamwork greatly. You have to work with a team. You must have good communication skills.

joinimg4 joinimg5

joinimg6 joinimg7

Research is NOT Classroom Learning

A research group is fundamentally different from a classroom. A classroom is usually an inclusive environment: most instructors allow auditors. In contrast, a research team is a “privileged” environment and only selected members can participate. Many reasons make research team restrictive, for example,

  • The members in the team use the facilities that are purchased using research fund.

  • The members must have ability to understand and improve state-of-the-art solutions.

  • The members are inventing a new solution that may lead to a patent. Before this patent is filed and granted, the members must protect the intellectual properties.

  • The members are writing a research paper and everyone must be qualified to contribute to the content.

If you like sports, you need to ask yourself a simple question: “Am I ready to join a professional team?” This research team is professional because the team solves research problems that have not been solved by anyone yet. If you are not ready to contribute, you will not enjoy the experience and current team members cannot work with you.

This is a research team. You come to solve research problem. You do not come to learn. If you want to learn, go to take courses or read books. This team does not accept anyone that wants to join and learn, without contributions to solving research problems. This team accepts only the people that wants to solve research problems. Please evaluate whether you are ready to contribute.

Differences between Students and Researchers

Before joining this team, please make sure you understand the differences between students and researchers. A student with high GPA is not necessarily a good researcher. Some excellent researchers do not have high GPA. Why? Because taking classes and doing research are very very different.

How does a student get a good grade? Usually, by submitting assignments and answering exam questions. Due to the semester (or quarter) structure, a course can last only 15 (or 10) weeks. As a result, every assignment has to be finished within several weeks. Also, most exam questions are limited to well-defined problems that can be answered within one or two hours. This structure has tremendous impacts on how students think. Many students (mistakenly) think everything can be done within a few weeks because students never have experience doing anything longer than a few weeks. Most students cannot comprehend the complexity of any problem that takes more than several weeks.

Unfortunately, research is almost the opposite of everything in classroom. The following table summarizes the main differences between “student thinking” and “researcher thinking”:

Student Thinking

Researcher Thinking

Every student does the same homework assignment

Everyone solves a distinct problem

The professor knows the answers

Nobody knows the answers

Other students know nothing

Other researchers know many things

Go to classroom and take notes

Participate in discussion

Listen quietly in classroom

Explain and present to other researchers

Short answer to exam questions

Write reports for others to understand and reproduce

Ask TA for help when encountering difficulty

Solve the problem by self

Wait for assignments and exams

Anticipate questions and problems

Work alone


Do not care after a semester ends

Research projects last many years

Accumulate technical debts

Avoid technical debts

Try to find answers in books

Discover answers by self

Talk to professors only

Talk to other researchers

Procrastinate until a report is due

Work on the project continuously

Take different courses each semester

Stay until a solution is found, written, and presented

Take several courses simultaneously

Focus on solving one problem

Focus on learning (taking in)

Focus on contributions (getting out)

Wait for evaluations by professors (assignments and exams)

Develop metrics to evaluate solutions

Treat research as sightseeing

Treat research as weight training

Wait for professors’ instructions

Take initiative, suggest solutions

Ignore assignments that are not graded

Pay attention to every step

Treat questions as tests

Treat questions as discussion

No need to document since everything is in textbook

Carefully document every step

Video Advice about Doing Research

Here is a collection about my advice about doing research. You are welcome to share the information with anyone. Many parts are personal opinions and it is certainly possible that my opinions are different from yours. Your comments and suggestions would be appreciated. To save my time, the voice of the video is generated by a computer program I purchased. I appreciate your understanding.





What is Research












Style and Strength




Take Ownership




Self Assessment

Before you join this team, answer the following questions. These questions help you decide whether this team is right for you. If you cannot answer any of these questions, you are not ready to join this team. Please do not intend to memorize answers. You should understanding.


If you are not ready to do research now, that’s all right. Come back later.



Communication and interaction is more important than any technical skill. If you cannot communicate, it does not matter what you know.

  • How do you respond to discussion and critique?

  • Have you worked in a team project? How big was the team?

  • Do you think using jargon and acronyms to ensure that nobody can understand you would make people believe that you are knowledge, smart, and superior?

  • How would you respond when someone tells you that you have made a mistake?

  • When you disagree with someone, what would you do?

  • When someone disagrees with you, what would you do?

  • What would you do when you cannot finish a task that is assigned to you?

  • What would you do when you finish a task early?

  • What would you do if a team member cannot finish an assigned task?

  • How would you inform team members your progress or problems you encounter?

  • What would you do if you think an assigned task is not worth doing, or should be done in a different way?

  • Have you participated in a project in which members’ responsibilities were adjusted as needs arose?

  • Can you describe the ideal characteristics of team members? Are you a good team member? Why?

  • Did you have experience working with a difficult team member? Why is this member difficult? What did you (or anyone else in the team) do to manage the situation?

  • How would you handle the situation when a team member is intelligent, highly-motivated, has solid technical skills but does something that is not the team’s priority?

  • When a team member writes a report that does not provide sufficient details for you to work together, what would you do? How would you prevent this from happening?

Past Project Experience

  • What are your past projects? What did you do? Is it an individual project or a team project? What are your contributions?

  • What knowledge and skills do you have? Why do you think you can contribute to research?

  • Can you describe the factors that made your past projects successful or unsuccessful?

  • If you could redesign one of your past projects from the beginning, what differences would you make?

Logic Thinking

  • Alice is younger than Bob. Bob is younger than Cathy. Thus, Alice is definitely younger than Cathy.

  • Alice and Bob are friends. Bob and Cathy are friends. Thus, Alice and Cathy are definitely friends.

  • It has been observed that owners of luxurious vehicles are richer than average people. Thus, if a person wants to become rich, this person should purchase a luxurious vehicle.

  • Alice says, “If an event is observed, it is definitely possible.” Bob says, “The opposite is also true. If an event is never observed, it is definitely impossible.” Which one is correct? Alice? Bob? Both? Neither?

  • A pharmaceutical company wants to understand the effects of a new medicine. The researchers give this new medicine to lab animals and nothing else. Within six days, all lab animals are dead. The researchers conclude that the medicine is toxic and should never be used for treatment. Do you agree with this conclusion? Explain your answer.

Algorithms and Discrete Mathematics

  • Briefly describe binary search.

  • How is binary search done in a sorted array? How is binary search done in a binary search tree?

  • What is the best case (in terms of time or the number of operations) when doing binary search in a sorted array? What is the worst case when doing binary search in a sorted array?

  • What is the best case when doing binary search in a binary search tree? What is the worst case when doing binary search in a binary search tree?

  • In a graph with positive weights for the edges, describe an algorithm to find the shortest path between two vertices. Hint: “Dijistra’s algorithm” is not an acceptable answer. An acceptable answer must describe how the algorithm works.

  • Suppose you have an algorithm that finds the shortest paths in a graph of positive weights for edges. Will the algorithm find the longest paths, without cycles, in a graph of positive weights for edges if you replace > by <= or > by >=? Explain the reason.

  • Continue from the previous question. Describe an algorithm to find the longest path between two vertices without any cycle. Why is it important to emphasize that cycles are not allowed?

  • Why is quicksort quick?

Data structures

  • Binary tree is a widely used data structure. Why is “binary” sufficient? Is trinary tree better? In what ways? Why do most books not emphasize trinary tree?

  • Describe two ways in a computer program to store a graph. Explain the advantage and disadvantage of these two ways.

  • Describe two sorting algorithms. Explain the advantage and disadvantage of these two algorithms.

  • You need to design sorting algorithms for two different scenarios.

  1. The machine has a very large amount of memory (with uniform access time) and all data can fit into the memory.

  2. The amount of data exceeds the memory capacity and thus only part of the data can fit in memory. The rest of the data must reside on much slower disks.

Will the sorting algorithms be different for these two scenarios? Why? How?

  • Describe the most important difference between a linked list and a binary tree. Why is this the most important?

  • What are the differences between a list and an associate array? When do you use one or the other?

  • How do you implement an associative array?

  • Two binary tree have the same shape if they have the same numbers of nodes on the left and the right sides at each level. For n distinct numbers, there are n! different permutations. If these numbers form binary search trees, how many different shapes will there be? Is that n!?

  • How do you store a very large matrix whose most elements are zero? What matrix operations are easy in this data structure? What operations are difficult? Why?

Programming (independent of language)

  • What is stack memory? How is it used?

  • What is heap memory? How is it used?

  • When do you use recursion? You can describe general principles or examples. When is recursion better than for (or while) for solving problems? Hint: the Fibonacci sequence, f(n) = f(n-1) + f(n-2), is not a good example of recursion. Please read Section 13.6 in “Intermediate C Programming”.

  • What is memory leak? Why is it a problem?

  • What is call by value? What is call by reference?

  • What is unit test? What is integration test?

  • What version control tool do you use? What is the purpose of version control?

  • Explain how you debug programs.

C Programming

  • What is wrong with this two lines? What problems does this cause?

int * iptr; /* what is the size of iptr? */
char * cptr; /* what is the size of cptr? */

char x = 'm';
int * iptr = &x;
  • What would happen when f() is called?

void f(void)

Object-Oriented Programming (independent of language)

  • What is encapsulation? Why is it important?

  • What is inheritance? How can it be used?

  • What is polymorphism? How is it used?

  • What are the main differences between a class and a structure in C (or a record in Pascal)?


  • Briefly explain the difference among TCP, UDP, and HTTP.

  • If you need to write a pair of programs to send and receive files, what network protocol would you use? Options include (but are not limited to) TCP, UDP, HTTP, SSL, Wifi. Explain your answer.

  • What is the fastest network (in terms bytes per second) today? What is the data rate?

  • What is the data rate (in terms of bytes of second) if a cargo ship carries 100,000 of hard disks cruising at 36 km/h?


  • Explain the purpose of virtual.

  • What is a copy constructor? In what condition can the default copy constructor be used? In what condition must a programmer write a different copy constructor? Hint: understand the difference between shallow and deep copy.

  • Is every valid C program also a valid C++ program? Explain your answer. Hint: Many people answer this question without thinking. Consider the keywords in C and in C++.

  • Explain the difference of call by value and call by reference for C++ programs.


  • What are the differences between a class and an interface?

  • Explain two meanings (there are more than two) of the word final in Java programs.

  • What are the differences between int and Integer?

  • In Java, List is an interface and ArrayList is a class. What does this mean?

Machine Learning

  • Briefly explain deep learning. Why is it called “deep”?

  • Why probability is essential in machine learning?

  • What is the difference between supervised learning and reinforcement learning?

  • What are the limitations of support vector machines?