CS 412 Advanced Java Programming • 5 Cr.


This course teaches advanced topics in Java, including the Java runtime environment, threads and synchronization, native methods, streams, socket-based network programming, serialization, remote objects, Reflection, database connectivity, and functional programming in Java. Students will be provided with comprehensive hands on exercises to reinforce learning and develop advanced java programming skills. Prerequisite: Admission to BS CS program, or instructor's permission.


After completing this class, students should be able to:

  • Create a Java application using the functional style of programming
  • Demonstrate the use of Streams
  • Design and develop a multi-threaded Java application
  • Demonstrate distributed programming using the Remote Method Invocation (RMI)
  • Describe Java object serialization
  • Use Java's Reflection Application Programming Interface (API) to extract information from classes at runtime
  • Use Java Native Interface for interfacing with applications written using some other programming languagesĀ 
  • Create a client/server Java application with Socket programming in Java