Course Information
Course Title | Object Oriented Design and Analysis |
Course Number | CS 5004 |
Semester | Spring 2016 |
Prerequisites | CS 5001 Intensive Fundamentals of Computer Science |
Contact Information
Role | Name and Email | Address | Office Hours |
---|---|---|---|
Instructor |
Therapon (Theo) Skoteiniotis (skotthe@ccs.neu.edu) |
401 Terry Ave. Suite 100, Room 142, Seattle, WA, 98109. |
Thursday 4-5pm; at my office. |
Assistant |
Matt Wiebe Use Piazza |
225 Terry Ave. Seattle, WA, 98109. |
Monday, 3-5pm; in or around the ORCAS room. |
Assistant |
Preety Mishra Use Piazza |
225 Terry Ave. Seattle, WA, 98109. |
Friday, 2-4pm; in or around the ORCAS room. |
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 | 55% |
Midterm | 20% |
Final | 20% |
Codewalk Participation | 5% |
The final grade for a student is calculated as the weighted average of the preceding list and rounded up to the nearest integer. 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 mainly from specific sections of the Java Tutorials.
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).
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 Eclipe.
Helpful Links
- CCIS Systems Group Howto
- Eclipse and Java Video Tutorials
- IntelliJ Video Tutorials
- The Java Tutorials