4.2 Connecting computational thinking and program design