Skip to content

Home

In response to COVID-19 crisis

Refer to this page for “Remote Teaching Resources & Information”

Course Object-Oriented Software Engineering
Course Number EN.601.421/621
Term Spring 2020
Instructor Ali Madooei
Discussion Board Piazza - Use this signup link

Welcome to OOSE!

Object-Oriented Software Engineering (or as we like to call it, OOSE) is a course about developing software that others can understand, maintain, and grow. The course goals include improving your ability to:

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

What do we do in OOSE?

You form groups of 5–6 students and work on a project of your choosing throughout the course. There are weekly "project-meeting" sessions for you to work on your project. A staff member advises your group, helping you along the way and reviewing your progress.

In lectures, we discuss the principles discovered by software engineers over decades of practice, for example, design patterns, refactoring techniques, and so forth. Moreover, we will help you to get started with tools, techniques, and technologies that you need to actually develop software. These are tools like programming languages, version control systems, and so forth, that are best learned by doing the homework (and employing them in your project).

Who are the intended audience?

Most students come to OOSE when they're new to programming—they’re fresh out a data-structures course. For these students, OOSE is their first opportunity to work on a big code base that needs to be maintained over a long period. They learn how to collaborate with other developers and become more confident of their skills.

Other students come to OOSE with more experience (after having done an internship or worked in industry). For these students, OOSE is a way to learn the principles behind what they have picked up from experience. Also, OOSE is a playground for them to try new tools and contribute to open-source software.

Regardless of your level of experience, OOSE is a course for you to become a better software engineer and have fun developing a project with your colleagues.

Schedule and Calendar

Click here to see the schedule. The schedule is tentative and it will be updated as we progress through the term.