Course Information

Course Title Object Oriented Design and Analysis
Course Number CS 5004
Semester Spring 2017
Lectures Tuesday, 6:00pm - 9:00pm, Terry 225, Room 306.
Labs Section A: Wednesday, 2:30pm - 5:30pm, Terry 225, Room ORCAS.
Section B: Wednesday, 6:00pm - 9:00pm, Terry 401, Room 106C.
Prerequisites CS 5001 Intensive Fundamentals of Computer Science

Contact Information

Role Name and Email Address Office Hours
Instructor Maria Zontak
(zontakm@northeastern.edu)
401 Terry Ave.
Suite 100,
Room 159,
Seattle, WA, 98109.
Thursday 3-5pm,
Tuesday 3:30 - 5:00pm by appointment only
Room 159,
401 Terry Ave.
Instructor Therapon (Theo) Skoteiniotis
(skotthe@ccs.neu.edu)
401 Terry Ave.
Suite 100,
Room 160,
Seattle, WA, 98109.
Friday 3-5pm,
Room 160,
401 Terry Ave.
Assistant Ruo Jia
Use Piazza
225 Terry Ave.
Seattle, WA, 98109.
Monday 3:30 - 5:30 pm
225 Terry
Assistant Allen Wong
Use Piazza
225 Terry Ave.
Seattle, WA, 98109.
Saturday 1:00 - 3:00 pm
225 Terry
Assistant Jessica Malloy
Use Piazza
225 Terry Ave.
Seattle, WA, 98109.
Friday 3:00 - 5:00 pm
225 Terry
Assistant Brittany Gaston
Use Piazza
225 Terry Ave.
Seattle, WA, 98109.
Monday 1:00 - 3:00 pm
225 Terry

Course Description

The course focuses on Object-Oriented (OO) program design. Students learn how to design programs using classes and objects, and, implement solutions that take advantage of Object-Oriented features including generics, inheritance and polymorphism using the Java programming language.

The course further introduces the UML notation as a means to describe OO designs and studies design patterns by analysing, implementing, and critiquing common design patterns.


Grading Policy

Assignments 67%
Midterm 15%
Final 15%
Instructors Discretion 3%

The final grade for a student is calculated as the weighted average of the preceding list and rounded up to the nearest integer.

NOTE: we reserve the right to alter our grade decomposition if we deem necessary during the semester. In such a case the class will be notified.

The mapping to a letter grade uses the following scale

A [95, 100]
A- [90, 94]
B+ [85, 89]
B [80, 84]
B- [75, 79]
C+ [70, 74]
C [65, 69]
C- [60, 64]
D [0, 59]

The decomposition of assignments and exams may change during the semester depending on how the class progresses during the semester.

Extensions

Late assignments will not be accepted unless you have explicit instructions from the instructor. If you are to miss lectures and/or require an extension for a deadline, please ensure you inform the course staff in advance. The earlier we are informed the easier it will be to accommodate your request.


Textbooks

Required

There is no required text for this class. Reading material will be available online.

Recommended


Attendance

You are expected to attend all lectures and all code walks.

Missing Lectures

If you have to miss a lecture please inform the course staff. Materials covered for each lecture, readings, tutorials, assignments, are available on the course web page.

Missing Codewalks

If you have to miss a scheduled codewalk you must contact the course staff in order to reschedule. Codewalks must be completed; missed codewalks will result to point deductions.

Assignment Extensions

Assignment extensions are at the discretion of the instructors. If you would like to discuss a possible extensions talk to the course instructors in advance (minimum of 48 hours).

The Spring 2017 semester ends on April 29th. Please make any travel plans with this in mind.


Academic Honesty

You are expected to read, understand and follow the University’s policies on Academic Integrity

During assignments you are encouraged to discuss the problem with classmates on piazza or other forums. You are however not allowed to share solutions.

Working Individually

All work submitted for assignments expected to be completed individual must be your own work. You are not allowed to share code. Code that is identical or similar will be penalized and reported to the appropriate University authorities.

Working in Teams

All work submitted for assignments expected to be completed as a team must be the team’s work. You are not allowed to share code with people outside your team or with another team. Code that is identical or similar will be penalized and reported to the appropriate University authorities.


Tips for Success

You cannot learn everything you need to know in lectures and/or homeworks. You must:

  1. Read the assigned material.

    Try to stay ahead of the game and read material before it is covered in class. If you have questions, write them down. If these questions don't get covered, ask in class and/or meet with the tutors, lab coordinator, or professor.

  2. Attempt to solve additional problems.

    Try to solve as many exercises as possible as you read. Discuss your approach/solution with the course staff or your classmates.

  3. Attend lectures.

    Lectures accentuate the material you should have already read. Take advantage of the extra explanations and examples during the lectures to ensure you comprehend the material. Prepare questions to ask but also listen to questions asked by your classmates.

  4. Talk to the course staff.

    If the lecture and the notes leave you with questions on the material, see your teacher(s) during office hours or make an appointment. Mark the the material that you haven't understood and prepare questions that express what you haven't understood.

  5. Keep up.

    Experience proves that students who fall behind quickly drop out. So, keep up with the readings, tutorials, and the homeworks. Ask for additional problems, if the homeworks failed to make a point.


Diversity/Disability Statements

If you require support during the course due to disability please ensure that you are already registered with the University’s Disability Center and contact your course instructors in order to coordinate any support needed during the course.


Software

The course will be making heavy use of the following software

There are multiple IDEs for Java. You are free to use whichever one you like. The instructional material and lectures will be using IntelliJ.


Helpful Links