Network Programming - Syllabus

Course Overview and Structure

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-1

    Overview of E-commerce and its significance in the digital age.

  • E-business vs E-commerce
    IN-2

    Understanding the differences between E-business and E-commerce.

  • Features of E-commerce
    IN-3

    Key characteristics and benefits of E-commerce.

  • Pure vs Partial E-commerce
    IN-4

    Types of E-commerce models and their applications.

Key Topics

  • Introduction to E-commerce
    IN-1

    Overview of E-commerce and its significance in the digital age.

  • E-business vs E-commerce
    IN-2

    Understanding the differences between E-business and E-commerce.

  • Features of E-commerce
    IN-3

    Key characteristics and benefits of E-commerce.

  • Pure vs Partial E-commerce
    IN-4

    Types of E-commerce models and their applications.

Key Topics

  • URIs and URLs
    UR-1

    Understanding the basics of URIs and URLs, including relative URLs.

  • The URL Class
    UR-2

    Working with the URL class, including creating new URLs, retrieving data, splitting URLs, and comparing and converting URLs.

  • The URI Class
    UR-3

    Constructing and working with the URI class, including resolving relative URIs and comparing and converting URIs.

  • URL Encoding and Decoding
    UR-4

    Understanding and working with URL encoding and decoding using the x-www-form-urlencoded format.

  • Proxies
    UR-5

    Working with proxies, including system properties, the ProxyClass, and the ProxySelector Class.

  • Server-Side Communication with GET
    UR-6

    Communicating with server-side programs using the GET method.

  • Accessing Password-Protected Sites
    UR-7

    Accessing password-protected sites using the Authenticator Class, PasswordAuthentication Class, and JPasswordField Class.

Key Topics

  • HTTP
    HT-1

    Introduction to HTTP (Hypertext Transfer Protocol) and its role in web communication.

  • Request and Response Message Format
    HT-2

    Understanding the structure and components of HTTP request and response messages.

  • Common Web Application Architectures
    HT-3

    Overview of popular web application architectures and their characteristics.

  • MVC Pattern
    HT-4

    Introduction to the Model-View-Controller (MVC) pattern and its application in web development.

Key Topics

  • URIs and URLs
    UR-1

    Understanding the basics of URIs and URLs, including relative URLs.

  • The URL Class
    UR-2

    Working with the URL class, including creating new URLs, retrieving data, splitting URLs, and comparing and converting URLs.

  • The URI Class
    UR-3

    Constructing and working with the URI class, including resolving relative URIs and comparing and converting URIs.

  • URL Encoding and Decoding
    UR-4

    Understanding and working with URL encoding and decoding using the x-www-form-urlencoded format.

  • Proxies
    UR-5

    Working with proxies, including system properties, the ProxyClass, and the ProxySelector Class.

  • Server-Side Communication with GET
    UR-6

    Communicating with server-side programs using the GET method.

  • Accessing Password-Protected Sites
    UR-7

    Accessing password-protected sites using the Authenticator Class, PasswordAuthentication Class, and JPasswordField Class.

  • Guessing MIME Media Types
    UR-8

    Learn how to guess MIME media types from a server response. Understand the importance of MIME types and how to determine them.

  • HttpURLConnection
    UR-9

    Explore 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-601

    An overview of sockets and their importance in network programming. This topic lays the foundation for understanding socket programming.

  • Using Sockets
    SO-602

    Exploring 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-603

    Creating sockets, picking a local interface to connect from, constructing without connecting, and understanding socket addresses and proxy servers.

  • Getting Information about a Socket
    SO-604

    Determining whether a socket is closed or connected, and using the toString() method to get socket information.

  • Setting Socket Options
    SO-605

    Configuring socket options such as TCP_NODELAY, SO_LINGER, SO_TIMEOUT, and others to customize socket behavior.

  • Socket in GUI Applications
    SO-606

    Integrating sockets into graphical user interface applications, including Whois and network client libraries.

Key Topics

  • Using ServerSockets
    SO-701

    Learn how to use ServerSockets for serving binary data, creating multithreaded servers, writing to servers with sockets, and closing server sockets.

  • Logging
    SO-702

    Understand what to log and how to log in a server environment.

  • Constructing Server Sockets
    SO-703

    Discover how to construct server sockets without binding.

  • Getting Information about Server Socket
    SO-704

    Learn how to retrieve information about a server socket.

  • Socket Options
    SO-705

    Explore socket options such as SO_TIMEOUT, SO_REUSEADDR, SO_RCVBUF, and Class of Service.

  • HTTP Servers
    SO-706

    Build 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-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.

Key Topics

  • Chi-Square Test
    NO-1

    The 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-2

    Order 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-3

    The 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-4

    The 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-1

    Introduction to the UDP protocol, its features, and characteristics.

  • UDP Clients
    UD-2

    Understanding UDP clients, their role in network communication, and how they interact with UDP servers.

  • UDP Servers
    UD-3

    Understanding UDP servers, their role in network communication, and how they interact with UDP clients.

  • DatagramPacket Class
    UD-4

    Exploring the DatagramPacket class, its constructors, get methods, and set methods in UDP programming.

  • DatagramSocket Class
    UD-5

    Understanding the DatagramSocket class, its constructors, sending and receiving datagrams, and managing connections.

  • Socket Options
    UD-6

    Configuring socket options in UDP programming, including SO_TIMEOUT, SO_RCVBUF, SO_SNDBUF, SO_REUSEADDR, SO_BROADCAST, and IP_TOS.

  • UDP Applications
    UD-7

    Building UDP applications, including simple UDP clients, UDP servers, and UDP echo clients.

  • DatagramChannel
    UD-8

    Using DatagramChannel in UDP programming for efficient and scalable network communication.

Key Topics

  • Multicasting Fundamentals
    IP-11.1

    This topic covers the basics of multicasting, including multicast addresses and groups, clients and servers, and routers and routing.

  • Working with Multicast Sockets
    IP-11.2

    This 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-1

    Learn 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-2

    Understand 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-3

    Study 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.