Design and develop systems and applications and expand the knowledge and capabilities of software development, technologies, and methods.