Course Logistics


We will meet 1:30-245PM Mondays and Wednesdays in Hackerman B17.

We will spend around half the class slots on lectures and the other half devoted to labs for teams to work on their projects and get feedback, project presentations, etc. The dateline describes the topics covered, what we will do each class period, and when assignments are passed out and are due.


The coursework consists of

  • Four written homework assignments;
  • One in-class quiz that will count a bit more than one assignment;
  • A semester-long team programming project with five iteration submissions, an in-class presentation, and a final demo and presentation.

Read more about the course project »

The project will account for the substantial majority of the final grade. Half of the project grade will be the final iteration, and another half will be for the previous iterations.

Frequently asked questions about the course »

Getting Up and Running

To get going in the course you will need to

  • Make sure you have the latest Java installed on your computer, see the Java section of the Tools page.
  • Get the textbooks.
  • Register for The OOSE Piazza Page (look under the logistics menu at the top) so you can receive course announcements and discuss the material with other students.
  • Sign up for Gradescope (again look under logistics above). The course code you need to sign up will be posted on Piazza.
  • Start on the first assignment
  • Familiarize yourself with the dateline to see what is coming up; in particular notice you need to have your 4-5 person project group formed soon.


The official prerequisite is Data Structures, but the real prerequisite is to have several courses or equivalent on-the-job programming experience developing real software in a high-level language.


The first assigment is a RESTful web server programming assignment; there will also be several small written homeworks to reinforce the lecture material. These homeworks are designed to be relatively easy, the primary focus of the class is the projects.

The collaboration policy for assignments is you are encouraged to form teams to work together on solving the assignments, but everyone must submit their own writeup of the answers (no emailing solutions to each other). Those of you who understand the material are encouraged to engage in peer teaching to help other students on your term or other teams. Note that your homework team is not necessarily related to your project team, and you can also do the homeworks on your own if you want.

Please make sure to consult the course Academic Integrity Policy on what is legitimate interaction for homeworks, it is spelled out in detail there.

Assignment submission and grade checking will be done through Gradescope.

The in-class quiz

We will have one in-class quiz on the Wednesday of the week after Thanksgiving. The purpose of this quiz is to test your knowledge of Java RESTful Web, OOD, UML class diagrams, design patterns, etc based on what you learned from the homeworks. The homeworks are group work to learn the concepts and this quiz will test that you learned the concepts.

The Collab Lab and Office Hours

The Collab lab is a cross between homework assignment office hours and group project lab time. A TA/CA/Prof or two will always be around in collab lab hours to help with either homework assignment problems or issues with your group project.

Information about office hours, the Collab Lab hours, and other contact information can be found on the course Contact us page.

Course Announcements and Discussions

We will be using the OOSE Piazza page for course announcements and discussions (link on the left; signup link is here).

Coding Style

Your code throughout this course will be graded in accordance with industry development standards and practices. The particular style requirements for Java code are enumerated at the bottom of the first assignment.