Automatically assessing and improving code readability and understandability