Computing and Information Technology Interactive Digital Educational Library


Syllabus Collection >
Syllabus >

Please use this identifier to cite or link to this item:

Title: Object-Oriented Programming and Design (4 units)
Authors: Department of Computer Science - University of Arizona
Issue Date: 
Publisher: Department of Computer Science - University of Arizona
Abstract: CSc 335 Object-Oriented Programming & Design University of Arizona, Spring 2006 Catalog Description C SC 335 -- Object-Oriented Programming and Design (4 units) Fundamentals of object-oriented programming, design principles and project management. Includes inheritance, polymorphism, graphical user interfaces, event-driven programming, frameworks and patterns. Prerequisite: C SC 127B or C SC 227. Lectures Tuesday and Thursday 3:30–4:45, CHVEZ (formerly ECON) 111 Recitations Monday 2:00–2:50, Monday 4:00��–4:50, Tuesday 10:00-10:50 Instructor Rick Snodgrass 621-6370 Office Hour Thursday 1:00–2:00 P.M. in 711 Gould Simpson Any time Rick's door is open (knock if the door is closed) Also by appointment: 621-6370 or Teaching Assistant Ken Sung Office Hours Tuesday, 2:15–3:15 in 228 Gould Simpson, Wednesday 3:00–4:00 in the 9th floor lab, 930 Gould Simpson Section Leader Drew Davidson Office Hours Monday, 3:00–4:00 and Friday 12:00–1:00 in the 9th floor lab, 930 Gould Simpson Overview C Sc 335 is the third course in the introductory sequence of programming and design with Java. This course explores object-oriented programming features such as polymorphism through interfaces and inheritance. You will learn event-driven programming and Graphical User Interfaces (GUIs). You will be learning some of the Unified Modeling Language (UML) and several design patterns. You will build several small systems in the first part of the course. In the final weeks, you will build a relatively complex system. You are expected to have previous Java programming experience and a knowledge of objects, classes, control structures (if...else, loops), arrays, and data structures. Course Goals bullet Understand and use the fundamentals of object-oriented programming: encapsulation, polymorphism, and inheritance bullet Understand the relationships between objects, classes, and interfaces bullet Build relatively complex systems with at least one that has 15 or more classes that you write bullet Learn to work with others bullet Use good practices of programming to develop good object-oriented software bullet Become comfortable with event-driven programming and graphical user interfaces bullet Use tools of modern object-oriented software development such as Design Patterns, the Unified Modeling Language (UML), unit testing (JUnit), and a professional integrated development environment (Eclipse with the Java Development Toolkit). bullet See the value of testing and how it helps to design and refactor code bullet Write clean code that works bullet Be able to make intelligent design decisions bullet Learn by collaborating in class with 2-3 other students (you will get a chance to show your solution or design) bullet Have some fun Textbooks bullet Required: Object-Oriented Software Development using Java, Xiaoping Jia, Second Edition, 2003, Addison Wesley, ISBN 0-201-73733-7 bullet Recommended: Course Notes from the bookstore bullet Recommended (Online and free): Sun's Java documentation bullet Recommended (Online and free): The Java Tutorial bullet Recommended: Java in a Nutshell, David Flanagan, O’Reilly, Fifth Edition, 2005 (Java and primary APIs) bullet Recommended: Java Foundation Classes in a Nutshell, David Flanagan, O’Reilly, 1999 (Swing and AWT) bullet Recommended: Design Patterns: Elements of Reusable Object-Oriented Software, Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, Addison Wesley, 1995 (Gang of Four classic) bullet Recommended Readings: bullet Design Patterns Java Workbook, Steven John Metsker, 2002, Addison Wesley (how to use design patterns) bullet Design Patterns Explained, Alan Shalloway and James Trott (abstract view of how design patterns can help improve software quality) bullet Refactoring: Improving the Design of Existing Code, Martin Fowler (why making small changes to code results in better code) bullet Test Driven Development, Kent Beck (Concrete examples of how to design "clean code that works") bullet Object-Oriented Design Heuristics, Arthur Riel (60 guidelines to help write better OO software) bullet Designing Object-Oriented Software, Rebbeca Wirfs-Brock, Brian Wilkerson, Lauren Wiener (responsibility-driven design using CRC cards (1990)). Or the 2nd edition. bullet Effective Java, Joshua Block Course Web Page Information, course handouts, and other useful links will be kept at The course newsgroup is cs.course335; you should read this newsgroup every single day for breaking news. Grading Anyone receiving less than a 60% average on the mid term and the final may receive an E at the discretion of the instructor even if the weighted average is above 60%. Otherwise, the letter grade will be determined based on the following weighted average and cutoffs, with the possibility of a slight curve, to be decided at the end of the semester. 20% Midterm I 20% Midterm II 35% Programming Projects (pair and solo) 25% Final Project (pair) A >= 90% B 80.0 to 89.9 C 70.0 to 79.9 D 60.0 to 69.9 E < 60.0 Make Up Policy If you are going to miss the midterm or final for some valid reason, you must contact Rick prior to the exam to get permission to take a make up. Even if you are sick at home, you should be able to call Rick’s office phone number (621-6370) before the test to leave a message. You may also send e-mail before the test. Without previous notification and a valid excuse, you will not be able to make up a missed test and will receive a 0. An excused missed first midterm exam results in the second midterm exam being allocated 40% of the final grade. Anyone missing the second midterm will be required to take a make-up examination soon thereafter. �Late Policy All programming projects must be handed in electronically (either in lab by copying to Rotis or through the unix or web-based turnin). Email turnin is not allowed. Any project turned in past the deadline will receive a 25% reduction of project points for each "late day" (a late day is one 24 hour period beyond the due date). For example, a project worth 40 points will lose 10 points if turned in within 24 hours of the deadline (in addition to any other points lost due to correctness, testing, or design issues). If a team hands in a project late, each member of the team will be assessed a late day. Every student is granted two free late days for the semester. Computer Access/Setup The CS Department has two labs available, one in 228 Gould-Simpson and one in 930 Gould-Simpson (recommended), that you may use to complete your programming projects. You will not be able to log in or turn in your programs until you run the apply program. Additionally, you will not be able to turn in your programs even if you are working at home. If you do not have an account and a lab access card from the previous semester, go to Gould-Simpson 9th floor. A.S.A.P. Go during normal business hours and follow the big yellow signs and the instructions for setting up your account and receiving your lab access card. Policy on Collaboration Unless otherwise specified in the published assignment, all work is expected to be that of each student alone or of the two students in a pair-programming project. You may not consult with others, except in ways specifically authorized by the course instructor. Students are responsible for understanding and complying with the University's Code of Academic Integrity. The Code is found at The full text is available from the Office of the Dean of Students in Room 203 Old Main. Among other provisions, the Code demands that the work you submit is your own, and that graded programs and exams will not subsequently be tampered with. The Code also demands that you do not copy code when it is part of a published class assignment. Sharing your code with others is also a violation of the code. It is immaterial whether the copying is done electronically, by retyping the code, or any other means. Programming Projects You will be completing several programming projects in a pair-programming mode. The final project will have many Java classes and interfaces of your own (in addition to using many existing Java classes and interfaces). These projects have historically placed a tremendous amount of work on students during the final weeks of class. Expect to spend a lot of time programming, especially in the final weeks of this course. You will need to schedule time when you can work with your pair-programming partner. Regrading Requests for re-grading will be accepted only for seven days after the graded assignment or exam has been handled out. Handouts Additional copies of handouts, including the assignments, will be available after class from the instructor, and on the course web page, accessible from Class Participation Cell phones should be turned off during class, in deference to your fellow students. Students should come to class ready to take an active part in their learning. Participation in class and in section recitation is highly recommended, but not recorded. Our experience is that those who participate actively do better. Other Policies Any Java code that is turned in should have the student’s name in a comment at the top of every file as well as the section leader/TA name. � Students with disabilities who require reasonable accommodations to fully participate in course activities or meet course requirements must notify the instructor and must register with the Disability Resource Center (see If you qualify for services through DRC, bring your letter of accommodations to the instructor within the first few days of the course. There is a significant reading component to this course. We will cover approximately 400 pages of the required text. Students are expected to read and understand this material. Some assignments will include extra credit questions. These will be graded separately. Once the final grades have been determined, the instructor will add the extra credit points, weighted similarly to the other questions in that assignment or exam, to the final grade, to see if it changes the student's final grade. Aspects other than the grading and absence policies are subject to change with advance notice, as the instructor deems appropriate.
Appears in Collections:Syllabus

Files in This Item:

File SizeFormat

All items in DSpace are protected by copyright, with all rights reserved.


Valid XHTML 1.0! DSpace Software Copyright © 2002-2006 MIT and Hewlett-Packard - Feedback