Explain how principles of computer programming are applied in different languages to produce software applications. Explain how the principles of software design are used to produce high-quality software applications that meet the needs of users. Analyse how computational thinking skills can impact software design and the quality of the software applications produced. Evaluate how computational thinking skills can impact software design and the quality of the software applications produced.