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 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-101Introduction 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-102Understanding classes, objects, and interfaces in Java. Topics include overloading, access privileges, inner classes, final and static modifiers, packages, inheritance, and overriding.
-
Exception Handling
PR-103Handling exceptions in Java using try, catch, finally, throws, and throw keywords. Creating custom exception classes to handle errors and exceptions.
-
Concurrency
PR-104Introduction to concurrency in Java, including thread states, writing multithreaded programs, thread properties, thread synchronization, and thread priorities.
-
File Input/Output
PR-105Working 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-1This 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-2This topic covers various layout management techniques including No Layout, Flow layout, Border Layout, Grid Layout, Gridbag Layout, and Group Layout.
-
GUI Controls
US-3This 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-4This 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-5This topic discusses option dialogs, creating dialogs, File Choosers, Color Choosers, Internal Frames, Frames, Tables, Trees, and Tables.
Key Topics
-
Event Handling Concept
EV-1Understanding 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-2Exploring 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-3Learning 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-4Understanding 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-5Handling action events, including button clicks and other actions. This topic covers the specifics of handling action events in Java applications.
-
Handling Key Events
EV-6Handling key events, including key presses and releases. This topic covers the specifics of handling key events in Java applications.
-
Handling Focus Events
EV-7Handling focus events, including gaining and losing focus. This topic covers the specifics of handling focus events in Java applications.
-
Handling Mouse Events
EV-8Handling mouse events, including mouse clicks and movements. This topic covers the specifics of handling mouse events in Java applications.
-
Handling Window Events
EV-9Handling window events, including window opening and closing. This topic covers the specifics of handling window events in Java applications.
-
Handling Item Events
EV-10Handling 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-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.
-
Database System Environment
DA-10The database system environment, including DBMS component modules, utilities, tools, and communications facilities.
-
Database Architectures
DA-11Types of database architectures, including centralized, client/server, one-tier, two-tier, three-tier, and N-tier.
-
Classification of DBMS
DA-12Classification 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-13Working with row sets and cached row sets, including creating and managing row sets.
-
Transactions
DA-14Managing transactions using JDBC, including committing and rolling back transactions.
-
SQL Escapes
DA-15Using 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-001Understanding TCP and UDP protocols, their differences and uses in network communication.
-
Socket Programming using TCP and UDP
NE-002Learning socket programming concepts using TCP and UDP protocols in Java.
-
Working with URLs and URL Connection Class
NE-003Understanding how to work with URLs and URL Connection Class in Java for network communication.
-
Java Mail API
NE-004Learning Java Mail API for sending and receiving emails in Java applications.
Key Topics
-
Introduction to JavaFX
GU-1Introduction to JavaFX, a Java library for building GUI applications. Overview of JavaFX and its comparison with Swing.
-
JavaFX Layouts
GU-2JavaFX layouts including FlowPane, BorderPane, HBox, VBox, and GridPane. Understanding how to arrange UI components in a JavaFX application.
-
JavaFX UI Controls
GU-3JavaFX 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-701Introduction to web container and servlets, including the life cycle of servlets and servlet APIs.
-
Servlet Programming
SE-702Writing servlet programs, reading form parameters, processing forms, and handling HTTP requests and responses.
-
Database Access with Servlets
SE-703Accessing databases using servlets, including handling cookies and session management.
-
Servlet vs JSP
SE-704Comparing and contrasting servlets and Java Server Pages (JSP), including JSP access models and syntax.
-
JSP Syntax and Elements
SE-705Understanding JSP syntax, including directives, declarations, expressions, scriptlets, and comments.
-
JSP Implicit Objects and Scope
SE-706Working with JSP implicit objects and understanding object scope in JSP.
-
Form Processing and Database Access with JSP
SE-707Processing forms and accessing databases using JSP, including handling cookies and session management.
-
Introduction to Java Web Frameworks
SE-708Overview of Java web frameworks and their role in web application development.
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.
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.