Network Programming - Syllabus
Embark on a profound academic exploration as you delve into the Network Programming course () within the distinguished Tribhuvan university's BCA department. Aligned with the BCA Curriculum, this course (CACS355) 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 is designed to extend students' knowledge and practice in analysis and design of computer networks by focusing on computer network programming. It includes introduction, Internet Address, URLs and URis, HTTP, URLConnections, Socket Programming, IP Multicast and RMI. The JAVA programming language will be used throughout the course. It does not entirely focus on theoretical concept but also strongly focuses on practical skill based knowledge.
Course objectives
The general objectives of this course are to provide theoretical as well as practical knowledge of network programming to make students capable of developing, implementing, managing and troubleshooting the issues of network programming in their personal as well professional life.
Units
Key Topics
-
Introduction to E-commerce
IN-1Overview of E-commerce and its significance in the digital age.
-
E-business vs E-commerce
IN-2Understanding the differences between E-business and E-commerce.
-
Features of E-commerce
IN-3Key characteristics and benefits of E-commerce.
-
Pure vs Partial E-commerce
IN-4Types of E-commerce models and their applications.
Key Topics
-
Introduction to E-commerce
IN-1Overview of E-commerce and its significance in the digital age.
-
E-business vs E-commerce
IN-2Understanding the differences between E-business and E-commerce.
-
Features of E-commerce
IN-3Key characteristics and benefits of E-commerce.
-
Pure vs Partial E-commerce
IN-4Types of E-commerce models and their applications.
Key Topics
-
URIs and URLs
UR-1Understanding the basics of URIs and URLs, including relative URLs.
-
The URL Class
UR-2Working with the URL class, including creating new URLs, retrieving data, splitting URLs, and comparing and converting URLs.
-
The URI Class
UR-3Constructing and working with the URI class, including resolving relative URIs and comparing and converting URIs.
-
URL Encoding and Decoding
UR-4Understanding and working with URL encoding and decoding using the x-www-form-urlencoded format.
-
Proxies
UR-5Working with proxies, including system properties, the ProxyClass, and the ProxySelector Class.
-
Server-Side Communication with GET
UR-6Communicating with server-side programs using the GET method.
-
Accessing Password-Protected Sites
UR-7Accessing password-protected sites using the Authenticator Class, PasswordAuthentication Class, and JPasswordField Class.
Key Topics
-
HTTP
HT-1Introduction to HTTP (Hypertext Transfer Protocol) and its role in web communication.
-
Request and Response Message Format
HT-2Understanding the structure and components of HTTP request and response messages.
-
Common Web Application Architectures
HT-3Overview of popular web application architectures and their characteristics.
-
MVC Pattern
HT-4Introduction to the Model-View-Controller (MVC) pattern and its application in web development.
Key Topics
-
URIs and URLs
UR-1Understanding the basics of URIs and URLs, including relative URLs.
-
The URL Class
UR-2Working with the URL class, including creating new URLs, retrieving data, splitting URLs, and comparing and converting URLs.
-
The URI Class
UR-3Constructing and working with the URI class, including resolving relative URIs and comparing and converting URIs.
-
URL Encoding and Decoding
UR-4Understanding and working with URL encoding and decoding using the x-www-form-urlencoded format.
-
Proxies
UR-5Working with proxies, including system properties, the ProxyClass, and the ProxySelector Class.
-
Server-Side Communication with GET
UR-6Communicating with server-side programs using the GET method.
-
Accessing Password-Protected Sites
UR-7Accessing password-protected sites using the Authenticator Class, PasswordAuthentication Class, and JPasswordField Class.
-
Guessing MIME Media Types
UR-8Learn how to guess MIME media types from a server response. Understand the importance of MIME types and how to determine them.
-
HttpURLConnection
UR-9Explore the features and methods of HttpURLConnection. Learn about request methods, disconnecting from the server, handling server responses, proxies, and streaming mode.
Key Topics
-
Introduction to Socket
SO-601An overview of sockets and their importance in network programming. This topic lays the foundation for understanding socket programming.
-
Using Sockets
SO-602Exploring protocols with telnet, reading from servers, and writing to servers using sockets. This topic covers the basics of socket usage.
-
Constructing and Connecting Sockets
SO-603Creating sockets, picking a local interface to connect from, constructing without connecting, and understanding socket addresses and proxy servers.
-
Getting Information about a Socket
SO-604Determining whether a socket is closed or connected, and using the toString() method to get socket information.
-
Setting Socket Options
SO-605Configuring socket options such as TCP_NODELAY, SO_LINGER, SO_TIMEOUT, and others to customize socket behavior.
-
Socket in GUI Applications
SO-606Integrating sockets into graphical user interface applications, including Whois and network client libraries.
Key Topics
-
Using ServerSockets
SO-701Learn how to use ServerSockets for serving binary data, creating multithreaded servers, writing to servers with sockets, and closing server sockets.
-
Logging
SO-702Understand what to log and how to log in a server environment.
-
Constructing Server Sockets
SO-703Discover how to construct server sockets without binding.
-
Getting Information about Server Socket
SO-704Learn how to retrieve information about a server socket.
-
Socket Options
SO-705Explore socket options such as SO_TIMEOUT, SO_REUSEADDR, SO_RCVBUF, and Class of Service.
-
HTTP Servers
SO-706Build different types of HTTP servers, including a single file server, a redirector, and a full-fledged HTTP server.
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.
Key Topics
-
Chi-Square Test
NO-1The Chi-Square test is a statistical test used to determine whether there is a significant association between two categorical variables. It is used to test the independence of two variables or to test whether the observed frequencies of a categorical variable match the expected frequencies.
-
Order Statistics
NO-2Order statistics is a branch of statistics that deals with the arrangement of data in order of magnitude. It is used to describe the distribution of data and to make inferences about the population.
-
Run Test
NO-3The Run test is a non-parametric test used to determine whether a sequence of data is random or not. It is used to test for randomness in a sequence of binary data.
-
Sign Test
NO-4The Sign test is a non-parametric test used to compare the median of two related samples. It is used to test whether the median of one sample is significantly different from the median of another sample.
Key Topics
-
UDP Protocol
UD-1Introduction to the UDP protocol, its features, and characteristics.
-
UDP Clients
UD-2Understanding UDP clients, their role in network communication, and how they interact with UDP servers.
-
UDP Servers
UD-3Understanding UDP servers, their role in network communication, and how they interact with UDP clients.
-
DatagramPacket Class
UD-4Exploring the DatagramPacket class, its constructors, get methods, and set methods in UDP programming.
-
DatagramSocket Class
UD-5Understanding the DatagramSocket class, its constructors, sending and receiving datagrams, and managing connections.
-
Socket Options
UD-6Configuring socket options in UDP programming, including SO_TIMEOUT, SO_RCVBUF, SO_SNDBUF, SO_REUSEADDR, SO_BROADCAST, and IP_TOS.
-
UDP Applications
UD-7Building UDP applications, including simple UDP clients, UDP servers, and UDP echo clients.
-
DatagramChannel
UD-8Using DatagramChannel in UDP programming for efficient and scalable network communication.
Key Topics
-
Multicasting Fundamentals
IP-11.1This topic covers the basics of multicasting, including multicast addresses and groups, clients and servers, and routers and routing.
-
Working with Multicast Sockets
IP-11.2This topic explores the use of multicast sockets, including the constructor and communicating with a group.
Key Topics
-
Relational Database Design Using ER-to-Relational Mapping
RE-1Learn how to design relational databases using ER-to-relational mapping, including mapping of regular entities, weak entities, relationship types, multivalued attributes, and N-ary relationships.
-
Informal Design Guidelines for Relational Schemas
RE-2Understand informal design guidelines for relational schemas, including semantics of attributes in relations, redundant information in tuples and update anomalies, NULL values in tuples, and generation of spurious tuples.
-
Functional Dependencies
RE-3Study functional dependencies, including definition, inference rules, Armstrong's axioms, attribute closure, equivalence of functional dependencies, and minimal sets of functional dependencies.
Lab works
Laboratory Work
Laboratory work should be done covering all the topics listed above and a small project work should be carried out using the concept learnt in this course using Java programming Language.