
Course Description
This course will study object-oriented programming (OOP) using the Java computer programming language. The course is really divided into two parts. The first part (approximately six weeks) covers fundamental OOP concepts and the standard features of the Java 2 programming environment. We discuss the key object-oriented concepts of inheritance and polymorphism, the Java exception model and programming with checked exceptions, object cloning, as well as inner and anonymous classes. We discuss graphical programming, including the Java 2 event model, the Java2D libraries, and the design and programming of graphical user interfaces (GUIs). Finally, we discuss Java's streams-based I/O models. The second half of the course is where things really get interesting. We discuss advanced coding techniques using threads and concurrent programming, network and socket programming, and the Java 2 collections framework. We will cover advanced topics in distributed programming, including RMI and servlets, and program deployment strategies, including applets and Java Web Start. We will also cover related distributed technologies and techniques that allow Java programs to interact with other technologies, including the XML programming APIs, Java Database Connectivity (JDBC), and the use of native methods. One of the key advantages of the Java 2 programming environment is that it allows rapid application development - without any background in these technologies, you can learn enough to write very useful programs using all of these advanced techniques within a matter of weeks.
Something More about this Course
CISC370 is a somewhat unique course - this is a discussion of important points that you need to be aware of and understand in order to succeed in this course. Please click on the link above and read these points before selecting this course.
Prerequisites: CISC 181 (or a good working knowledge of C++) and CISC 220. In addition to these formal prerequisites, this course is taught assuming a working knowledge of computers and development tools, such as the ability to set paths, install tools, troubleshoot operating system problems, and so forth. Finally, the ability to self-learn related but not central material (such as basic HTML) on your own is assumed and will be taken advantage of throughout the semester).
| Instructor: | Jeffrey A. Six |
| Office: | 109 Ewing Hall |
| Office Hours: | M, 6.00p - 7.00p (right before class) |
| Electronic Mail | jeffsix@udel.edu |
| Web: | http://www.eecis.udel.edu/~six |
Please be aware that I live and work in the Washington, DC area and am normally on campus only on Monday afternoons and evenings. As such, the best (and sometimes only) way to get in contact with me for questions and/or concerns is via electronic mail.I make a very conscious effort to respond to email within 24 hours of receieving it.
| Teaching Assistant: | Yaunfang Chen |
| Office: | 102 Smith Hall |
| Office Hours: | TBD |
| Mailbox Location: | 102 Smith Hall |
| Electronic Mail: | cheny@udel.edu |
Textbooks (ALL ARE OPTIONAL):

| Programming Assignments | 70% |
| Test | 30% |
Programming Assignments - A programming assignment will be assigned for each major topic covered in the course. These assignments can (and in most cases, will) build on previous assignments. For instance, the assignment on networks and socket programming will entail use of mulithreaded programming. These assignments are intended to allow you to get hands-on experience with all of the major components of the Java 2 programming environment.
Test - The only test for this course covers concepts, both related to object-oriented programming in general and Java-specific. This test will not ask you to write any code. It will ask you to explain different concepts and components. It will ask you to understand the advantages and disadvantages of particular approachs to specific problem solving. It will require you to think.
Late Submission of Assignments - Everyone should try their best to submit allassignments on their due dates. However, there are various circumstances that may preventa student from completing an assignment on time. Therefore, late assignments will be penalized 10% per 24 hour period, or fraction thereof. No special previsions will be made for weekends. Late assignments will be acceptable up to one week late. After one week, late assignments will no longer be accepted, and a score of zero will be assessed. An assignment is considered turned in when it is physically in the hands of the TA or in the TA's mailbox. When handing in a late assignment, hand it into the mailbox of the TA and write the day and time of submission at the time you place it into the mailbox. This date/time indication is considered part of the assignment and is subject to the academic honesty expectations, as discussed below. Note that the office containing the TA's mailbox is open Monday thru Friday, 8.00am - 4.00pm. Plan accordingly! No assignment is to be left in the instructor's mailbox. This policy is applicable to all homework assignments.
Grading Errors - Sometimes, mistakes do occur in the grading of assignments. After a graded assignment has been returned, you have one week to submit a request to have it regraded. This request must be in writing and include the original assignment, as well as a brief description of your dispute with the grade. Such a request should be submitted directly to the TA, during office hours or left in the TA's mailbox. After one week, no requests for assignment regrading will be considered. If the situation cannot be resolved after discussion with the TA, please come and talk to the instructor about it.
Academic Honesty - When working on a program, you may consult with the instructor, the TA, classmates, friends, or anyone else you wish. However, all programming must be your own work. You may discuss in general terms the approach to solving a programming problem. Once the discussion progrsses to specific programming issues, such as control structures, variables, etc..., you must end any collaboration. Specificaly, you may not (1) copy of allow another student to copy a computer file that contains another student's assignment and submit it, or any part of it, as your own, (2) work together on an assignment, sharing computer files and source code, and submit copies as the assignment as individual work, or (3) edit a script file. Any evidence of performing any form of academic dishonesty will be immediately turned over to the student judicial board, with a recommendation that a grade of F/X (failure due to academic dishonesty) be recorded for this course. If you are in doubt whether or not a certain behavior is permitted, please ask the instructor beforehand!