Object Oriented Programming with Java (CISC 370 Summer 2005) http://www.cis.udel.edu/~trnka/CISC370-05J Instructor Keith Trnka (trnka@udel.edu) Office hours: Monday and Wednesday 3:30-4:30 at 124 E. Delaware Av. (see course website or email me for directions) Teaching Assistant Michael Smith (mismith@cis.udel.edu) Office hours: Tuesday 2:30-4:30 in Pearson Hall 115B Course description By the end of this course, students should be able to implement data structures and algorithms discussed in previous courses using Java, develop Graphical User Interfaces, and leverage the rich Application Programming Interface (API) of Java to simplify software development. Roughly half of the course is devoted to the first two objectives above, fundamentals of Java. The second half of the course is designed to introduce students to the more advanced built-in features of the Java API, such as XML functionality and the Networking API. The specific API packages covered will be tailored to student interests. Grading Homework questions (up to 10 total) – 15% Homework questions will generally be assigned on Thursday and due on Tuesday. They will consist of a single question, to be answered in a typed or neatly written paragraph of no more than 5 sentences in length. Homework questions will not be accepted late. If you are unable to attend class, you may submit the homework answer to trnka@udel.edu. Programming assignments (7 total) – 35% There will be seven programming assignments in total and they will normally be due on Thursdays. These are designed for the student to gain experience with the concepts used in class. Programming assignments will be accepted late until the Friday of the week in which it was due, with a penalty of 10% per day. Programming projects (2 total) – 35% The two programming projects are intended for the student to study aspects of Java in depth. The first programming project will be assigned on June 21st and due on July 14th. Each student will have the same task for this project. The second project will be of the student's choosing, due August 11th. For this project, the student will choose to either implement some project or study some Java technology not covered in class. For example, a study of distributed programming with RMI or a graphical application for data management would suffice. The first programming project will be accepted up to one week late with a penalty of 25%. The second programming project will not be accepted late. Final exam – 15% The final exam will test your knowledge of the important points of Java. Most questions will test your understanding of Java rather than your memory of function and class names. Grading scale Number 100- 9292 90 9088 8882 8280 8078 7872 7270 7068 6862 6260 <60 Letter A B+ B B- C+ C C- D+ D D- F A- Textbooks • • • Core Java 2: Volume I – Fundamentals Cay S. Horstmann and Gary Cornell; Prentice-Hall 2005. ISBN 0-13-148202-5 Core Java 2: Volume II – Advanced Features Cay S. Horstmann and Gary Cornell; Prentice-Hall 2005. ISBN 0-13-111826-9 Java How to Program (optional) Deitel & Deitel, Prentice Hall 2005. ISBN 0-13-148398-6 Development Environment The student is expected to be able to code using a text editor on strauss.udel.edu. The project number for this course is 2142. Academic Honesty I assume that you will do all of your own work and none of anyone else's. However, if I encounter cheating, I will bring the incident to the Office of Judicial Affairs. For a formal account of academic honesty, refer to the university's policy at http://www.udel.edu/stuguide/04-05/code.html#honesty Course Contents • • Java basics • Java compiler, JVM, development environments • Syntax, primitive types, control flow, naming conventions • Essential classes (String, System, Math) Object-oriented programming in Java • Basic OOP syntax, object-oriented design • Cloning • Inheritance Interfaces • Polymorphism • Advanced classes: inner classes and anonymous classes Development simplification • Packages • Exceptions • Javadoc Java Input/Output • Streams • Compression • Serialization Java Collections framework Graphics programming • Intro: Applets • Abstract Windowing Toolkit (AWT) • The Swing toolkit Advanced API topics • Definite • Regular expressions • Multithreaded programming • XML programming • Network programming • Servlets, JSP • If we have time • Image IO (dealing with JPEG, GIF, etc) • Internationalization • Java Database Connectivity (JDBC) • Java Micro Edition • Java Native Interfacing (JNI) • JavaBeans • JavaMail (Email API) • Printing • Reflection API • Remote Method Invocation (RMI) (distributed programming) • • • • • •