Advanced Java Programming - Syllabus

Course Overview and Structure

Embark on a profound academic exploration as you delve into the Advanced Java Programming course (AJP) within the distinguished Tribhuvan university's BCA department. Aligned with the BCA Curriculum, this course (CACS354) seamlessly merges theoretical frameworks with practical sessions, ensuring a comprehensive understanding of the subject. Rigorous assessment based on a 60+20+20 marks system, coupled with a challenging passing threshold of , propels students to strive for excellence, fostering a deeper grasp of the course content.

This 3 credit-hour journey unfolds as a holistic learning experience, bridging theory and application. Beyond theoretical comprehension, students actively engage in practical sessions, acquiring valuable skills for real-world scenarios. Immerse yourself in this well-structured course, where each element, from the course description to interactive sessions, is meticulously crafted to shape a well-rounded and insightful academic experience.


Course Description:

This course covers advanced features of Java programming language including, GUI programming, database programming, JavaBeans, JSP, Servlet, and Remote Method Invocation (RMI).

Course Objectives:

The primary objective of this course is to provide concepts of advanced features of Java programming and make students familiar with their uses and applications.


Units

Key Topics

  • Introducing Swing
    GU-01

    Introduction to Swing, a graphical user interface (GUI) toolkit for Java. This topic covers the basics of Swing and its importance in GUI programming.

  • Creating a Frame
    GU-02

    Learn how to create a frame, a top-level container in Swing, and understand its properties and methods.

  • Displaying Information in a Component
    GU-03

    Discover how to display information in a Swing component, including text, images, and other graphical elements.

  • Working with 2D Shapes
    GU-04

    Explore how to work with 2D shapes in Swing, including drawing and manipulating shapes using Java's 2D graphics API.

  • Using Color
    GU-05

    Learn how to use colors in Swing, including setting background and foreground colors, and understanding color models.

  • Using Special Fonts for Text
    GU-06

    Discover how to use special fonts for text in Swing, including font styles, sizes, and families.

  • Displaying Images
    GU-07

    Learn how to display images in Swing, including loading, scaling, and rendering images.

  • Event Handling
    GU-08

    Understand the basics of event handling in Swing, including event classes, event listeners, and adapter classes.

  • Swing and the MVC Design Pattern
    GU-09

    Explore how Swing implements the Model-View-Controller (MVC) design pattern, and its benefits in GUI programming.

  • Layout Management
    GU-10

    Learn how to manage layouts in Swing, including using layout managers, and understanding layout constraints.

  • Basic Swing Components
    GU-11

    Discover the basic components of Swing, including buttons, labels, text fields, and other UI elements.

Key Topics

  • Introduction to Databases
    DA-1

    Introduction to databases, including examples and basic concepts.

  • Database Management System
    DA-2

    Introduction to Database Management Systems (DBMS), including advantages and examples.

  • Database Users
    DA-3

    Types of database users, including actors on the scene and workers behind the scene.

  • Benefits of Databases
    DA-4

    Advantages and benefits of using databases.

  • Data Models
    DA-5

    Types of data models, including hierarchical, network, ER, relational, and object models.

  • Three-Schema Architecture
    DA-6

    Three-schema architecture, including internal, conceptual, and external views.

  • Data Independence
    DA-7

    Data independence, including logical and physical independence.

  • Database Languages
    DA-8

    Types of database languages, including DDL, DML, SDL, and VDL.

  • Database Interfaces
    DA-9

    Types of database interfaces, including menu-based, mobile apps, form-based, and GUI.

Key Topics

  • What Is a Java Bean?
    JA-1

    Introduction to Java Beans, their definition, and importance in Java programming.

  • Advantages of Java Beans
    JA-2

    Benefits and advantages of using Java Beans in software development.

  • Introspection
    JA-3

    The process of discovering and accessing the properties and behavior of a Java Bean.

  • Properties, Events, and Methods Design Patterns
    JA-4

    Design patterns for creating and managing properties, events, and methods in Java Beans.

  • Using BeanInfo Interface
    JA-5

    How to use the BeanInfo interface to provide additional information about a Java Bean.

  • Bound and Constrained Properties
    JA-6

    Understanding and working with bound and constrained properties in Java Beans.

  • Persistence
    JA-7

    How to persist Java Bean instances and their properties.

  • Customizers
    JA-8

    Using customizers to customize the behavior and appearance of Java Beans.

  • The Java Beans API
    JA-9

    Overview of the Java Beans API and its components.

  • Writing JavaBeans
    JA-10

    Guidelines and best practices for writing and developing Java Beans.

Key Topics

  • Challenges and Approach of E-government Security
    SE-1

    This topic covers the challenges faced by e-government in terms of security and the approaches to address them. It explores the importance of security in e-government and the ways to mitigate risks.

  • Security Management Model
    SE-2

    This topic introduces a security management model for e-government, outlining the key components and processes involved in ensuring the security of e-government systems.

  • E-Government Security Architecture
    SE-3

    This topic delves into the architecture of e-government security, including the design and implementation of secure systems and infrastructure for e-government services.

  • Security Standards
    SE-4

    This topic covers the security standards and guidelines for e-government, including international standards and best practices for ensuring the security of e-government systems and data.

  • Data Transaction Security
    SE-5

    Security measures for protecting data during transactions in e-commerce.

  • Security Mechanisms
    SE-6

    Various security mechanisms used in e-commerce including cryptography, hash functions, digital signatures, authentication, access controls, intrusion detection systems, and secured socket layer (SSL).

  • javax.servlet.http Package
    SE-7

    Exploring the javax.servlet.http package, including key classes and interfaces. Understanding how to use the package to develop HTTP-based servlets.

  • Handling HTTP Requests and Responses
    SE-8

    Understanding how to handle HTTP requests and responses using servlets, including request and response objects.

  • Using Cookies
    SE-9

    Understanding how to use cookies in servlets, including setting and retrieving cookie values.

  • Session Tracking
    SE-10

    Understanding how to track user sessions using servlets, including session creation and management.

  • Introduction to JSP
    SE-11

    Introduction to JavaServer Pages (JSP), including their role in web development and key features.

  • Using JSP
    SE-12

    Understanding how to use JSP to develop dynamic web pages, including JSP syntax and directives.

  • Comparing JSP with Servlet
    SE-13

    Comparing and contrasting JSP with servlets, including their strengths and weaknesses.

  • Java Web Frameworks
    SE-14

    Overview of Java web frameworks, including their role in web development and key features.

Key Topics

  • Introduction to RMI
    RM-1

    RMI (Remote Method Invocation) is a Java API that allows objects to communicate with each other over a network. This topic introduces the concept of RMI and its importance in distributed systems.

  • Client-Server Architecture
    RM-2

    This topic explains the roles of client and server in an RMI system, including the responsibilities of each and how they interact with each other.

  • Remote Method Calls
    RM-3

    Remote method calls allow a client to invoke methods on a remote server. This topic covers the process of making remote method calls and the underlying mechanisms.

  • Stubs and Parameter Marshalling
    RM-4

    Stubs and parameter marshalling are essential components of RMI. This topic explains how stubs act as local representatives of remote objects and how parameter marshalling enables data transfer between client and server.

  • RMI Programming Model
    RM-5

    The RMI programming model defines how to write RMI-based applications. This topic covers the principles and best practices of the RMI programming model.

  • Interfaces and Implementations
    RM-6

    This topic explains the importance of interfaces and implementations in RMI, including how to define and use them to create remote objects.

  • RMI Registry
    RM-7

    The RMI registry is a repository of remote objects. This topic covers how to use the RMI registry to bind, lookup, and unbind remote objects.

  • Parameters and Return Values
    RM-8

    This topic explains how to handle parameters and return values in remote methods, including data types and serialization.

  • Remote Object Activation
    RM-9

    Remote object activation allows remote objects to be created and activated on demand. This topic covers the mechanisms and benefits of remote object activation.

  • Simple Client/Server Application
    RM-10

    This topic provides a hands-on example of building a simple client/server application using RMI, demonstrating the concepts learned in the unit.

  • RMI vs CORBA
    RM-11

    This topic compares and contrasts RMI with CORBA (Common Object Request Broker Architecture), highlighting the similarities and differences between the two technologies.

Lab works

 Laboratory Work:

The laboratory work includes writing Java programs

• To create GUI applications using swing, event handling, and layout management

• To create applications to work with databases

• To create JavaBeans

•   To create server side web programs using Servlet and JSP

•  To create distributed applications using RMI