Course Goals

Improve your ability to:

  1. Elegantly implement larger scale software systems
  2. Work effectively with a team of programmers
  3. Think independently and innovately
  4. Orally communicate your ideas, designs and implementations

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

  1. The components of 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, such as IntelliJ, JUnit, Maven, Postman, and git
  4. Web programming basics including JSON, RESTful web servers, Javascript
  5. (Other frameworks and tools you may use on your group project)