Essential Logic for Computer Science