A branch of engineering science that studies the principles of design and applications of computer systems