In a previous episode, we went over the three aspects of methods. We also talked about the call (of a method). Now, we will concentrate on the concept of "method header". Consider, for example, the following complete example where we wanted to compute the mean of two numbers. The header of the <i>moyenne</i> method is this line here ("moyenne" means "mean"). A method is characterized by a header, that is, a description of its name; the set of parameters that the method must receive from the rest of the program to be able to do the job; and by the type of its return value which the method will send back to the rest of the program. The syntax for the declaration of a header is the following: we start by the return type of the method, followed by the name we chose for it and, between parentheses, its set of parameters, which can be empty, parameters the method must receive from the rest of the program in order to work. In this lesson, we will also add the <i>static</i> keyword in front of the header; here, in front of the return type. This is specific to this introductory course, but will become an exception and will be explained in the object-oriented programming course. Here are a few header examples. This is the header of the example mean-calculating method which we went over in the previous slide. Here we can see the name of the method, <i>moyenne</i>; the return type, <i>double</i>, preceded by the <i>static</i> keyword here; and finally, between parentheses, the two parameters which we pass to the <i>moyenne</i> method to compute the mean of these two values. Another example here, with a method which does not take any arguments: here, we simply give an empty set of parameters to indicate that the method which draws a random number does not require any information from the rest of the program to do its job. Here are now a few tips for good practices concerning writing method headers. First, choose relevant names, names which are descriptive, which tell what the method actually does. This will make your code clear and easily understandable and easier to maintain. But of course, this supposes that the method will do only what it was designed to do. It must not have what is called "side effects", that is, undesirable effects. For example, if you have a method which calculates the square root of a number, which would be called "<i>sqrt</i>" and which would take a parameter<i>x</i> of type <i>double</i>, and which would return the square root of <i>x</i> in the form of a <i>double</i>, you would not expect this method to write the value in the terminal, or to print error messages. You expect it to do only one thing: to calculate this value and to return it to the rest of the program without polluting the outputs or doing anything unwanted, any "side effect". Finally, last tip, always start by writing the header of your method before writing the body of the method. Think first of the "what", that is, the name, what the method needs as parameters to work, and what it needs to return to the rest of the program before thinking about the "how", that is, the specifics of the method's body.