Learn all aspects of software production, from strategy and design to coding, quality and management. Develop knowledge in programming and computer languages, data structures, algorithms and databases, data-centric computing, operating systems and software project management.