4CA10 (2024-2) Principles of design and programming