Understanding Human-Computer Interaction: Types and Practical Usage