Syllabus Collection >
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
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.
Tuesday and Thursday 3:30â€“4:45, CHVEZ (formerly ECON) 111
Monday 2:00â€“2:50, Monday 4:00ï¿½ï¿½â€“4:50, Tuesday 10:00-10:50
Rick Snodgrass 621-6370
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 firstname.lastname@example.org
Tuesday, 2:15â€“3:15 in 228 Gould Simpson, Wednesday 3:00â€“4:00 in the 9th floor lab, 930 Gould Simpson
Monday, 3:00â€“4:00 and Friday 12:00â€“1:00 in the 9th floor lab, 930 Gould Simpson
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.
Understand and use the fundamentals of object-oriented programming: encapsulation, polymorphism, and inheritance
Understand the relationships between objects, classes, and interfaces
Build relatively complex systems with at least one that has 15 or more classes that you write
Learn to work with others
Use good practices of programming to develop good object-oriented software
Become comfortable with event-driven programming and graphical user interfaces
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).
See the value of testing and how it helps to design and refactor code
Write clean code that works
Be able to make intelligent design decisions
Learn by collaborating in class with 2-3 other students (you will get a chance to show your solution or design)
Have some fun
Required: Object-Oriented Software Development using Java, Xiaoping Jia, Second Edition, 2003, Addison Wesley, ISBN 0-201-73733-7
Recommended: Course Notes from the bookstore
Recommended (Online and free): Sun's Java documentation
Recommended (Online and free): The Java Tutorial
Recommended: Java in a Nutshell, David Flanagan, Oâ€™Reilly, Fifth Edition, 2005 (Java and primary APIs)
Recommended: Java Foundation Classes in a Nutshell, David Flanagan, Oâ€™Reilly, 1999 (Swing and AWT)
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)
Design Patterns Java Workbook, Steven John Metsker, 2002, Addison Wesley (how to use design patterns)
Design Patterns Explained, Alan Shalloway and James Trott (abstract view of how design patterns can help improve software quality)
Refactoring: Improving the Design of Existing Code, Martin Fowler (why making small changes to code results in better code)
Test Driven Development, Kent Beck (Concrete examples of how to design "clean code that works")
Object-Oriented Design Heuristics, Arthur Riel (60 guidelines to help write better OO software)
Designing Object-Oriented Software, Rebbeca Wirfs-Brock, Brian Wilkerson, Lauren Wiener (responsibility-driven design using CRC cards (1990)). Or the 2nd edition.
Effective Java, Joshua Block
Course Web Page
Information, course handouts, and other useful links will be kept at http://www.cs.arizona.edu/classes/cs335/spring06/
The course newsgroup is cs.course335; you should read this newsgroup every single day for breaking news.
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.
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.
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 http://w3.arizona.edu/~studpubs/policies/cacaint.htm. 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.
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.
Requests for re-grading will be accepted only for seven days after the graded assignment or exam has been handled out.
Additional copies of handouts, including the assignments, will be available after class from the instructor, and on the course web page, accessible from http://www.cs.arizona.edu/classes/cs335/spring06/index.html
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.
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 http://drc.arizona.edu). 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:
All items in DSpace are protected by copyright, with all rights reserved.