Title: Object-Oriented Design & Patterns, 2nd ed. Author: Cay Horstmann.
Publisher: Wiley Publishers, Inc. ISBN-13: 978-0471744870. There may be
additional ...
CS 151: Object-Oriented Design GREEN SHEET Fall Semester 2013 Department of Computer Science San Jose State University Instructor: Ron Mak Section 3: TuTh 9:00 - 10:15 AM, Science Building, room 311 Office hours:
TuTh: 7:15 - 10:00 PM and by arrangement
Office location: E-mail:
MacQuarrie Hall, room 413
[email protected]
Course catalog description "Design of classes and interfaces. Value and reference semantics. Object-oriented design methodologies and notations. Design patterns. Reflection and serialization. Exception handling. Graphical user interface programming. Frameworks and components. Multithreading. Required team-based programming assignments." 3 units
Prerequisites Math 42 CS 46B CS 49J
Discrete Mathematics Introduction to Data Structures Programming in Java (or equivalent knowledge of Java)
A grade C- or better in each, or instructor's consent. The Department of Computer Science strictly enforces prerequisites. A student not meeting any prerequisites must fill out an Add Form at the beginning of the semester to explain his or her justifications to take the course, and it will be the instructor's and the department's decision whether or not to allow the student to enroll.
Material assumed from prerequisite courses Students are expected to have these skills: • • • •
Discover and design simple classes Use encapsulation (private fields) Document all public features of a class (javadoc style, @param, @return) Design and implement programs that involve a single class or a couple of
1
• • • • • •
•
collaborating classes Distinguish between instance fields/methods and static fields/methods Read and write text files Know sorting algorithms Be able to implement and use arrays, lists, queues, stacks, hash tables Develop and debug programs with > 100 lines of code Know enough mathematics to be able to produce simple graphs (compute length of lines, end points of lines with a given starting point and angle, intersection of lines and circles, transform 2D coordinates) Use javadoc
Course goal Introduce students to the basic principles of OO Design, plus elements of UML and design patterns. Cover the Java language features not yet seen in CS1 and CS2. Teach basic GUI programming.
Course objectives •
•
•
OO Design: o Introduce core UML concepts o Introduce a simplified OO analysis and design methodology o Present the concept of design pattern o Present the concept of a software framework Java Language: o Make students proficient in the use and creation of interfaces and inheritance hierarchies o Make students proficient in the Java type system o Introduce threads and thread safety GUI Programming: o Introduce a GUI toolkit, including basic widgets and the event handling mechanism.
Student learning outcomes Upon successful completion of this course, students should be able to: •
•
OO Design o Interpret and produce UML class diagrams and UML sequence diagrams o Develop simple use cases, perform noun-verb analysis, interpret and produce CRC cards o Appropriately select and apply the following design patterns in the construction of a software application: Composite, Decorator, Iterator, Strategy, Template method, and Observer o Be able to follow a systematic OO design methodology Java language o Create a class hierarchy involving existing and new interfaces and classes, including inner classes.
2
Design, implement, test, and debug programs in an object-oriented language, involving the creation of at least 10 classes and interfaces o Implement correctly the equals, hashCode, clone , toString methods o Use serializaton, reflection, and generics o Throw, propagate and catch exceptions o Implement threads and thread-safe data structures GUI Programming o Use a GUI toolkit to create a graphical user interface involving frames, buttons, text components, panels, menus, and simple geometric shapes o
•
Required texts Title: Author: Publisher: ISBN-13:
Object-Oriented Design & Patterns, 2nd ed. Cay Horstmann Wiley Publishers, Inc. 978-0471744870
There may be additional reading assignments and use of tools from the Internet. I will provide URLs.
Recommended texts Title: Author: Publisher: ISBN-13:
Head First Object-Oriented Analysis & Design Brett D. McLaughlin, et al. O'Reilly Media, 2006 978-0596008673
Schedule This schedule is subject to change with fair notice. Readings are chapters from Object-Oriented Design & Patterns, 2nd ed. Week 1
Dates Aug 22
2 3
Aug 27, 29 Sept 3, 5
4 5 6 7
Sept 10, 12 Sept 17, 19 Sept 24, 26 Oct 1, 3
Topics and activities Introduction Form project teams Journey to good design Journey to good design Object-oriented design process Object-oriented design process Guidelines for class design Guidelines for class design Interface types and polymorphism
Readings
2 3 4
3
8 9
Oct 8, 10 Oct 15, 17
10 11 12 13 14
Oct 22, 24 Oct 29, 31 Nov 5, 7 Nov 12, 14 Nov 19, 21
15 16
Nov 26 Dec 3, 5
17
Dec 12
Interface types and polymorphism Midcourse review Midterm exam Thursday, October 17 Patterns and GUI programming Patterns and GUI programming Inheritance and abstract classes The Java object model Frameworks Multithreaded programming Multithreaded programming Multithreaded programming Course review Final exam Thursday, December 12 Science Building 311 7:15-9:30 AM
5 6 7 8 9 9 9
Project teams You will form project teams of 3 to 4 students each. The teams will last throughout the semester. Once the teams are formed, you will not be allowed to move from one team to another, so form your teams wisely! Each student must be on a team.
Course requirements and assignments Assignments will be team-based. For each assignment, each project team will turn in one set of work, and all members of each team will receive the same score for the assignment. Each team is responsible for choosing a team lead and dividing up the work among the team members. You are personally responsible for participating and contributing to your team's work, and for understanding each part of the work for every assignment whether or not you worked on that part. Each assignment is worth a maximum of 100 points. Late assignments will lose 20 points and an additional 20 points for each 24 hours after the due date. SJSU classes are designed such that in order to be successful, it is expected that students will spend a minimum of forty-five hours for each unit of credit (normally three hours per unit per week), including preparing for class, participating in course activities, completing assignments, and so on. More details about student workload can be found in University Policy S12-3 at http://www.sjsu.edu/senate/docs/S12-3.pdf. Note that University policy F69-24, “Students should attend all meetings of their classes, not only because they are responsible for material discussed therein, but because active participation is frequently essential to insure maximum benefit for all members of the class. Attendance per se shall not be used as a criterion for grading.”
4
Assessments At the end of the semester, each of you will turn in an assessment of your own performance on your team, and an assessment of each of the other members of your team.
Exams There will be unannounced quick quizzes at the start of some classes to test your understanding of the lectures and readings. There will be no make-ups for missed quizzes. The quizzes, midterm, and final examinations will be open book, notes, and laptops. Instant messaging, e-mails, texting, tweeting, or other communication with anyone else during the exams will be strictly forbidden. You will get an individual score for each quiz and exam.
Class grade Your individual class grade will be weighted as follows: 50% 15% 15% 20%
Assignments* Quizzes** Midterm exam** Final exam** * project team scores ** individual scores
Each assignment and exam will be scored (given points) but not assigned a letter grade. The mean score and standard deviation will be announced after each assignment and exam. Final individual class letter grades will be assigned based on the class curve. Your final class grade can be adjusted up or down depending on your level and quality of participation on your project team as determined by the project tracking tools and your team members' assessments of your performance.
Classroom protocol It is very important for each student to attend classes and to participate in class discussions. Some class meetings will end with time for each team to meet. Cell phones in silent mode, please.
5
Dropping and Adding Students are responsible for understanding the policies and procedures about add/drop, grade forgiveness, etc. Refer to the current semester’s Catalog Policies section at http://info.sjsu.edu/static/catalog/policies.html. Add/drop deadlines can be found on the current academic year calendars document on the Academic Calendars webpage at http://www.sjsu.edu/provost/services/academic_calendars/. The Late Drop Policy is available at http://www.sjsu.edu/aars/policies/latedrops/policy/. Students should be aware of the current deadlines and penalties for dropping classes. Information about the latest changes and news is available at the Advising Hub at http://www.sjsu.edu/advising/ .
Consent for Recording of Class and Public Sharing of Instructor Material University Policy S12-7, http://www.sjsu.edu/senate/docs/S12-7.pdf, requires students to obtain instructor’s permission to record the course. “Common courtesy and professional behavior dictate that you notify someone when you are recording him/her. You must obtain the instructor’s permission to make audio or video recordings in this class. Such permission allows the recordings to be used for your private, study purposes only. The recordings are the intellectual property of the instructor; you have not been given any rights to reproduce or distribute the material.” “Course material developed by the instructor is the intellectual property of the instructor and cannot be shared publicly without his/her approval. You may not publicly share or upload instructor generated material for this course such as exam questions, lecture notes, or homework solutions without instructor consent.”
Academic integrity Your commitment as a student to learning is evidenced by your enrollment at San Jose State University. The University Academic Integrity Policy S07-2 at http://www.sjsu.edu/senate/docs/S07-2.pdf requires you to be honest in all your academic course work. Faculty members are required to report all infractions to the office of Student Conduct and Ethical Development. The Student Conduct and Ethical Development website is available at http://www.sjsu.edu/studentconduct/. Instances of academic dishonesty will not be tolerated. Cheating on exams or plagiarism (presenting the work of another as your own, or the use of another person’s ideas without giving proper credit) will result in a failing grade and sanctions by the University. For this class, all assignments are to be completed by the individual student unless otherwise specified. If you would like to include your assignment or any material you have submitted, or plan to submit for another class, please note that SJSU’s Academic Integrity Policy S07-2 requires approval of instructors.
6
Campus Policy in Compliance with the American Disabilities Act If you need course adaptations or accommodations because of a disability, or if you need to make special arrangements in case the building must be evacuated, please make an appointment with me as soon as possible, or see me during office hours. Presidential Directive 97-03 at http://www.sjsu.edu/president/docs/directives/PD_199703.pdf requires that students with disabilities requesting accommodations must register with the Accessible Education Center (AEC) at http://www.sjsu.edu/aec to establish a record of their disability. In 2013, the Disability Resource Center changed its name to be known as the Accessible Education Center, to incorporate a philosophy of accessible education for students with disabilities. The new name change reflects the broad scope of attention and support to SJSU students with disabilities and the University's continued advocacy and commitment to increasing accessibility and inclusivity on campus.
7