Lógica de programação: o que é, como estudar e exemplos