Advanced Java Programming - Syllabus
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-01Introduction 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-02Learn how to create a frame, a top-level container in Swing, and understand its properties and methods.
-
Displaying Information in a Component
GU-03Discover how to display information in a Swing component, including text, images, and other graphical elements.
-
Working with 2D Shapes
GU-04Explore how to work with 2D shapes in Swing, including drawing and manipulating shapes using Java's 2D graphics API.
-
Using Color
GU-05Learn how to use colors in Swing, including setting background and foreground colors, and understanding color models.
-
Using Special Fonts for Text
GU-06Discover how to use special fonts for text in Swing, including font styles, sizes, and families.
-
Displaying Images
GU-07Learn how to display images in Swing, including loading, scaling, and rendering images.
-
Event Handling
GU-08Understand the basics of event handling in Swing, including event classes, event listeners, and adapter classes.
-
Swing and the MVC Design Pattern
GU-09Explore how Swing implements the Model-View-Controller (MVC) design pattern, and its benefits in GUI programming.
-
Layout Management
GU-10Learn how to manage layouts in Swing, including using layout managers, and understanding layout constraints.
-
Basic Swing Components
GU-11Discover the basic components of Swing, including buttons, labels, text fields, and other UI elements.
Key Topics
-
Introduction to Databases
DA-1Introduction to databases, including examples and basic concepts.
-
Database Management System
DA-2Introduction to Database Management Systems (DBMS), including advantages and examples.
-
Database Users
DA-3Types of database users, including actors on the scene and workers behind the scene.
-
Benefits of Databases
DA-4Advantages and benefits of using databases.
-
Data Models
DA-5Types of data models, including hierarchical, network, ER, relational, and object models.
-
Three-Schema Architecture
DA-6Three-schema architecture, including internal, conceptual, and external views.
-
Data Independence
DA-7Data independence, including logical and physical independence.
-
Database Languages
DA-8Types of database languages, including DDL, DML, SDL, and VDL.
-
Database Interfaces
DA-9Types of database interfaces, including menu-based, mobile apps, form-based, and GUI.
Key Topics
-
What Is a Java Bean?
JA-1Introduction to Java Beans, their definition, and importance in Java programming.
-
Advantages of Java Beans
JA-2Benefits and advantages of using Java Beans in software development.
-
Introspection
JA-3The process of discovering and accessing the properties and behavior of a Java Bean.
-
Properties, Events, and Methods Design Patterns
JA-4Design patterns for creating and managing properties, events, and methods in Java Beans.
-
Using BeanInfo Interface
JA-5How to use the BeanInfo interface to provide additional information about a Java Bean.
-
Bound and Constrained Properties
JA-6Understanding and working with bound and constrained properties in Java Beans.
-
Persistence
JA-7How to persist Java Bean instances and their properties.
-
Customizers
JA-8Using customizers to customize the behavior and appearance of Java Beans.
-
The Java Beans API
JA-9Overview of the Java Beans API and its components.
-
Writing JavaBeans
JA-10Guidelines and best practices for writing and developing Java Beans.
Key Topics
-
Challenges and Approach of E-government Security
SE-1This 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-2This 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-3This 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-4This 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-5Security measures for protecting data during transactions in e-commerce.
-
Security Mechanisms
SE-6Various 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-7Exploring 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-8Understanding how to handle HTTP requests and responses using servlets, including request and response objects.
-
Using Cookies
SE-9Understanding how to use cookies in servlets, including setting and retrieving cookie values.
-
Session Tracking
SE-10Understanding how to track user sessions using servlets, including session creation and management.
-
Introduction to JSP
SE-11Introduction to JavaServer Pages (JSP), including their role in web development and key features.
-
Using JSP
SE-12Understanding how to use JSP to develop dynamic web pages, including JSP syntax and directives.
-
Comparing JSP with Servlet
SE-13Comparing and contrasting JSP with servlets, including their strengths and weaknesses.
-
Java Web Frameworks
SE-14Overview of Java web frameworks, including their role in web development and key features.
Key Topics
-
Introduction to RMI
RM-1RMI (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-2This 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-3Remote 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-4Stubs 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-5The 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-6This topic explains the importance of interfaces and implementations in RMI, including how to define and use them to create remote objects.
-
RMI Registry
RM-7The 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-8This topic explains how to handle parameters and return values in remote methods, including data types and serialization.
-
Remote Object Activation
RM-9Remote 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-10This 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-11This 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