Teaches the principles of software development, from coding and testing to project management and user-focused design.