Basic principles in computing education