Software engineers address all aspects of software production from strategy and design to coding, quality and management. This course includes foundations in mathematics, computer science and computer system principles, with further studies in programming languages, databases, operating systems and enterprise and internet scale systems.