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 CSIT department. Aligned with the 2074 Syllabus, this course (CSC409) 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 familiarizes students with basic as well as advanced features of Java Programming Emphasis will be given to GUI and event-driven programming, Database Connectivity, Socket Programming, Servlets and JSP Technology, and Distributed Programming.

Course Objectives:

The main objective of this course is to

  • Introduce basic concepts of Java Programming.
  • Exemplify the concept of GUI programming and JDBC
  • Demonstrate socket programming. remote objects, and servlet and JSP Technology

Units

Key Topics

  • Java Fundamentals
    PR-101

    Introduction to Java architecture, buzzwords, and environment setup including Path and ClassPath variables. Understanding the basic structure of a Java program, compiling, and running Java programs.

  • Object-Oriented Programming
    PR-102

    Understanding classes, objects, and interfaces in Java. Topics include overloading, access privileges, inner classes, final and static modifiers, packages, inheritance, and overriding.

  • Exception Handling
    PR-103

    Handling exceptions in Java using try, catch, finally, throws, and throw keywords. Creating custom exception classes to handle errors and exceptions.

  • Concurrency
    PR-104

    Introduction to concurrency in Java, including thread states, writing multithreaded programs, thread properties, thread synchronization, and thread priorities.

  • File Input/Output
    PR-105

    Working with files in Java, including byte stream classes, character stream classes, random access files, and reading and writing objects.

Key Topics

  • Introduction to AWT and Swing
    US-1

    This topic introduces the concept of AWT, compares AWT with Swing, and covers Java Applets, Applet Life Cycle, Swing Class Hierarchy, and Component and Containers.

  • Layout Management
    US-2

    This topic covers various layout management techniques including No Layout, Flow layout, Border Layout, Grid Layout, Gridbag Layout, and Group Layout.

  • GUI Controls
    US-3

    This topic explores various GUI controls such as Text Fields, Password Fields, Text Areas, Scroll Pane, Labels, Check Boxes, Radio Buttons, Borders, Combo Boxes, and Sliders.

  • Menu and Toolbar Management
    US-4

    This topic covers menu and toolbar management including Menu, Menu Item, Icons in Menu Items, Check Box and Radio Buttons in Menu Items, Pop-up Menus, Keyboard Mnemonics and Accelerators, Enabling and Disabling Menu Items, and Toolbars.

  • Option Dialogs and Frames
    US-5

    This topic discusses option dialogs, creating dialogs, File Choosers, Color Choosers, Internal Frames, Frames, Tables, Trees, and Tables.

Key Topics

  • Event Handling Concept
    EV-1

    Understanding the concept of event handling in Java, including the role of listeners and event sources. This topic lays the foundation for handling events in Java applications.

  • Listener Interfaces
    EV-2

    Exploring the different listener interfaces in Java, including their methods and usage. This topic covers the interfaces that must be implemented to handle events.

  • Using Action Commands
    EV-3

    Learning how to use action commands to handle events, including setting and getting action commands. This topic covers the basics of using action commands in event handling.

  • Adapter Classes
    EV-4

    Understanding the role of adapter classes in event handling, including their usage and benefits. This topic covers how adapter classes simplify event handling.

  • Handling Action Events
    EV-5

    Handling action events, including button clicks and other actions. This topic covers the specifics of handling action events in Java applications.

  • Handling Key Events
    EV-6

    Handling key events, including key presses and releases. This topic covers the specifics of handling key events in Java applications.

  • Handling Focus Events
    EV-7

    Handling focus events, including gaining and losing focus. This topic covers the specifics of handling focus events in Java applications.

  • Handling Mouse Events
    EV-8

    Handling mouse events, including mouse clicks and movements. This topic covers the specifics of handling mouse events in Java applications.

  • Handling Window Events
    EV-9

    Handling window events, including window opening and closing. This topic covers the specifics of handling window events in Java applications.

  • Handling Item Events
    EV-10

    Handling item events, including item selections and changes. This topic covers the specifics of handling item events in Java applications.

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.

  • Database System Environment
    DA-10

    The database system environment, including DBMS component modules, utilities, tools, and communications facilities.

  • Database Architectures
    DA-11

    Types of database architectures, including centralized, client/server, one-tier, two-tier, three-tier, and N-tier.

  • Classification of DBMS
    DA-12

    Classification of Database Management Systems, including single and multi-user, centralized and distributed, homogeneous and heterogeneous, and general-purpose and special-purpose.

  • Row Sets and Cached Row Sets
    DA-13

    Working with row sets and cached row sets, including creating and managing row sets.

  • Transactions
    DA-14

    Managing transactions using JDBC, including committing and rolling back transactions.

  • SQL Escapes
    DA-15

    Using SQL escapes to perform special operations, including pattern matching and date/time operations.

Key Topics

  • Transmission Control Protocol (TCP) and User Datagram Protocol (UDP)
    NE-001

    Understanding TCP and UDP protocols, their differences and uses in network communication.

  • Socket Programming using TCP and UDP
    NE-002

    Learning socket programming concepts using TCP and UDP protocols in Java.

  • Working with URLs and URL Connection Class
    NE-003

    Understanding how to work with URLs and URL Connection Class in Java for network communication.

  • Java Mail API
    NE-004

    Learning Java Mail API for sending and receiving emails in Java applications.

Key Topics

  • Introduction to JavaFX
    GU-1

    Introduction to JavaFX, a Java library for building GUI applications. Overview of JavaFX and its comparison with Swing.

  • JavaFX Layouts
    GU-2

    JavaFX layouts including FlowPane, BorderPane, HBox, VBox, and GridPane. Understanding how to arrange UI components in a JavaFX application.

  • JavaFX UI Controls
    GU-3

    JavaFX UI controls including Label, TextField, Button, RadioButton, CheckBox, Hyperlink, Menu, Tooltip, and FileChooser. Understanding how to use these controls to build a GUI application.

Key Topics

  • Web Container and Servlet Introduction
    SE-701

    Introduction to web container and servlets, including the life cycle of servlets and servlet APIs.

  • Servlet Programming
    SE-702

    Writing servlet programs, reading form parameters, processing forms, and handling HTTP requests and responses.

  • Database Access with Servlets
    SE-703

    Accessing databases using servlets, including handling cookies and session management.

  • Servlet vs JSP
    SE-704

    Comparing and contrasting servlets and Java Server Pages (JSP), including JSP access models and syntax.

  • JSP Syntax and Elements
    SE-705

    Understanding JSP syntax, including directives, declarations, expressions, scriptlets, and comments.

  • JSP Implicit Objects and Scope
    SE-706

    Working with JSP implicit objects and understanding object scope in JSP.

  • Form Processing and Database Access with JSP
    SE-707

    Processing forms and accessing databases using JSP, including handling cookies and session management.

  • Introduction to Java Web Frameworks
    SE-708

    Overview of Java web frameworks and their role in web application development.

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.

 

Lab works

Laboratory Works:

The laboratory work includes writing programs related to basic java programming concepts, Designing GUI, Event Handling, JDBC, Network Programming, Web Programming, and Distributed Programming. They also learn to develop web applications using Java Web Frameworks.