+===========================================+ | Syllabus for CMPSC 3390 | | Java: Client, Server, Internet and | | Hand-held Device Programming | | Dr. Huaqing Wang, Spring 2019 | +===========================================+ Office : Science Building III, Room 323 Phone : 654-2357 Email Addresses: hwang@csub.edu 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. Value, Pointer, Reference Kinds (of Types) Package, class and interface - Object-Oriented Features - Graphic User Interface (GUI) Programming GUI Components (AWT, Swing compnents, JavaFX) JavaFX Tutorial 1 : https://www.youtube.com/watch?v=FLkOX4Eez6o Layout managers Input Devices and Events Event-handling and Event-handler. Java applet Java servlet - 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 - Pipelining - Java Database Connectivity (JDBC) - Blackchain Basics - Java Programming on Android-based hand-held devices - Android-java, IOS-swift, Flutter-Dart for both iOS & Android Time & Classroom: 4:00 pm -- 5:15 pm M.W ( Sci. III 311) 4:00 pm -- 6:30 pm Tu ( Sci: III 311) Office Hour: 2:30 pm -- 4::00 pm Mon. & Wed. or by appointment Grading Policy: 1. Projects : 100% no midterms or final 2. Two ponts off for each missing class. 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: All the exams (midterm, final) must be taken on time, except some unusual cases such as unexpected accident or sickness with proper proof. January 30: Last day to add courses, to change between audit and letter grading. February 15: Last day to change between credit/non-credit and letter grading. February 15: 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 5: Last day to withdrraw from classes for a serious and complelling reason. Aprial 22: SOCI Week Notice: (1) Send your questions and programming assignments hwang@csub.edu. (2) When you send your programs to me make sure that (A) Zip ( (.zip file only) your programs, and (B) Name your file in this format`: name, class#, and assignment# i.e. "JDoe 3390 01.zip" (C) Use zip file as subject or comment of Attachment (3) Visit "http://www.cs.csubak.edu/~hwang/" for assignments, information and grade-checking.