Syllabus for CMPSC 3390 Java: Client, Server, Internet and Hand-held Device Programming Dr. Huaqing Wang, Spring Semester 2017 Office : Science Building III, Room 323 Phone : 654-2357 Internet Addresses: hwang@csub.edu for asking questions hwang@cs.csubak.edu for submitting programming assignments Home page: http://www.cs.csubak.edu/~hwang/ (looking for information on homework, handout, anouncements, grades and sending your homework) Course Title: Java: Client, Server, Internet and Hand-held Device Programming Course Description: This course will use Java's OOP features and libraries to explore client-side, server-side and internet programming. The concepts of multi-threading, synchronization, and network programming (socket and Remote Method Invocation) will be introduced and used to develop Internet client-server programs such as chat room, on-line help, file transfer etc. The concepts of graphic user interfaces (GUIs) and hand-held devices(such as Android phone or tablet) will be discussed and applied in student projects. Prerequisites: C- or higher in CMPS 2020 or C- in both CMPS 222 or 223 Reference books or materials: - Any CSUB library or internet free Java related book. - CSUB library books such as The Well-Grounded Java Developer: Vital techniques of Java 8 and polyglot programming Android how to program by Paul Deitel, Harvey Deitel, Abbey Deitel - Java Language Specification at http://docs.oracle.com/javase/specs/jls/se7/html/jls-1.html. Materials to be Covered: - Java Basics: Objects of Primitive and Object Types/User-Defined Type. Pointer/Reference Types Package, class and interface - Object-Oriented Features - Graphic User Interface (GUI) Programming GUI Components (AWT and Swing compnents) Layout managers Input Devices and Events Event-handling and Event-handler. Java applet - Concurrency (or Parallel Programming) and Synchronization Concepts: of concurrency, shared memory, and mutual exclusion Processes and Threads Tools for mutual exclusion: semaphores, messaging and monitors Examples of Concurrency and synchronization: - Client-Server programing/Distributed Programming Sockets Remote Method Innocation (RMI) JSP and Servlet Programming - Java Database Connectivity (JDBC) - Java Programming on Android-based hand-held devices. Time & Classroom: 1:00 -- 2:15PM Mon. Wed. ( Sci III 311) 1:00 -- 3:30PM Thur. ( Sci III 311) Office Hour: 2:15 PM -- 4:15PM Mon. Wed. or by appointment Grading Policy: Projects : 100% Lateness Penalty: For late homework, 10% off each weekday, and no deduction on weekends or holidays. Plagiarism Penalty: You will get 0 if copying each other is found, using other's assignment. Exams: No midterm nor final. The final grades are based on projects/assignments. The some projects may worth more than the others, especially the final project/assignment depending on complexity . January 31: Last day to add courses, to change between audit and letter grading. Februay 17: Last day to withdraw from classes without a 'W' being recorded; withdrawals from classes after this date and continuing through the next four-week period will be permitted only for serious and compelling reasons and require written approval by the Dean or Department Chair. April 07: Last day to withdrraw from classes for a serious and complelling reason. Notice: (1) Send questions/Documents to hwang@csub.edu for quick response. (2) Send your programming assignments to hwang@cs.csubak.edu. (3) Visit http://www.cs.csubak.edu/~hwang/ for assignments, information and grade-checking.