Course Goals

Improve your ability to:

  1. Develop an organized methodology for implementing larger scale software systems
  2. Program effectively on a team
  3. Think innovately
  4. Independently teach yourself new software libraries, frameworks, and tools
  5. Orally communicate your ideas, designs and implementations

To master technical topics and tools of the software engineering trade:

  1. The software development lifecycle: requirements; design; implement; test; deploy
  2. Design and coding methodologies, including Object-Oriented Design, Design Patterns, Refactoring, and UML
  3. Standard software engineering tools and frameworks, including Eclipse or IntelliJ, JUnit, JavaDoc, Maven, and git
  4. Web programming basics including JSON, RESTful web servers and AJAX
  5. Frameworks and tools you will learn on your own for your group project (varies by project topic)