16/04/2012

Aim of the course

How to do research
Giorgio Buttazzo
g.buttazzo@sssup.it

To provide some hints on what to do and what not to do when you are interested in: g research doing writing papers presenting your results

http://retis.sssup.it/~giorgio/h2d.html
2

Outline
1. How to settle for research 2. How to write scientific papers 3. Typical English mistakes 4. Getting into the publication process 5. How to make presentations 6. Simulating a small conference
3

Meaning of research
Research = Re - Search
Re ⇒ again Search ⇒ examine carefully, try, test, probe

Research
⇒ Detailed and systematic study aimed at discovering new knowledge about our world (scientific approach). ⇒ Detailed study of a subject aimed at inventing new solutions for specific problems (engineering approach).
4

Scientists  vs.  Engineers
Scientists
Interested in the world as it is Goal: understand how it works Discover laws on what already exists

Basic  vs.  Applied  Research
Some people like to distinguish between:
Basic research aimed at advancing our knowledge with little concern for any y immediate p practical benefits. Applied research aimed at achieving some practical outcomes that are useful to the society.

Engineers
Interested in changing the world Goal: solve practical issues Invent something that does not exist
5

6

1

Lui Sha Elements for a succesful research Understading yourself your talent your interest Important questions to answer: your talent your interest social needs What is easier for you. According to this view. writing a complex software program or proving a difficult theorem? What excites you? social needs 11 What excites the community? Does it fall into your skills? 12 2 .  Practice The believe that a theoretical study is not useful to the society is completely wrong! What’s more relevant for the society? The theory of electro-magnetic field or a practical study to optimize a screwdriver? 7 8 Pasteur’s Quadrant  by Donald Stokes. 1997 What is Engineering? “Engineering is the development of cost-effective solutions to practical problems. but also methodologies Practical problems problems that matter to people and improve human life Application of scientific knowledge Systematic use of analytical techniques 9 10 High Quest for Fundamental F d l Understanding Pure basic research Niels Bohr Use‐inspired research Louis Pasteur Low Bad research Pure‐applied research Thomas Edison Low Consideration of use High Elements for a succesful research The path to success consists of three simple elements: Find what interests you that you can do well and is needed by the people. . a research is applied if there exists someone capable of using the results to build practical things. through the application of scientific knowledge” Cost-effective Considering design trade-offs on resource usage Solutions Emphasis on building devices. Bad research: study aimed at producing specific products without long term objectives or general implications. Theory  vs.  Bad Research Some other people prefer to distinguish between: Good research: rigorous scientific study aimed at advancing knowledge and producing new results that (sooner or later) will be useful for the society.16/04/2012 Good  vs.

Compare your solution against existing  ones 7. Get familiar with the work done before (if any): use tools. Communicate the solution  to the world 13 14 2. which courses do you need to attend? 15 16 1.. Search on the right conference proceedings (ask your supervisor about the top conferences in the topic). You must become the Master on that subject.16/04/2012 Research step by step 0. Formalize li   the  problem Research step by step 5. Read the documentation related to the main components (HW and SW). Find a  topic 1. more realistic assumptions generalize clean up What disciplines are needed to understand details?  Do you have the required expertise? If not. animals)? Better to clear these things up before starting.  Understanding the field Are there ethical issues involved (e. test the system functionality.  Understanding the field Read the literature related to your problem. Understand the field and the  application domain 3. discover critical points and take notes on strange behaviors. Think h k of f  the  problem 4. 18 3 . and bottlenecks. shortcuts. Find a solution  to the problem Typical research process start with simple assumptions use examples and simulations 1. read the source code. 17 1. T Talk lk to t people l that th t already l d worked k d on the th topic t i to t know tricks. run demos. Conference papers have more recent results.g.  Understanding the field Why is it important? idea model conjecture solution What are the main application areas? Id Identify tif the th key k components t (HW and d SW) of f your system. Extend the solution to  more general cases 8. weapons. Validate your  solution in practice 6.

be critic. Output variables (variables you want to measure to evaluate the performance of your method). − Slightly change the problem to  cover more realistic cases.  Thinking of a problem What is the novel contribution you would like to give to the field? Make a wish list. 19 20 When reading papers. Build a model of your system: Clearly l l identify d f the h assumptions you need d to simplify lf reality (but not too much). The highest impact on research is due to novel ideas that criticize imprecise thinking. State variables (variables describing the system state and behavior). thought 2. Input variables (primary variables affecting your method) Design variables (variables you want to change to apply your control actions). but it is also important you start experiments. plan. Define the metrics for evaluating the outputs of your system and its performance. Common mistakes The problem has already been solved Carefully look at the literature!! Don’t  get desperate.  Formalizing the problem Distinguish variables between: System parameters (variables you don’t want to change). − Find another problem.  Formalizing the problem If the problem is too complex. 24 4 . You may find issues are quite different than you thought. you may − Find a better solution.16/04/2012 Common mistakes Think. Too simplistic assumptions Nobody will be interested in a solution that is not applicable to a real situation. simulations and analysis. − Extend the existing solution to  more general cases. and never get into the main game Reading is important. from big dreams to smaller (but more realistic) goals. 23 3. break it into a set of smaller sub‐problems. 21 22 3. never take everything as a dogma. ⇒ Read papers as a reviewer! Common mistakes Choosing a wrong direction Your supervisor may have the experience to advise on this. Define the system interface. read. goals Which features would you like to have on your system? Go back to the literature to see if some problem has already been solved.

  Finding a solution Experiments can give good hints for finding a solution. experimental data can be performed to find counterexamples. Sometime. Vary the input variable in a given range. Everything will be useful when you write a paper.16/04/2012 3. etc. Measure the output for each value of the input.  Formalizing the problem Find relations among the variables: how outputs are influenced by inputs? If relations cannot be easily derived by the physics. but they are extremely useful to identify critical situations and countermeasures to avoid them. • experiments you carried out. Write notes and comments every week to monitor i the h progress of f your research: h • problems encountered (how you solved them). • assumptions you are making. Fix the others as parameters. Counterexamples brings usually bad news. Decide a single output variable. 25 Example 1 Determine the timing of a traffic lights in a crossroad: What are the relevant variables? • • • • • • duration of green (G) period ( p (T) ) flow in each road (Φi) queue lengths (qi) average car speed (v) average delay of a car S2 STOP STOP S1 G S1 T S2 26 Example 2 Design a communication protocol in a computer network: What are the relevant variables? • • • • • • • • number of nodes network topology p gy average load message size message rate network bandwidth end-to-end delay error probability n Example 3 Design a control algorithm for a robotic device: Relevant variables Ball & Beam ρ M T B D p System parameters • ball mass: m • ball radius: r • beam length: L • ball's moment of inertia: J • gravitational acceleration: g 27 • • • • • • • ball position: ball speed: beam angle: servo angle: sampling period: settling time: overshoot: x v α θ T σ δ 28 4. If it is too high. evaluate its computational complexity. 29 4.  Finding a solution If the solution is an algorithm. Even theoretical results can come to your mind by first looking g at experimental p data. simplify the assumptions or try heuristic approaches. make experiments: p Decide a single input variable. 30 5 . • scenarios you have considered.

Run the same set of experiments for each approach. 31 32 6.  Extending the solution Go back to the assumptions you made to simplify the system model: Are there assumptions that are too artificial or restrictive? How the solution and the results would change by relaxing those assumptions? How could the model be enriched with more variables describing more details? 35 7. Remember to record both mean and variance for each set of output values. 34 7. 33 6. 5. output variables should be averaged on several runs for each input configuration. If your solution performs worse than the others for all possible scenarios. Identify all the differences (assumptions. then you are in trouble. This can still be interesting. evaluating the solution on a simulated system is more practical and reasonable. Implement the best methods you have found. model.16/04/2012 5. complexity.  Validating the solution Often. performance). for which your solution can be more appropriate than the others. Apply the solution to one or more specific cases. Sometime the improvement is observed only within a certain range of the input variables.  Validating the solution Implement the solution. In this case: input or state variables should be generated as random numbers within g given ranges g and realistic distributions.  Comparing the solution Search the literature to find different solutions to the same problem.  Extending the solution Are there other components to be considered? Is the analysis improvements? tight? Is there space for Are experimental results complete? 36 6 . under several conditions (different values of the input or state variables). Evaluate the performance according to the metrics previously defined.  Comparing the solution Before giving up. make sure you compare the approaches with respect to different metrics: often it’s reasonable to sacrifice performance for a lower complexity or a more realistic model. since that range can occur for particular systems.

Remember to register the technical report and put it on your web b page. 37 8. In the meantime. which has much more visibility to the external world. 39 8. some people can give you a feedback to improve your work.16/04/2012 8. don’t rely on someone else. If the paper is accepted. Making a new printed circuit from scratch. 40 General advices If you have a hard deadline. in the case somebody should publish a similar work. In academic research one is continually venturing into new areas.  Communicating the solution With the feedback you received from the reviewers and from people at the conference. Most students underestimate the importance of physical aspects. do not wait until the whole project is finished. write a technical report. which is important for a number of reasons. This is important for receiving a quick feedback (normally after 2‐3 months) from a number of reviewers. g . restroom so be ready. ask him/her to revise it and put it on his/her web page. Soldering components and testing them. because you may easily forget it by the time you get to the office. Using Making an actuator to move and build a function that controls it as desired. 41 General advices Write down an idea when you have it. you can keep working to extend your work.  Communicating the solution Why presenting a paper at a conference is important? You have the unique possibility to join a community of experts and exchange interesting ideas.  Communicating the solution Then. This is a very constructive experience. ready Do not be afraid to admit your ignorance. After your presentation. Perfectionism and attention to detail is a virtue. Some ideas come at the restroom. Taken to excess. you can think of writing a stronger paper for a journal. You have the possibility to attract the interest of big gurus in the field and to make contacts with a lot of interesting people. 38 8. 42 7 . If the work is done together with your supervisor.  Communicating the solution As soon as you have got an interesting result. Some ideas come early in the morning. This ensures you the paternity of the result. such as: g a sensor to acquire q data into y your p program. you have to make a presentation at the conference. it is a vice. select a conference with your supervisor and write a paper for that conference. Ordering devices and have them on your desk. so keep paper and pencil on your bedside table. paper p will be The issue on how to write a research p covered in detail later on.

but in the methodology. reading is not what research is about. but remember. Most of the time. make a step back to learn and then return to study the approach. plants.16/04/2012 How to get ideas Read widely. but often details are available in technical reports. 47 How to get ideas? Observe Nature (Animals. the key idea is not in the details. How to get ideas? Think of some practical issue – Start from problems that really bother you: Dissatisfaction is the major source of inspiration 45 46 How to get ideas? Be driven by passions – Passion is one of the strongest forces in Nature Search the web using  combined keywords. How to get ideas What to read? conference papers are the most up to date. Make a selective reading: quickly go through the paper to see if there is anything interesting. 43 How to get ideas Reading approach Some degree of skepticism is appropriate when approaching most papers. 44 If you don’t understand the math. Verify the theoretical results and judge the assumptions trying to imagine them applied to your system. contact the authors directly by Email: Often they feel honored to be considered and will be happy to provide additional information on their work. When details are important and you cannot find them. phenomena) All solutions found by Nature are characterized by – High Efficiency – Beauty and elegance 48 8 . interesting then look for specific points. like: • music & statistics • painting & algorithms • biking & sensors • soccer & measurement You will find interesting  unexpected results. Too much reading could be a major danger that could prevent new ideas to flourish. Questions to always have in mind: What is the main problem to be solved? What are the main assumptions. Don’t trust anything you read.

... etc. Examples are lists of questions.. and do it. 51 Some hints It’s very useful making lists. Collaborate with someone on a common problem. 49 50 How to get ideas? What do we learn? Curiosity means pursuing something that does not necessarily have an obvious purpose. possible experiments. documents were written using a single font: Courier Many different fonts are available today much nicer to read! How to get ideas? An interesting story Simply out of curiosity. possible surveys. Imagine the results of experiments before making them: if the results were to be . Ask successful researchers in your department if they have particular methods for getting ideas. Steve Jobs decided to attend a calligraphy course.. Attend seminars: you can find interest topics and you learn how to present (or not to present). and then organizing them..16/04/2012 How to get ideas? Look into other fields – Get knowledge from other fields: different problems may have similar solutions An example: At the beginning.. we may discover unexpected connections with what we are doing that can form the basis for new ideas. Later.. where he learned all about typefaces. his experience was crucial for the design of the Macintosh user interface. not because you actually understand the implications. Think of an experiment that nobody else has done.. fonts. then we would conclude . and what is needed to make printing a beautiful form of art. art The course had no practical value that he could imagine. 53 What to do if you don’t have ideas? Criticize a paper by someone else: Are there assumptions that are too artificial or restrictive? How could the model be enriched with more variables. letter spacing. Brainstorm with your colleagues about problems they have. which set a standard for all word processors. Ten years later. sources of data. and he took it just for pleasure. We examine something merely because it seems interesting. 52 What to do if you don’t have ideas? Take advantage of being in a Lab Talk to people to know what they are doing. The emphasis here is on doing something because it can be done. describing more details? Are there other components to be considered? Is the analysis improvements? tight? Is there space for Are experimental results complete? 54 9 . otherwise our conclusion would be .

 because Simplicity implies: – deep understanding – distilling – beauty and elegance Examples in science E = mc2 F = k x V=RI F = ma It needs time. – Good ideas need incubation and deep thinking 57 factorial(n) { if (n == 0) return 1. − From uniprocessor to multiprocessor or distributed. − From single goal to multiple goals (feasibility + energy) What to do if you don’t have ideas? Reduce complexity System are becoming more and more complex Sometime too complex to be properly used or fully understood Simplification is a very promising process in the future at many levels: ⇒ Less computational complexity ⇒ Smaller program size ⇒ Simpler interfaces 56 Can I build a tool that does it automatically? 55 Seek for simplicity Achieving simplicity is very difficult. return (n * factorial (n-1)).16/04/2012 What to do if you don’t have ideas? Build on top of existing work: Can I improve the experiments? Can I improve the theory? − From deterministic d i i i to statistical i i l analysis. } 58 Achieving simplicity Strategies to handle complexity: Partitioning Isolation I l ti Abstraction Partitioning It is the process of dividing a system into independent parts that can be studied in isolation. l i − From fixed priorities to dynamic priorities. 59 60 10 .

not because they are needed. Abstractions reduce the information content. to understand its behavior in relation with the others: Abstraction An Abstraction is a concept that connects a set of items as a group or category. abstractions allow program designers to separate methods from implementation mechanisms. so that they do not depend on software or hardware: Examples A queue A resource manager A virtual processor Achieving simplicity Techniques to simplify a process: Reduce functionality Hide extra functions Organize your knowledge 63 64 Reduce Today.16/04/2012 Isolation It is the process of focusing on a specific component. retaining what is relevant for a particular purpose. new functions are included just because it is possible. “ball” 61 62 Abstraction In Computer Science. Reduce functionality Reduce Crucial issue to be addressed What to remove? Balance between essential and fancy clock alarm date temp set mode up down 65 66 11 .

clock alarm UP DOWN Crucial issues to be addressed What to hide? Where to put? 67 68 Hide Extra functions can be revealed only when needed Hide Hiding can be hierarchical 69 70 Organize Group similar items into categories Organize Making a taxonomy is crucial for grasping the key features of a set of similar items: State of the art papers Neural learning paradigms Scheduling algorithms Control schemes Power‐aware strategies … 71 72 12 . Hide If you cannot reduce any further. And time is value. hide non essential functions.16/04/2012 Reduce Simplicity saves you time.

Organize The same thing happened on Real‐Time Systems: Rate-Monotonic Deadline Monotonic Sporadic Server Priority Inheritance Priority Ceiling Slack Stealer Least Laxity First Fixed Priority Scheduling 75 Organize The same thing happened on Real‐Time Systems Scheduling algorithms Fixed-priorities Dynamic priorities EDF Polling Server periodic aperiodic periodic aperiodic RM DM PS DS EDF LLF TBS CBS 76 Organize Strategies useful for achieving organization: List all the features Sort Group into categories Integrate (reduce to fewer groups) VERY IMPORTANT Organize The key of software organization: a TAB character is not equivalent to N spaces 77 78 13 . ASE-ACE Q-learining. Kohonen.16/04/2012 Organize When I started working on Neural Networks: Back propagation Kohonen networks Self-organizing maps Reinforcement Learning Q-learning Organize Slowly some order emerged from the chaos… Learning paradigms supervised competitive reinforcement Reward-Based Functions Recurrent networks Associative networks Competitive learning Hopfield networks 73 74 Hopfield Back-Prop. SOM.

j <n. int n) i. i++) { min = v[i]. for (i=0.i <n-1.j. for (j=i+1. temp.  summer schools 83 14 .j++) if(v[j]<min) { min=v[j]. for (j =i+1. special tracks. //find minimum bewteen i and n-1 k =i. min. } if (k > i) { temp = v[i].int n) { int i. lectures. v[i] = v[k]. // find minimum bewteen i and n-1 k = i. k. courses Take it as a pleasure for tranfering knowledge Assistant professors W it Papers Write P Write Proposals Organize demos Teach courses PhD Undergrad students Post Doc Organization conferences. get positions Teach courses Teaching seminars. } } } 80 The best example money Research components researchers students people teaching Projects conferences Applic papers Spin-off 81 books tools Services are also required Reviews 3 reviews per paper per year Project reviews Research hierarchy Full professor Associate professor Find industrial contacts Meet with industries Propose projects Get money.16/04/2012 Organize void { int int int sort(int *v.} if( k> i){ //swap v[i] with v[k] temp = v[i]. worshops. j. k = j. //value and index of minimum element //temporary variable int temp.k.k=j. } } } 79 Organize Something that should NEVER be produced: // array indexes // value and index of minimum element // temporary variable // swap v[i] with v[k] void sort(int *v. for( i= 0 . // array indexes int min. v[k] = temp. v[i] = v[k]. j++) if (v[j] < min) { min = v[j]. j<n. demos.i++ ){ min = v[i]. v[k] = temp. i<n-1.