Understand the principles of software engineering and software life cycle: Requirements, design, implementation, testing, and maintenance. Principles of modern software development methodologies. Analyzing, designing, implementing, testing, and maintaining software systems.