Goals of this course

The big ideas: improve your ability in the following areas

  1. An organized methodology for implementing medium-large software systems
  2. The art of team programming
  3. Thinking innovately
  4. Independent learning of new concepts, tools, and software frameworks
  5. Oral and written communication and discussion of your ideas, designs and implementations

The technical topics you will learn:

  1. Master common design and coding methodologies, including Object-Oriented Design (OOD), Design Patterns, Refactoring, and the Universal Modeling Language (UML)
  2. Master standard software engineering tools, including Eclipse, JUnit, JavaDoc, Java Swing, and Subversion

                      image

For more information on how the course will run »

Prerequisites are Data Structures (600.226) or significant Java programming programming experience. The course is generally not recommended for sophomores, but may be appropriate for the few sophomores that have significant programming experience.