Join the Team

The goal of this research team is to create leaders.

We recommend reading this page fully before submitting the application form. However, if you have already spoken with members of the research team, it is ok to proceed directly to the form.

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 and understood?

  • 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 (any 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?

If you are serious about solving research problems and interested joining the research team, please fill in this Google form.

The team’s mission is to create leaders. The research projects’ mission is to create the technologies saving lives.

For undergraduate students: This research team gives 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 undergraduate students on Purdue campus. 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 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.

  • Every new member must pass an interview with current members.

  • 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. This wastes everyone’s time.

  • 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. This is a research team and entertainment is not the purpose.

  • Learning is an essential part of doing research but research is much more than learning. 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. If you want to learn, take classes or read books (or papers).

  • 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.

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 may 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. Many people want to join this team because these people know everyone in this team is 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 more than six hours a week. If you are leading a research paper, it is possible that you spend 30 hours (or more) the week before submission.

  • Q: If I am selected, I will stay for at least two semesters, right?

  • A: Not necessarily. The team may be reorganized. A particular topic may be eliminated if enough progress has been made. A member may be released (not “fired”) if the member shows no progress.

  • 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 the pride of solving research problems, friendship with excellent researchers, authorship (or co-authorship) of research papers, strong recommendation letters, excellent job offers, and occasionally, pizza.

  • 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. In fact, these people simply vanished without saying “Good Bye”. 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.

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 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 provide 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. It does not work that way. You need to regularly (about once a week) report progress.

  • 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.

  • 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.

  • 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



If you are not ready for an interview or you do not perform well in an interview, that’s all right. Come back later.


Do you like sports? Are you ready to join a professional team that compete internationally? This research team solves problems whose answers are not known to anyone in the world. We compete internationally. We produce open-source software and data. We publish papers in top venues.

This research requires that every applicant be interviewed by two or three current members. Why? Any organization exists for a purpose. The organization can succeed if the members can work together toward the common goals. The organization fails if the members do not understand the purpose of the organization or cannot work together. Interviews are one of the methods to help determine whether people interested joining the organization is ready to work together with existing members toward the common goals.

A research group is fundamentally different from a classroom. A research group aims to solve research problems that can help humanity. 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 qustion: “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.The purpose of interviews is to help applicants and current members evaluate whether the applicants are ready to contribute.

What is an interview?

An interview is a two-way communication: An organization wants to determine whether an applicant should join the organization. Meanwhile, this applicant also evaluates whether this organization is worth the time and efforts. An interview usually evaluates three aspects:(1) Communication skills, (2) Technical skills, (3) Personality, honesty, and integrity.

If an applicant is not ready to join the group, it is possible that this person can join later and contribute. This research team holds honesty and integrity as the highest requirements.If an applicant is not honest, this team will never accept the applicant. Communication and technical skills can be acquired. Honesty and integrity cannot be compromised.

Sample questions are listed below for your reference. Your are encouraged to study these questions in advance. You need to prepare for the interview.

Differences between Students and Researchers

Before an interview, 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 are 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

The adviser knows the answers

Nobody knows the answers

Short reports to the adviser

Write reports for others to understand and reproduce

Ask for help when encountering difficulty

Solve the problem by self

Wait for assignments and exams

Anticipate questions

Work alone


Listen quietly in classroom

Explain and present to other researchers

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




Interview is not an oral exam

Many students think interviews are oral exams: interviewers ask questions and interviewees answer the questions. This is incorrect. An interview is two-way communication. An interviewee should also ask questions. To ask meaningful questions, an interviewee should study the characteristics of the research team. Some students think interview questions are “fill in the blank” and provide short answers, without much explanation. Such an interviewee is “passive”: responding to questions without deeper thought. Such an attitude would be considered negative. It is advisable to dig deeper by providing more insightful information. It is perfectly reasonable for an interviewee to ask back “Why do you ask me this question?”

Do not intend to prepare an interview by memorization. Good interviewers do not ask memorization questions. Dr. Lu always gives open-book exams because he strongly encourages understanding, not memorization. To enter Dr. Lu’s research team, you need to demonstrate that you can think. It is acceptable to say, “I don’t know.” and then ask the interviewer to provide more information and guidance toward an answer. A common mistake by students is to provide lengthy explanation without answering the questions. Some students can take several minutes without giving any definite answer. Why? They are afraid giving wrong answers. This is a bad attitude. It is better to answer the question and then explain the reason of the answer. Interviewers want answers before explanation. For a “Yes-No” question, answer “Yes” or “No” first and then give the explanation.

Honesty is extremely important. An interviewee should never lie. If an interviewee does not know the answer, it is acceptable to say, “I don’t know the answer.” The interviewee should not pretend to know the answer and say meaningless things. After admitting not knowing the answer, an interviewee can try to answer the question through reasoning. “I don’t know the answer but I think it should be … because …” The “because” part is very important.

Sample Interview Questions


You should never lie in an interview.



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?

Do you think using jargons 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?

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

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

Show evidence of 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 the project?

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. Would 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?

Hint: Changing “<” in the algorithm for shortest paths to “>” would not work. Please explain the reason.

Why is quicksort quick?

Data structures

It is expected that every student in his group has the programming skills described in his book “Intermediate C Programming” (CRC Press, ISBN 9781-4987-11630). Knowledge about the following topics would be helpful: data structures, discrete mathematics, algorithms, computer architecture, operating systems, and networks.

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.

Would 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 would you use one or the other?

How would 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 would you store a very large matrix whose most elements are zero? What matrix operations would be easy in this data structure? What operations would be more difficult? Why?

Programming (independent of language)

What is stack memory? How is it used?

What is heap memory? How is it used?

When would 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

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

char x = 'm';
int * iptr = &x;

What is wrong with this two lines? What problems could this cause?

void f(void)

What would happen when f() is called?

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 between TCP and UDP.

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?


If a candidate knows C++ or Java, the candidate should answer the following questions.


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?