>>5side effects are things like changing the state of some variable in a program and IO. Without side effects, the order in which you execute two expressions, s1 and s2, makes no difference. They aren't good or bad per se. Purely functional languages don't have side effects.
This: http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-19.html#%_chap_3 is a good read too.