This course delves into advanced Java programming concepts and techniques. Building upon the introductory course, Java II explores intricate aspects of Java, including advanced language features, graphical user interfaces (GUIs), multithreading, networking, and database connectivity. Through hands-on projects and interactive lessons, students will gain a deep understanding of advanced Java programming, preparing them for challenging roles in software development, enterprise applications, and cutting-edge technology fields.
ITSM 1313 - Must be completed prior to taking this course.
Catalog description
This course is an advanced-level course designed for learners who already possess a solid foundation in Java programming and are ready to deepen their expertise in enterprise-level and system-level Java development. This course explores sophisticated Java features and APIs used in real-world applications, emphasizing performance, scalability, security, and maintainability.
Through interactive e-book lessons, videos, hands-on labs, quizzes, and assessments, students gain practical experience with Java Streams, advanced I/O, XML processing, networking, database programming with JDBC, modularization, security, internationalization, scripting, annotations, and native method integration. Learners will work with modern Java constructs such as parallel streams, the Java Platform Module System, the Date and Time API, and advanced security mechanisms including encryption, authentication, and digital signatures.
The course also addresses enterprise-ready skills, including network communication, web data access, database transactions, XML and XSLT processing, and Java security architecture, preparing students to design robust, secure, and high-performance Java applications. By the end of the course, learners will be capable of implementing advanced Java solutions that integrate external systems, manage data efficiently, and meet modern software security and architectural standards.
Prerequisite:
ITSM 1313 or consent of instructor - Must be taken either prior to or at the same time as this course.
Course Outcomes
At the end of this course, students will be able to:
- Design and implement advanced data-processing solutions using Java Streams, lambda expressions, collectors, and parallel stream operations to efficiently manipulate large data sets.
- Apply advanced input/output techniques to read, write, serialize, and manage text, binary, and object data using Java I/O and NIO APIs while ensuring data integrity and performance.
- Parse, validate, transform, and generate XML documents using DOM, SAX, StAX, XPath, and XSLT to support structured data exchange in enterprise applications.
- Develop network-enabled Java applications by implementing client-server communication, socket programming, HTTP clients, and web data retrieval techniques.
- Build database-driven applications using JDBC, including executing SQL queries, managing transactions, handling metadata, and optimizing performance with prepared statements and connection management.
- Utilize the Java Date and Time API to correctly model, format, parse, and manage temporal data across time zones and legacy systems.
- Implement internationalization and localization strategies using locales, resource bundles, character encodings, and formatting APIs to support globalized software applications.
- Employ scripting, compilation, and annotation processing techniques to dynamically compile code, extend application behavior, and automate development tasks.
- Design modular Java applications using the Java Platform Module System (JPMS), including defining module dependencies, exports, services, and migration strategies for legacy code.
- Apply Java security mechanisms such as class loaders, permissions, authentication, encryption, and digital signatures to build secure and trusted applications.
- Develop advanced graphical user interfaces and graphics solutions using Swing, AWT, and Java 2D APIs for rendering, image processing, and printing.
- Integrate native code with Java applications using the Java Native Interface (JNI) to access system-level resources and platform-specific functionality.
- Analyze performance, scalability, and security trade-offs in advanced Java applications and apply best practices to improve robustness and maintainability.
Topical Outline
- Java Streams and Functional Programming
- From iteration to stream operations
- Stream creation and pipelines
- Filter, map, and flatMap operations
- Optional values and best practices
- Collectors, grouping, partitioning, and reductions
- Primitive streams and parallel streams
- Input and Output (I/O)
- Byte streams and character streams
- Text input and output handling
- Object serialization and deserialization
- Working with files and directories using NIO
- ZIP archives and file systems
- Memory-mapped files and file locking
- Regular expressions and pattern matching
- XML Processing
- XML structure and validation
- Parsing XML documents (DOM, SAX, StAX)
- XPath and namespaces
- Generating XML documents
- XSL transformations
- Practical XML processing examples
- Networking
- Internet addresses and socket programming
- Client-server communication
- Multi-client server design
- HTTP client and web data retrieval
- URL connections and form submission
- Sending email using Java
- Database Programming with JDBC
- JDBC architecture and driver types
- SQL fundamentals
- Database connectivity and configuration
- Executing SQL statements
- Prepared statements and transactions
- Scrollable and updatable result sets
- RowSets and metadata
- Connection management for enterprise applications
- Data and Time API
- Timeline and temporal concepts
- Local dates and times
- Zoned time and time zones
- Formatting and parsing date/time values
- Interoperability with legacy date/time code
- Internalization and Localization
- Locales and cultural conventions
- Number, currency, and date formatting
- Text input/output and character encoding
- Resource bundles and property files
- Complete internationalization example
- Scripting, Compilation, and Annotations
- Java scripting engines
- Script evaluation and bindings\
- Compiler API and dynamic compilation
- Annotations and annotation syntax
- Standard and custom annotations
- Source-level annotation processing
- Bytecode engineering and class modification
- Java Platform Module System (JPMS)
- Module concepts and naming
- Modular JARs
- Dependencies and exports
- Reflective access and service loading
- Migration strategies for legacy applications
- Java Security
- Class loaders and bytecode verification
- Security managers and permission models
- Authentication with JAAS
- Digital signatures and certificates
- Encryption techniques (symmetric and public key)
- Advanced Swing and Graphics
- Tables and table models
- Trees and tree models
- Advanced AWT rendering
- Graphics transformations and effects
- Image processing and printing services
- Native Methods (JNI)
- Calling native C/C++ code from Java
- Passing parameters and return values
- Accessing fields and methods
- Handling errors and exceptions
- Complete JNI implementation example (Windows Registry)
Faculty Contact Information
Courtney Stewart
Adjunct Professor
815-295-6605
cstewart@kcc.edu
Paul Carlson
Dean - Business, Technology & Human Services
815-802-8858
pcarlson@kcc.edu
Division Office
W102
815-802-8850
Course Information
At the end of this course, students will be able to:
- Employ lambda expressions, streams, and other advanced language features to write concise, expressive, and functional Java code.
- Create sophisticated and responsive GUI applications while incorporating event handling, animations, and layout management.
- Design and implement multithreaded Java applications to achieve improved performance and responsiveness in concurrent computing scenarios.
- Incorporate Java networking capabilities to build robust networked applications for communication between systems.
- Utilize the Java Database Connectivity (JDBC) API to interact with relational databases, facilitating data storage and retrieval.
- Apply secure coding practices and explore Java security mechanisms to protect applications from vulnerabilities and attacks.
- Manage shared data efficiently in multithreaded environments.
- Utilize Java profiling tools to identify and address performance bottlenecks in Java applications.
- Apply advanced Java concepts and techniques to real-world scenarios, honing their problem-solving and collaboration skills.
- Streams
- Input and Output
- XML
- Networking
- Database Programming
- The Date and Time API
- Internationalization
- Scripting, Compiling, and Annotation Processing
- The Java Platform Module System
- Security
- Advanced Swing and Graphics
- Native Methods
Additional Methods of Evaluation
Student evaluation is based on points accrued via Virtual Readings, Labs, Quizzes, and Exams. Point values may change based on added or removed assignments.
- Readings – 30%
- Labs – 30%
- Quizzes – 20%
- Final Exam – 20%
The corresponding grading scale will be:
- 90-100% = A
- 80-89% = B
- 70-79% = C
- 60-69% = D
- 59% or lower = F
Business, Technology & Human Services
Dean, Paul Carlson; 815-802-8858; V105; pcarlson@kcc.edu; Division Office – W102; 815-802-8650
Course Policies
- Attendance Policy
- Attendance is MANDATORY
- If a class/lab session must be missed, arrangements must be made prior to the absence.
- If an absence is not planned, a valid excuse (i.e., doctor’s note, etc.) must be provided to the instructor for each missed session at the beginning of the following class session.
- Make-up work, including quizzes, exams, etc., is provided at the discretion of the instructor and must be completed within one week of the missed class period.
- Readings
- This course requires you to read the assigned reading from the instructor
- Lectures will provide only an overview of the reading material.
- You are expected to come to class prepared for that day’s lecture
- Quizzes, Labs & Exams
- Primary communication will be via Canvas and email.
- Instructor will respond to messages within 48 hours (weekdays) and grade assignments within one week of submission.
- Students should maintain respectful, professional communication at all times.
- Quizzes are meant to assess your recall and retention of readings and assignments
- Exams are designed to assess retention of lecture and reading materials, while also assessing your ability to compare /contrast and apply concepts.
- On face-to-face quiz and exam days, students must arrive on time and be ready to take the quiz or exam at the start of class.
- If a student enters the classroom late on a quiz day, he/she may take the quiz as long as at least one student is still in possession of the quiz. If all students have completed and turned in the quiz, he/she may not take the quiz.
- Students will not be permitted to enter the classroom and take the exam once the exam has started.
- Once an exam or quiz has been administered, a student will not be permitted to leave for any reason until he/she turns the exam in.
- If a student’s cell phone is disruptive during an exam or quiz, the student will receive a zero on that exam.
- If a student is found using their cell phone in any way during an exam or quiz, it will be considered to be a case of cheating and the student will receive a zero on the exam as well as the possibility of receiving an F for the course grade.
- Late assignments will not be accepted unless arrangements are made
- Cell Phone Use
- Turn off all cell phones and all other items that may beep, buzz, or otherwise interrupt the instructor and other students.
- If you must have your cell phone on for work or a family emergency, set it to vibrate and leave the classroom if you receive a call.
- No texting during class.
- Failure to follow any of the above rules will result in a warning (first offense), 5 point deduction from your class grade (second offense), and removal from the class period (third and beyond offense).
- Artificial Intelligence (AI) Use
- Students must obtain permission from the instructor before using AI composition software / AI writing tools / AI tools (such as ChatGPT) for any assignments in this course.
- Using these tools without the instructor’s permission places your academic integrity at risk.
- If AI tools are used, students are expected to demonstrate transparency and provide appropriate citations for any AI-generated content included in their work.
- Other Classroom Guidelines
- Use respectful, professional language in all discussions and emails.
- Avoid using ALL CAPS, slang, or inappropriate language.
- When replying to peers, provide constructive feedback.
- You will gain the most from this course if you actively participate in classroom discussions and share your experiences and questions.
- Learn the names of your classmates and help one another whenever possible (but not during quizzes and exams).
- Take responsibility for the classroom and lab areas by picking up after yourself.
- Arrive promptly before class begins.
- No tobacco products may be used on campus.
- Do not come to class when you are ill and likely to infect others.
- Minor children are not allowed in the classroom or lab areas for safety reasons.
- No students will be allowed to work in lab areas outside of class time without instructor permission and appropriate supervision.
- Student Integrity
- All students are expected to take quizzes, exams, write papers, and conduct themselves with integrity, common sense, and respect for their fellow students, the instructor, and the academic institution.
- Students should not jeopardize their own honesty or that of other students.
- Cheating will not be tolerated.
- Upon evidence of student cheating, the student will be dropped from the course and receive a grade of F in the course
College Policies, Resources and Supports
College Policies
For information related to the Student Code of Conduct Policy, Withdrawal Policy, Email Policy, and Non-Attendance/Non-Participation Policy, please review the college’s Code of Campus Affairs and Regulations webpage, which can be found at.
Resources
KCC offers various academic and personal resources for all students. Many services are offered virtually, as well as in person. Please visit Student Resources - Kankakee Community College to access student resources services such as:
- Clubs and organizations
- Counseling and referral services
- Office of disability services
- Student complaint policy
- Transfer services
- Tutoring services, etc.
Copyright and Syllabus Disclaimer
The materials on this course are only for the use of students enrolled in this course for purposes associated with this course. Further information regarding KCC's copyright policy is available at https://kcc.libguides.com/copyright.



College Policies, Resources and Supports
For information related to the Student Code of Conduct Policy, Withdrawal Policy, Email Policy, and Non- Attendance/Non-Participation Policy, please review the college’s Code of Campus Affairs and Regulations webpage, which can be found at catalog.kcc.edu under the Academic Regulations & Conduct Guide.
KCC offers various academic and personal resources for all students. Many services are offered virtually, as well as in person. Please visit Student Resources - Kankakee Community College to access student resources services such as:
- Clubs and organizations
- Counseling and referral services
- Office of disability services
- Student complaint policy
- Transfer services
- Tutoring services, etc.
The materials on this course are only for the use of students enrolled in this course for purposes associated with this course. Further information regarding KCC's copyright policy is available at https://kcc.libguides.com/copyright.
|Course syllabus/calendar is subject to change.