10152112Advanced Java Programming
Course Information
Description
This course builds on foundational Java skills with a focus on application development debugging and deployment. Students refine their problem-solving abilities by diagnosing and resolving common programming errors using debugging tools, logs, and test-driven development. Emphasis is placed on writing clean, maintainable code using core Java principles, object-oriented programming, and design documentation. Learners develop web applications MVC architecture, integrate databases with SQL, and application deploy through Apache Tomcat. The course also covers file I/O, exception handling, the Collections framework, and professional version control using Git and GitHub.
Total Credits
3

Course Competencies
  1. Refine debugging and problem-solving skills
    Assessment Strategies
    Coded document submission
    Criteria
    Identify and diagnose errors in Java code using logging tools and debugging statements.
    Identify and diagnose different types of errors, including complier, runtime, and syntax errors.
    Use test-driven development and unit tests to write code.
    Analyze Java stack traces and log files effectively to pinpoint the origin of an error.
    Research and implement effective solutions to coding problems.
    Discern when and how to seek assistance in problem-solving scenarios.
    Break down complex coding problems into manageable components.
    Plan and document application design prior to implementation.

  2. Use programming principles for clean, efficient, and maintainable code
    Assessment Strategies
    Coded document submission
    Criteria
    Apply common Java principles to improve code quality.
    Trace the execution flow of Java code, including the order of method calls.
    Explain the decision-making process when designing and implementing Java programs.
    Use properties files to eliminate hard-coded values.
    Use correct JavaDoc comments to document classes, methods, and variables, including their purpose, parameters, return values, and usage.
    Explain the purpose of Object-Oriented Programming (OOP) concepts.

  3. Administrate developer environment
    Assessment Strategies
    Coded document submission
    Criteria
    Identify the location and purpose of important files in an Apache Tomcat server.
    Navigate the basic file structure and architecture of a Java application.
    Analyze Apache Tomcat log files for debugging purposes.
    Explain the deployment process.
    Build and deploy java applications using the Apache Ant build tool.
    Use the command line to perform tasks as needed during the development process.
    Create and modify scripts to perform administrative tasks.

  4. Use git and GitHub for version control
    Assessment Strategies
    Coded document submission
    Criteria
    Create meaningful, atomic commit messages during the development process.
    Maintain code in GitHub by committing, pushing, tagging, and creating issues.
    Collaborate efficiently with other team members using git pull and push.
    Communicate within the GitHub environment using issues.
    Explain how the GitHub version control system functions.
    Troubleshoot common version control issues.

  5. Use Java IO classes to read and write data to files
    Assessment Strategies
    Coded document submission
    Criteria
    Describe the basics of Java IO and the different types of streams, including input and output streams.
    Read and write data to files using IO classes and methods.
    Demonstrate how to handle errors and exceptions that may occur during file IO operations, including file not found errors, permission errors, and other common issues.
    Implement the best practices for IO in Java, including how to use buffering to optimize performance, and how to properly close file streams to avoid resource leaks.

  6. Apply exception handling in a Java application
    Assessment Strategies
    Coded form submission
    Criteria
    Identify the correct exceptions for a class.
    Create meaningful error messages that help developers identify and fix problems.
    Implement try-catch-finally and try-with-resources blocks on appropriate Java classes to handle exceptions.
    Demonstrate the appropriate time and location to throw an exception.
    Create nested exceptions when appropriate.
    Log any necessary exceptions for debugging and user experience.

  7. Use the Collection interface to manipulate data structures
    Assessment Strategies
    Coded document submission
    Criteria
    Examine the Collections interface and associated classes, methods, and properties in the Java API.
    Identify the appropriate concrete implementation of the Collection interface based on the application needs and requirements.
    Use appropriate Collection methods in java applications.
    Explain the structure of the Collection interface and its concrete classes.

  8. Build Java web applications
    Assessment Strategies
    Coded document submission
    Criteria
    Explain the lifecycle of a Servlet.
    Implement Servlets to handle different types of requests, such as GET and POST, and perform specific actions.
    Analyze and troubleshoot Servlet-related issues.
    Build Java Server Pages (JSP) as a presentation layer technology.
    Use Expression Language (EL) for accessing and manipulating data in JSP.
    Use the JSP Standard Tag Library (JSTL) to simplify JSP development.
    Handle and process form submission in a Java web application.

  9. Implement the model view controller pattern in a Java application
    Assessment Strategies
    Coded document submission
    Criteria
    Identify the different components of the MVC pattern.
    Describe the concept of the MVC pattern and its benefits.
    Explain the role of each component in the MVC pattern and how they interact with each other to handle user input, manage data, and display information to the user.
    Implement controllers in Java that handle requests, update the model, and manage the flow of information between the model and view.
    Implement views as JSP pages that integrate with controllers (Servlets) to dynamically generate content.
    Implement models as business logic or JavaBeans.

  10. Use a database in a web application
    Assessment Strategies
    Coded document submission
    Criteria
    Implement database connectivity in a web application to read data from a database using SQL queries.
    Write data to a database in web application using appropriate SQL statements.
    Use prepared statements in a database query to enhance security and efficiency.
    Identify and fix common database issues, such as connectivity or SQL errors.