+===========================================+ | Syllabus for CMPSC 3390 | | Java: Client, Server, Internet and | | Hand-held Device Programming | | Dr. Huaqing Wang, Spring 2020 | +===========================================+ 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 February 30: Last day to change between Audit and and letter grading February 30: Last day of Schedule Adjustment Period February 17: Censsus Day February 17: Last day to change between Credit/non-credit and Letter grading February 17: Last day to withdraw from classes without a 'W' being recorded; March 23: Academic advising for continuing students begings (summer 2020 and falll 2020) March 31: HOLIDAY - Cesar Chevez Day April 06: Last to withdraw from class for q serious and compelling reason April 13 ... 19: Spring break. April 20: Registration for comtinuing students begins for summer 2020 and fall 2020 Aprial 20: SOCI Week Aprial 27: Academic advising for new students begins for Fall 2020 Aprial 27: Registration new students begins for Fall 2020 May 11: Last day to submit completed thesis/desseration May 11: Last day of classes May 12: Study/Reading day May 13-19: Examination period May 20-22: Grades due May 22: Commencement May 25: HOLIDAY - Memoridal Day Notice: (1) Send your questions and programming assignments hwang@csub.edu. (2) The project files must follow the special rules to be discussed in class. (3) Visit "http://www.cs.csubak.edu/~hwang/" for assignments, information and grade-checking.