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
-
Characteristics of Distributed Systems
IN-1.1This topic covers the key characteristics of distributed systems, including decentralization, resource sharing, and concurrency.
-
Design Goals of Distributed Systems
IN-1.2This topic explores the design goals of distributed systems, including scalability, fault tolerance, and security.
-
Types of Distributed Systems
IN-1.3This topic discusses the different types of distributed systems, including client-server, peer-to-peer, and hybrid systems.
-
Case Study: The World Wide Web
IN-1.4This topic presents a case study of the World Wide Web as a distributed system, highlighting its architecture and key features.
Key Topics
-
Introduction to Computers
IN-01An overview of computers and their significance in today's world. This topic sets the stage for understanding the basics of computers.
-
Digital and Analog Computers
IN-02Understanding the difference between digital and analog computers, their characteristics, and applications.
-
Characteristics of Computers
IN-03Exploring the key characteristics of computers, including input, processing, storage, and output.
-
History of Computers
IN-04A brief history of computers, from their inception to the present day, highlighting key milestones and developments.
-
Generations of Computers
IN-05Understanding the different generations of computers, including their features, advantages, and limitations.
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
-
Errors in Numerical Calculations
SO-1This topic covers the sources of errors in numerical calculations, propagation of errors, and a review of Taylor's Theorem.
-
Trial and Error Method
SO-2This topic explains the trial and error method for solving non-linear equations, including its convergence.
-
Half-Interval Method
SO-3This topic covers the half-interval method for solving non-linear equations, including its convergence.
-
Newton's Method
SO-4This topic explains Newton's method for solving non-linear equations, including its convergence and application to calculating multiple roots.
-
Secant Method
SO-5This topic covers the secant method for solving non-linear equations, including its convergence.
-
Fixed Point Iteration
SO-6This topic explains the fixed point iteration method for solving non-linear equations, including its convergence.
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.
9.1 An Example Client and Server
9.2 Buffers: Creating Buffers, Filling and Draining, Bulk Methods, Data Conversion, View Buffers, Compacting Buffers, Duplicating Buffers, Slicing Buffers, Marking and Resetting, Object Methods
9.3 Channels: SocketChannel, ServerSocketChannel, The Channels Class, Asynchronous Channels, Socket Options
9.4 Readiness Selection: The Selector Class, The SelectionKey Class
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.