Using Matlab's conv() function
For your second question, valid means the range of output where there is full overlap between the convolving signals. 

Note that for two causal signals, $x[n]$ of length $L_x$ and $h[n]$ of length $L_h$ the convolution output $y[n]$ will be of length $L_y = L_x + L_h -1$. 

However among those output $y[n]$ samples, the first $L_d = \min\{L_x,L_h\} -1$ and the last $L_d= \min\{L_x,L_h\} -1$ samples will be computed with partial overlaps between $x[n]$ and $y[n]$ (whicih are the edge samples) but the remaining portion (that's in the center) will be be computed by full overlap with the shorter sequence being fully inside the longer sequence.

In your case; $L_x = 4$ and $L_h=3$ then the first and last $2$ samples will be discarded and the center $2$ samples will be returned.