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.
- The Java Tutorials.
- How to Design Classes (HtDC). The book is online and the material is presented in a similar fashion the How to Design Program's book used in CS5001. The book uses a Java like language inside DrRacket that we are not going to use in this class.
Recommended
- Joshua Bloch, Effective Java, Second Edition. Addison-Wesley, 2008.
- Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading MA 1995.
- Martin Fowler, UML Distilled: A Brief Guide to the Standard Object Modeling Language. Addison-Wesley Longman Publishing Co., Inc. Boston MA 2003.
- Peter Sestoft, Java Precisely, Second Edition . MIT, 2005.
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:
- 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.
- 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.
- 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.
- 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.
- 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
- Java
- Git
- CCIS Github instance (NOTE: This is not the public Github, but rather the Department's own Github instance.)
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
- Northeastern's International Tutoring Center. The International Tutoring Center (ITC) provides free, comprehensive English language and academic support. You can sign up online for sections here in Seattle. Depending on demand Jeremy Walter has graceously volunteered to start specific coding relevant groups here in Seattle. Send Jeremy an email to find out more.
- CCIS Systems Group Howto
- Eclipse and Java Video Tutorials
- IntelliJ Video Tutorials
- The Java Tutorials