Information Technology • 5th SemesterCore / Standard CurriculumChange Track

Information Technology — 5th Semester Syllabus

Computer Science & Engineering (Data Science)

Credits Allocation Table (L-T-P Structure)

Course TitleCodeLTPCredits
Machine Learning1535013003
Database Management System1535023003
Computer Networks1535033003
Python Programming1535043003
Seminar1535051001
Program Electives Courses-I1535XX3003
Professional Practice, Law & Ethics-3000
Summer Entrepreneurship-II153511P---6
NPTEL Course153512P0042
Database Management System Lab153502P0042
Computer Networks Lab153503P0021
TOTAL----27

Machine Learning

153501
Theory Course • 6 Units
View PYQ Papers

Unit 1.0: Introduction

  • Types of learning
  • Common aspects of machine learning approach: model
  • Parameters
  • Bias-Variance
  • Test, train and validation datasets
  • Error function
  • Curse of dimensionality
  • Predictive analysis using regression

Unit 2.0: Python Basics

  • Fundamental data types in Python
  • Looping and decision-making constructs
  • Functions
  • Classes
  • File handling
  • Database access
  • Output formatting
  • Classes
  • Modules
  • Statistics module
  • Numpy
  • Introduction to popular machine learning libraries Tensor Flow & Keras

Unit 3.0: Unsupervised Learning

  • Clustering
  • K-means
  • GMM & EM algorithm
  • Eigen values and Eigen vectors
  • PCA unsupervised dimensionality reduction technique

Unit 4.0: Supervised Learning

  • Classification: KNN
  • Bayes
  • Decision Tree
  • SVM: soft and hard margin
  • Kernel trick
  • LDA - supervised dimensionality reduction technique

Unit 5.0: Ensemble and Reinforcement Learning

  • Bagging
  • Random Forest and Boosting
  • Q-learning and SARSA algorithms

Unit 6.0: Neural Networks

  • Introduction
  • Perceptron model
  • Learning rules and activation functions
  • Multi-layer feed forward
  • Back-propagation
  • Introduction to feed-back networks

Database Management System

153502
Theory Course • 6 Units
View PYQ Papers

Unit 1.0: Database system architecture

  • Data Abstraction
  • Data Independence
  • Data Definition Language (DDL)
  • Data Manipulation Language (DML)
  • Data models: Entity-relationship model
  • Network model
  • Relational and object oriented data models
  • Integrity constraints
  • Data manipulation operations

Unit 2.0: Relational query languages

  • Relational algebra
  • Tuple and domain relational calculus
  • SQL3
  • DDL and DML constructs
  • Open source and Commercial DBMS - MYSQL
  • ORACLE
  • DB2
  • SQL server
  • Relational database design: Domain and data dependency
  • Armstrong's axioms
  • Normal forms
  • Dependency preservation
  • Lossless design
  • Query processing and optimization: Evaluation of relational algebra expressions
  • Query equivalence
  • Join strategies
  • Query optimization algorithms

Unit 3.0: Storage strategies

  • Indices
  • B-trees
  • Hashing

Unit 4.0: Transaction processing

  • Concurrency control
  • ACID property
  • Serializability of scheduling
  • Locking and timestamp based schedulers
  • Multi-version and optimistic Concurrency Control schemes
  • Database recovery

Unit 5.0: Database Security

  • Authentication
  • Authorization and access control
  • DAC, MAC and RBAC models
  • Intrusion detection
  • SQL injection

Unit 6.0: Advanced topics

  • Object oriented and object relational databases
  • Logical databases
  • Web databases
  • Distributed databases
  • Data warehousing and data mining

Computer Networks

153503
Theory Course • 6 Units
View PYQ Papers

Unit 1.0: Overview of Data Communication and Networking

  • OSI Reference Model
  • TCP/IP Protocol Suite
  • Network Architecture and Physical Topology

Unit 2.0: Physical Layer

  • Analog and Digital Signals
  • Transmission Impairment
  • Data Rate Limits
  • Performance Analysis of a Network
  • Representation and Synchronization of Bits
  • Analog and Digital Transmission
  • Multiplexing and Spreading Techniques
  • Guided Transmission Media
  • Circuit
  • Packet and Virtual Circuit Switching

Unit 3.0: Data Link Layer

  • Framing
  • Flow and Error Control (Noiseless and Noisy Channels Protocols)
  • PointToPoint Protocol
  • Random Access protocols (Pure/slotted ALOHA, CSMA/CD, CSMA/CA)
  • Controlled Access Protocol (Bit-Map, Polling and Token Passing)
  • Channelization (TDMA, FDMA, CDMA)
  • Physical Addressing and Ethernet
  • Connecting LANs and Virtual LANs

Unit 4.0: Network Layer

  • Internet Protocol version 4 and 6
  • Address Mapping (ARP, RARP, BOOTP and DHCP)
  • ICMP and IGMP
  • Routing Algorithms

Unit 5.0: Transport Layer

  • UDP
  • TCP
  • Congestion Control and QoS
  • Client-Server Model and Socket Interface

Unit 6.0: Application Layer

  • DNS
  • Remote Logging
  • Electronic Mail (SMTP, POP)
  • FTP
  • Introduction to WWW and HTTP

Python Programming

153504
Theory Course • 6 Units
View PYQ Papers

Unit 1.0: Input and Output

  • Identifiers
  • Keywords
  • Statements and Expressions
  • Variables
  • Operators
  • Precedence and Associativity
  • Data Types
  • Indentation
  • Comments
  • Reading Input
  • Print Output
  • Type Conversions
  • The type() Function and Is Operator
  • Dynamic and Strongly Typed Language

Unit 2.0: Control Flow statements, Function, Loops and Strings

  • Control Flow Statements
  • The if Decision Control Flow Statement
  • The if...else Decision Control Flow Statement
  • The if...elseif...else Decision Control Statement
  • Nested if Statement
  • Built-In Functions
  • Commonly Used Modules
  • Function Definition and Calling the Function
  • The return Statement and void Function
  • Scope and Lifetime of Variables
  • Default Parameters
  • The while Loop
  • The for Loop
  • The continue and break Statements
  • Creating and Storing Strings
  • Basic String Operations
  • Accessing Characters in String by Index Number
  • String Slicing and Joining
  • String Methods
  • Formatting Strings

Unit 3.0: Lists

  • Creating Lists
  • Basic List Operations
  • Indexing and Slicing in Lists
  • Built-In Functions Used on Lists
  • List Methods
  • The del Statement

Unit 4.0: Dictionaries, Tuples and Sets

  • Creating Dictionary
  • Accessing and Modifying key value Pairs in Dictionaries
  • Built-In Functions Used on Dictionaries
  • Dictionary Methods
  • The del Statement
  • Tuples and Sets
  • Creating Tuples
  • Basic Tuple Operations
  • Indexing and Slicing in Tuples
  • Built-In Functions Used on Tuples
  • Relation between Tuples and Lists
  • Relation between Tuples and Dictionaries
  • Tuple Methods
  • Using zip() Function
  • Sets
  • Set Methods
  • Traversing of Sets
  • Frozen set

Unit 5.0: Files

  • Types of Files
  • Creating and Reading Text Data
  • File Methods to Read and Write Data
  • Reading and Writing Binary Files
  • The Pickle Module
  • Reading and Writing CSV Files
  • Python os and os.path Modules

Unit 6.0: Object Oriented Design and Python Modules

  • Programming types
  • Object Oriented Programming
  • Object Oriented Design
  • Inheritance and Polymorphism
  • Introduction to modules
  • Statistics module
  • Numpy
  • Introduction to popular machine learning libraries Tensor Flow & Keras

Program Elective-I

1535XX
Theory Course • Course Details
View PYQ Papers
Available Elective Tracks & Options (5):

Program Elective: Artificial Intelligence

153506

Unit 1.0: Introduction

Overview • Turing test • Intelligent agents

Unit 2.0: Problem Solving

Solving Problems by Searching: Uninformed search - Depth First Search • Breadth First Search • DFID • Heuristic search - Generate and Test • Best First Search • Beam Search • Hill Climbing • Problem reduction search • Stochastic search methods

Unit 3.0: Search and Optimization

AND/OR Graphs • AO* • Constraint satisfaction • Means-ends analysis • Simulated Annealing • Particle Swarm Optimization • Game Playing Minimax algorithm • Alpha-beta pruning

Unit 4.0: Knowledge and Reasoning

Building a knowledge base - Propositional logic • First order logic • Inference in first order logic • Resolution refutation proofs • Theorem Proving in First Order Logic • Planning • Partial order planning • Uncertain Knowledge and Reasoning • Probabilities • Bayesian Networks

Unit 5.0: Learning

Overview of different forms of learning: unsupervised • Supervised • Semi-supervised • K-means clustering algorithm • Decision Trees • Neural Networks • Deep Learning

Unit 6.0: Advanced topics

Introduction to Computer Vision • Natural Language Processing • Expert Systems • Robotics • Genetic Algorithm

Program Elective: Digital Signal Processing

153507

Unit 1.0: Discrete Fourier Transform (DFT)

Z-transform and DTFT • Frequency domain sampling (Sampling of DTFT) • DFT and its inverse • Zero padding • DFT as a linear transformation (matrix method) • Properties • Spectrum analysis using DFT • Filtering of long data sequences using DFT: overlap save method • Overlap add method

Unit 2.0: Fast Fourier Transform (FFT)- Radix-2 FFT algorithms

Decimation-in-time (DIT-FFT) algorithm • Decimation-in-frequency (DIF-FFT) algorithm • Inverse DFT using FFT algorithms • Goertzel algorithm • Chirp-z transform algorithm

Unit 3.0: Filter Concepts

Frequency response and filter characteristics • Phase delay and group delay • Zero-phase filter • Linear-phase filter • Simple FIR filters • Simple IIR filters • All pass filter • Minimum-phase system • Averaging filter • Comb filter • Digital resonator • Notch filter • Digital sinusoidal oscillator

Unit 4.0: FIR and IIR Digital Filter

Desirability of linear-phase filters • Frequency response of linear phase FIR filters • Filter specifications: absolute specifications • Relative specifications • Analog filter specifications • Design techniques: windowing • Frequency sampling method • Digital Hilbert transformer • Analog filters • Butterworth and Chebyshev approximation • Bilinear transformation method • Warping effect • Spectral transformation • Design of low pass • High pass • Band pass and band elimination filter

Unit 5.0: Realizations of Digital Filters

FIR filter structures: direct form • Cascade form • Linear-phase form • FIR Lattice structure • IIR filter structures: direct form-I • Direct form-II • Cascade form • Parallel form • All pole lattice structure • Lattice-ladder (pole-zero) lattice structure

Unit 6.0: Multirate Signal Processing

Decimation • Interpolation • The polyphase decomposition • Digital filter banks • Nyquist filters • Two-channel QMF

Program Elective: Formal Language & Automata Theory

153508

Unit 1.0: Introduction

Alphabet • Languages and grammars • Productions and derivation • Chomsky hierarchy of languages

Unit 2.0: Regular languages and finite automata

Regular expressions and languages • Deterministic finite automata (DFA) and equivalence with regular expressions • Nondeterministic finite automata (NFA) and equivalence with DFA • Regular grammars and equivalence with finite automata • Properties of regular languages • Pumping lemma for regular languages • Minimization of finite automata

Unit 3.0: Context-free languages and pushdown automata

Context-free grammars (CFG) and Context-free languages (CFL) • Chomsky and Greibach normal forms • Nondeterministic pushdown automata (PDA) and equivalence with CFG • Parse trees • Ambiguity in CFG • Pumping lemma for context-free languages • Deterministic pushdown automata • Closure properties of CFLs

Unit 4.0: Context-sensitive languages

Context-sensitive grammars (CSG) and Context-sensitive languages • Linear bounded automata and equivalence with CSG

Unit 5.0: Turing machines

The basic model for Turing machines (TM) • Turing recognizable (Recursively enumerable) and Turing-decidable (recursive) languages and their closure properties • Variants of Turing machines • Nondeterministic TMs and equivalence with deterministic TMs • Unrestricted grammars and equivalence with Turing machines • TMs as enumerators

Unit 6.0: Undecidability

Church-Turing thesis • Universal Turing machine • The universal and diagonalization languages • Reduction between languages and Rice's theorem • Undecidable problems about languages

Program Elective: Mathematical Foundations of Data Science

153509

Unit 1.0: Linear Algebra

Systems of Linear Equations • Matrices • Solving Systems of Linear Equations • Vector Spaces • Linear Independence • Basis and Rank • Linear Mappings • Affine Spaces

Unit 2.0: Analytic Geometry

Norms • Inner Products • Lengths and Distances • Angles and Orthogonality • Orthonormal Basis • Orthogonal Complement • Inner Product of Functions • Orthogonal Projections • Rotations

Unit 3.0: Matrix Decompositions

Determinant and Trace • Eigenvalues and Eigenvectors • Cholesky Decomposition • Eigen Decomposition and Diagonalization • Singular Value Decomposition • Principal Component Analysis • Linear Discriminant Analysis • Matrix Approximation • Matrix Phylogeny

Unit 4.0: Vector Calculus

Differentiation of Univariate Functions • Partial Differentiation and Gradients • Gradients of Vector-Valued Functions • Gradients of Matrices • Useful Identities for Computing Gradients • Backpropagation and Automatic Differentiation • Higher-Order Derivatives • Linearization and Multivariate Taylor Series

Unit 5.0: Probability measures

Elementary probability • Basic facts • Events • Probability measures • Continuity of measures • Integral with respect to a measure • Probabilities on finite and denumerable sets • Probabilities on denumerable sets • Probabilities on uncountable sets • Conditional probability • Bayes formula • Random variables • Random variables • Expected value • Functions of random variables • Variance • Markov and Chebyshev inequalities • A few discrete distributions • Bernoulli distribution • Binomial distribution • Hypergeometric distribution • Poisson distribution • Geometric distribution

Unit 6.0: Discrete Time Markov chains

Stochastic matrices • Oriented graphs • Markov chains • Stochastic processes • Transition matrices • Homogeneous processes • Markov chains • Canonical Markov chains • Some characteristic parameters • Steps for a first visit • Probability of (at least) r visits • Recurrent and transient states • Mean first passage time • Hitting time and hitting probabilities

Program Elective: Software Engineering

153510

Unit 1.0: Introduction

What is Software Engineering and its history • Software crisis • Evolution of a Programming System Product • Characteristics of Software • Brooks' No Silver Bullet • Software Myths • Software Development Life Cycles: Software Development Process • The Code-and-Fix model • The Waterfall model • The Evolutionary Model • The Incremental Implementation • Prototyping • The Spiral Model • Software Reuse • Critical Comparisons of SDLC models • An Introduction to Non-Traditional Software Development Process: Rational Unified Process • Rapid Application Development • Agile Development Process

Unit 2.0: Requirements

Importance of Requirement Analysis • User Needs • Software Features and Software Requirements • Classes of User Requirements: Enduring and Volatile • Sub phases of Requirement Analysis • Functional and Nonfunctional requirements • Barriers to Eliciting User requirements • The software requirements document and SRS standards • Requirements engineering • Case Study of SRS for a Real Time System • Tools for Requirements Gathering: Document Flow Chart • Decision Table • Decision Tree • Introduction to nontraditional Requirements

Unit 3.0: Software Design

Goals of good software design • Design strategies and methodologies • Data oriented software design • Coupling • Cohesion • Modular structure • Packaging • Structured Analysis: DFD • Data Dictionary • Structured Design: Structure chart • Object oriented design • Top-down and bottom-up approach • UML • UML Diagrams • Design patterns

Unit 4.0: Software Project Management

Overview of Project Manager Responsibilities & project planning • Software Measurement and Metrics: Line of Code (LOC) • Function Point (FP) based measures • Various Size Oriented Measures: Halstead's software science • Project Size estimation Metrics Project Estimation • Techniques • COCOMO • Staffing Level Estimation • Scheduling • Organization & Team Structures Staffing • Risk Management

Unit 5.0: Software Coding & Testing

Development: Selecting a language • Coding guidelines • Writing code • Code documentation • Testing process • Design of test cases • Functional Testing: Boundary value analysis • Equivalence class testing • Decision table testing • Cause effect graphing • Structural testing • Cyclomatic Complexity Measures: Control flow graphs • Path testing • Data flow and mutation testing • Integration and system testing • Debugging • Alpha & beta testing • Testing tools & standards

Unit 6.0: Software Maintenance

Management of maintenance • Maintenance process • Maintenance models • Regression testing • Reverse engineering • Software reengineering • Configuration management • Documentation • Software Reliability & Quality Management: Introduction to reliability and metrics to reliability measure • Overview of S/W Quality management System ISO 9000 • SEI CMM

Database Management System Lab

153502P
Laboratory Subject • 1 Units
View PYQ Papers

Topics Part 1

  • Student should decide on a case study and formulate the problem statement.
  • Conceptual Designing using ER Diagrams (Identifying entities, attributes, keys and relationships between entities, cardinalities, generalization, specialization etc.) Note: Student is required to submit a document by drawing ER Diagram to the Lab teacher.
  • Converting ER Model to Relational Model (Represent entities and relationships in Tabular form, Represent attributes as columns, identifying keys) Note: Student is required to submit a document showing the database tables created from ER Model.
  • Normalization -To remove the redundancies and anomalies in the above relational tables, Normalize up to Third Normal Form.
  • Creation of Tables using SQL- Overview of using SQL tool, Data types in SQL, Creating Tables (along with Primary and Foreign keys), Altering Tables and Dropping Tables.
  • Practicing DML commands- Insert, Select, Update, Delete.
  • Practicing Queries using ANY, ALL, IN, EXISTS, NOT EXISTS, UNION, INTERSECT, CONSTRAINTS etc.
  • Practicing Sub queries (Nested, Correlated) and Joins (Inner, Outer and Equi).
  • Practice Queries using COUNT, SUM, AVG, MAX, MIN, GROUP BY, HAVING, VIEWS Creation and Dropping.
  • Practicing on Triggers - creation of trigger, Insertion using trigger, Deletion using trigger, Updating using trigger.

Prescribed Experiments

  1. Student should decide on a case study and formulate the problem statement.
  2. Conceptual Designing using ER Diagrams (Identifying entities, attributes, keys and relationships between entities, cardinalities, generalization, specialization etc.) Note: Student is required to submit a document by drawing ER Diagram to the Lab teacher.
  3. Converting ER Model to Relational Model (Represent entities and relationships in Tabular form, Represent attributes as columns, identifying keys) Note: Student is required to submit a document showing the database tables created from ER Model.
  4. Normalization -To remove the redundancies and anomalies in the above relational tables, Normalize up to Third Normal Form.
  5. Creation of Tables using SQL- Overview of using SQL tool, Data types in SQL, Creating Tables (along with Primary and Foreign keys), Altering Tables and Dropping Tables.
  6. Practicing DML commands- Insert, Select, Update, Delete.
  7. Practicing Queries using ANY, ALL, IN, EXISTS, NOT EXISTS, UNION, INTERSECT, CONSTRAINTS etc.
  8. Practicing Sub queries (Nested, Correlated) and Joins (Inner, Outer and Equi).
  9. Practice Queries using COUNT, SUM, AVG, MAX, MIN, GROUP BY, HAVING, VIEWS Creation and Dropping.
  10. Practicing on Triggers - creation of trigger, Insertion using trigger, Deletion using trigger, Updating using trigger.

Computer Networks Lab

153503P
Laboratory Subject • 1 Units
View PYQ Papers

Topics Part 1

  • Write a report that includes a diagram showing the topology, type of connection devices, and speed of the wired and wireless LAN in your organization. Also find out the MAC and IP addresses and the subnet mask of your computer.
  • Install and run a network diagnosis tool such as TCP dump or Wireshark. Start capturing packets on an active interface, open a browser and type the address of your favourite search engine. Wait till the page loads and stop capture. List out the type and number of each type of packets captured.
  • Write a program to create a server that listens to port 53 using stream sockets. Write a simple client program to connect to the server. Send a simple text message "Hello" from the client to the server and the server to the client and close the connection.
  • Write a program to create a chat server that listens to port 54 using stream sockets. Write a simple client program to connect to the server. Send multiple text messages from the client to the server and vice versa. When either party types "Bye", close the connection.
  • Write a program to create a server that listens to port 55 using stream sockets. Write a simple client program to connect to the server. The client should request for a text file and the server should return the file before terminating the connection.
  • Write a program to create a server that listens to port 56 using stream sockets. Write a simple client program to connect to the server. Run multiple clients that request the server for binary files. The server should service each client one after the other before terminating the connection
  • Write a program to create a server that listens to port 57 using stream sockets. Write a simple client program to connect to the server. Run multiple clients that request the server for text files. The server should service all clients concurrently.
  • Write a program to create a server that listens to port 59 using datagram sockets. Write a simple client program that requests the server for a binary file. The server should service multiple clients concurrently and send the requested files in response.
  • Creation of sample network topologies using CISCO packet tracer.
  • Creation of a subnet, assignment of addresses and communication within and outside the subnet.
  • Error Detection using CRC (Python/Java): Implement the Cyclic Redundancy Check (CRC) algorithm for error detection in data transmission.
  • Hamming Code for Error Correction (Python/Java): Implement the Hamming Code algorithm to detect and correct single-bit errors in transmitted data.
  • Sliding Window Protocol (Python/Java): Simulate Stop-and-Wait and Go-Back-N ARQ protocols to demonstrate flow control in a network.
  • Selective Repeat ARQ (Python/Java): Implement the Selective Repeat ARQ protocol for reliable data transmission.
  • CSMA/CD and CSMA/CA Simulation (Python/Java): Simulate Carrier Sense Multiple Access with Collision Detection (CSMA/CD) and Collision Avoidance (CSMA/CA).
  • IPv4 and IPv6 Addressing (Python/Java): Implement a program to validate and classify IP addresses as IPv4 or IPv6.
  • ARP and RARP Implementation (Python/Java): Simulate Address Resolution Protocol (ARP) and Reverse Address Resolution Protocol (RARP).
  • BOOTP and DHCP Simulation (Python/Java): Implement the BOOTP and DHCP mechanisms for dynamic IP address allocation.
  • Routing Algorithms (Python/Java): Implement the Distance Vector Routing (DVR) and Link State Routing (LSR) algorithms.
  • TCP and UDP Simulation (Python/Java): Implement a client-server model to demonstrate TCP and UDP socket programming.
  • Congestion Control using Leaky Bucket Algorithm (Python/Java): Simulate the Leaky Bucket algorithm for congestion control.
  • Congestion Control using Token Bucket Algorithm (Python/Java): Implement the Token Bucket algorithm to regulate network traffic.
  • FTP and HTTP Simulation (Python/Java): Implement a program to simulate FTP file transfer and send HTTP GET/POST requests.
  • DNS Query Resolution (Python/Java): Write a program to perform DNS resolution and retrieve IP addresses for given domain names.
  • Email Client Simulation (Python/Java): Implement a basic email client that can send and receive messages using SMTP and POP3 protocols.

Prescribed Experiments

  1. Write a report that includes a diagram showing the topology, type of connection devices, and speed of the wired and wireless LAN in your organization. Also find out the MAC and IP addresses and the subnet mask of your computer.
  2. Install and run a network diagnosis tool such as TCP dump or Wireshark. Start capturing packets on an active interface, open a browser and type the address of your favourite search engine. Wait till the page loads and stop capture. List out the type and number of each type of packets captured.
  3. Write a program to create a server that listens to port 53 using stream sockets. Write a simple client program to connect to the server. Send a simple text message "Hello" from the client to the server and the server to the client and close the connection.
  4. Write a program to create a chat server that listens to port 54 using stream sockets. Write a simple client program to connect to the server. Send multiple text messages from the client to the server and vice versa. When either party types "Bye", close the connection.
  5. Write a program to create a server that listens to port 55 using stream sockets. Write a simple client program to connect to the server. The client should request for a text file and the server should return the file before terminating the connection.
  6. Write a program to create a server that listens to port 56 using stream sockets. Write a simple client program to connect to the server. Run multiple clients that request the server for binary files. The server should service each client one after the other before terminating the connection
  7. Write a program to create a server that listens to port 57 using stream sockets. Write a simple client program to connect to the server. Run multiple clients that request the server for text files. The server should service all clients concurrently.
  8. Write a program to create a server that listens to port 59 using datagram sockets. Write a simple client program that requests the server for a binary file. The server should service multiple clients concurrently and send the requested files in response.
  9. Creation of sample network topologies using CISCO packet tracer.
  10. Creation of a subnet, assignment of addresses and communication within and outside the subnet.
  11. Error Detection using CRC (Python/Java): Implement the Cyclic Redundancy Check (CRC) algorithm for error detection in data transmission.
  12. Hamming Code for Error Correction (Python/Java): Implement the Hamming Code algorithm to detect and correct single-bit errors in transmitted data.
  13. Sliding Window Protocol (Python/Java): Simulate Stop-and-Wait and Go-Back-N ARQ protocols to demonstrate flow control in a network.
  14. Selective Repeat ARQ (Python/Java): Implement the Selective Repeat ARQ protocol for reliable data transmission.
  15. CSMA/CD and CSMA/CA Simulation (Python/Java): Simulate Carrier Sense Multiple Access with Collision Detection (CSMA/CD) and Collision Avoidance (CSMA/CA).
  16. IPv4 and IPv6 Addressing (Python/Java): Implement a program to validate and classify IP addresses as IPv4 or IPv6.
  17. ARP and RARP Implementation (Python/Java): Simulate Address Resolution Protocol (ARP) and Reverse Address Resolution Protocol (RARP).
  18. BOOTP and DHCP Simulation (Python/Java): Implement the BOOTP and DHCP mechanisms for dynamic IP address allocation.
  19. Routing Algorithms (Python/Java): Implement the Distance Vector Routing (DVR) and Link State Routing (LSR) algorithms.
  20. TCP and UDP Simulation (Python/Java): Implement a client-server model to demonstrate TCP and UDP socket programming.
  21. Congestion Control using Leaky Bucket Algorithm (Python/Java): Simulate the Leaky Bucket algorithm for congestion control.
  22. Congestion Control using Token Bucket Algorithm (Python/Java): Implement the Token Bucket algorithm to regulate network traffic.
  23. FTP and HTTP Simulation (Python/Java): Implement a program to simulate FTP file transfer and send HTTP GET/POST requests.
  24. DNS Query Resolution (Python/Java): Write a program to perform DNS resolution and retrieve IP addresses for given domain names.
  25. Email Client Simulation (Python/Java): Implement a basic email client that can send and receive messages using SMTP and POP3 protocols.