Special Courses

Special Courses

Fundamentals of Network Programming
Course Description

This course provides a comprehensive introduction to network programming, covering essential concepts such as IP, TCP, UDP, DNS, and HTTP. Students will learn to write socket-based applications for client-server communication, implement basic protocols, and simulate network behavior. The course also includes practical exercises using tools to inspect, debug, and secure network traffic.

Objectives of this course

By the end of this course, students will be able to understand core networking concepts (IP, TCP, UDP, DNS, HTTP), write socket-based applications for client-server communication, implement basic protocols and simulate network behavior,use tools to inspect, debug, and secure network traffic

Course Details
Course Code sop-net-001
Course Duration 12 weeks
Cost USD 100 (Free for the First batch)
Commitment 10 - 12 hrs./week
Tools Needed A stable internet connection for streaming videos is needed. (a Device [Phone, Tablet, or PC])
Prerequisite Course None
Weighted grade distribution - Passing Grade:
- Assignments:
- Final Examination:
Batches
Batch Start Date End Date
I March 16, 2026 June 14, 2026
Course Outline
Week Topics Assessment
Week 1 (Module 1)
Networking Basics & OSI Model
  • What is a computer network?
  • Types of networks (LAN, WAN, Internet)
  • OSI vs TCP/IP model
  • IP addresses, ports, and protocols
  • Introduction to Python’s socket library
Exercise: Identify open ports using nmap or a simple port scanner in Python
Week 2 (Module 2)
Socket Programming Fundamentals
  • TCP vs UDP
  • The socket lifecycle (bind, listen, accept, connect, send/recv)
  • Writing a TCP echo server/client
  • Handling exceptions and timeouts
Lab: Build a TCP echo server and a command-line client in Python
Week 3 (Module 3)
UDP and Multicast Communication
  • Connectionless communication with UDP
  • Datagram sockets
  • Broadcasting and multicasting
  • Use cases (e.g., video streaming, games)
Lab: Create a simple chat system using UDP
Week 4 (Module 4)
Threading and Concurrent Servers
  • Blocking vs non-blocking sockets
  • Threading for handling multiple clients
  • Introduction to select and asyncio for scalable I/O
Project: Build a multi-client TCP chat server with threading
Week 5 (Module 5)
Protocols and Application Layer
  • DNS, HTTP, FTP, SMTP basics
  • Parsing and building custom protocols
  • HTTP request/response format
  • Using http.client, urllib, and requests in Python
Exercise: Write a simple HTTP GET request handler (client and server)
Week 6 (Module 6)
Exercise: Write a simple HTTP GET request handler (client and server)
  • RESTful APIs over HTTP
  • Using requests and http.server
  • JSON data transfer
  • API rate limiting and headers
Mini-project: Consume a public API (e.g., weather or GitHub) and build a data display tool
Week 7 (Module 7)
Network Debugging & Tools
  • Analyzing traffic with Wireshark
  • Inspecting headers, ports, and payloads
  • Using netstat, ping, traceroute, nslookup
  • Intro to tcpdump and basic packet capture
Lab: Capture and analyze TCP handshake with Wireshark
Week 8 (Module 8)
Security & Encryption Basics
  • TLS/SSL overview
  • Secure sockets in Python (ssl module)
  • Authentication and certificates
  • Common vulnerabilities (MITM, DNS poisoning, spoofing)
Project: Secure a chat or HTTP server using SSL sockets
Week 9 (Module 9)
Asynchronous & Non-Blocking Programming
  • select, poll, and epoll
  • asyncio for modern async I/O in Python
  • Event loops and coroutines
  • Building lightweight network servers
Assignment: Convert a threaded server to asyncio
Weeks 10 - 12 (Module 10)
Final Capstone Project
Students choose and build a complete network application with documentation
    Exercise:
  • Multiplayer game server
  • File transfer application
  • DNS resolver
  • Encrypted peer-to-peer messenger
  • HTTP microservice + custom protocol
Deliverables:
  • Source code on GitHub
  • README + architecture diagram
  • Live demo (if applicable)
Tools & Technologies Recommended Resources
  • Languages: Python (primary), with C/Java optional
  • Libraries: socket, threading, asyncio, requests, ssl
  • Tools: Wireshark, netcat, nmap, curl, Postman, tcpdump
  • Computer Networking: A Top-Down Approach by Kurose & Ross
  • Foundations of Python Network Programming by John Goerzen
  • Python docs: socket, asyncio, ssl, http.server
Network Programming with Python
Course Description

This course provides a comprehensive introduction to network programming using Python. It covers essential concepts such as IP, TCP, UDP, DNS, and HTTP, and teaches students how to build network applications using Python's socket, asyncio, and ssl modules. Students will learn to create client-server architectures, work with RESTful APIs, and develop secure and concurrent network programs.

Objectives of this course

By the end of the course, students will understand the fundamentals of computer networks and protocols, use Python's socket, asyncio, and ssl modules to build network applications, build client-server architectures using TCP and UDP, work with RESTful APIs and basic HTTP communication , use network debugging tools like Wireshark and netstat, develop secure and concurrent network programs

Course Details
Course Code sop-net-002
Course Duration 10 weeks
Cost USD 150
Commitment 10 - 12 hrs./week
Tools Needed A stable internet connection for streaming videos is needed. (a Device [Phone, Tablet, or PC])
Prerequisite Course Python Fundamentals - sop-webfb-101
Weighted grade distribution - Passing Grade:
- Assignments:
- Final Examination:
Batches
Batch Start Date End Date
I March 16, 2026 May 31, 2026
Course Outline
Week Topics Assessment
Week 1
Introduction to Networking and Python Setup
  • Overview of computer networks (TCP/IP model, ports, IP addresses)
  • OSI model basics
  • Intro to Python for networking
  • Installing tools: socket, netcat, Wireshark, ping, traceroute
Lab: Use Python to resolve hostnames and get local IP addresses
Mini-project: Build a simple "port scanner" script
Week 2
TCP Client-Server Programming with socket
  • TCP vs UDP: theory and practical implications
  • Creating socket objects
  • Writing a basic TCP server and client
  • Data encoding/decoding (bytes vs strings)
Lab: Build an interactive TCP echo server/client
Week 3
UDP Communication
  • Datagram sockets with socket.SOCK_DGRAM
  • Sending and receiving messages over UDP
  • Connectionless communication
  • Broadcast and multicast basics
Lab: Create a simple UDP-based chat or notification system
Week 4
Threaded and Concurrent Servers
  • Blocking vs non-blocking sockets
  • Using threading.Thread for handling multiple clients
  • Proper connection handling and cleanup
  • Thread-safe communication
Project: Build a multi-client TCP chat server
Week 5
Async Network Programming with asyncio
  • Event loops and coroutines
  • Using asyncio.start_server and asyncio.open_connection
  • Comparison: asyncio vs threading
  • Exception handling in async code
Lab: Rebuild previous chat server using asyncio
Week 6
Working with HTTP and REST APIs
  • HTTP protocol fundamentals
  • Sending HTTP requests with requests
  • Handling headers, status codes, and JSON
  • Building a simple HTTP server using http.server module
Project: API consumer tool (e.g., weather app or GitHub search)
Week 7
Secure Sockets and TLS with ssl
  • Introduction to TLS/SSL
  • Encrypting socket communication with ssl.wrap_socket()
  • Certificate basics (self-signed)
  • Secure HTTP requests with requests
Lab: Secure the chat server with TLS (server-side encryption)
Week 8
Working with Files and Data Transfer
  • Binary file transmission (send/recv chunks)
  • File metadata handling
  • Resume interrupted file transfers (intro)
  • Basic file server
Project: File transfer application with client-server model
Week 9
Debugging, Packet Sniffing, and Testing
  • Using Wireshark to analyze traffic
  • netstat, ss, tcpdump, and telnet
  • Unit testing sockets with mocks
  • Logging and monitoring client/server status
Lab: Analyze a TCP handshake and HTTP request using Wireshark
Week 10
Capstone Project
Build a full-featured network application using Python, incorporating:
  • Multi-client or concurrent support
  • Security (SSL or authentication)
  • Error handling and logging
  • API or file transfer capabilities
Example Projects:
  • Secure multi-user chat server
  • Custom file synchronization tool
  • Remote command execution system
  • Lightweight REST API client/server over sockets
Tools & Technologies Recommended Resources
  • Core: socket, threading, asyncio, ssl, http.server, requests
  • Debugging: Wireshark, netstat, curl, telnet, nmap
  • Optional: argparse, logging, json
  • Foundations of Python Network Programming by John Goerzen
  • Python Docs: socket, asyncio, ssl
  • PacketLife.net Cheat Sheets
  • Wireshark Documentation & Tutorials
Data Analysis with Python
Course Description

This course provides a comprehensive introduction to data analysis using Python. It covers essential libraries such as NumPy, Pandas, and Matplotlib, and teaches students how to manipulate, clean, and analyze data. Students will learn to work with common file formats (CSV, Excel, JSON), explore datasets using summary statistics and visualization, and generate reproducible analysis pipelines in Jupyter Notebooks.

Objectives of this course

By the end of this course, students will understand how to manipulate, clean, and analyze data using Python, work with common file formats (CSV, Excel, JSON), explore datasets using summary statistics and visualization, generate reproducible analysis pipelines in Jupyter Notebooks, build basic reports and dashboards for data storytelling

Course Details
Course Code sop-webfb-104
Course Duration 10 weeks
Cost USD 200
Commitment 15 - 18 hrs./week
Tools Needed A stable internet connection for streaming videos is needed. (a Device [Phone, Tablet, or PC])
Prerequisite Course Python for data science - sop-AI-101
Weighted grade distribution - Passing Grade:
- Assignments:
- Final Examination:
Batches
Batch Start Date End Date
I November 24, 2025 March 1, 2026
Course Outline
Week Topics Assessment
Week 1
Introduction to Python and Jupyter
  • Installing Python and Jupyter (via Anaconda or pip)
  • Python syntax refresher: variables, data types, lists, dicts
  • Functions, conditionals, loops
  • Introduction to Jupyter Notebooks and Markdown
  • print(), input(), basic file I/O
Exercise: Read and summarize a text or CSV file using basic Python
Week 2
Numpy for Numerical Computing
  • What is numpy and why use it?
  • Arrays, array creation, and indexing
  • Vectorized operations and broadcasting
  • Basic statistics: mean, std, median, etc.
Lab: Generate synthetic data and compute summary statistics
Week 3
DataFrames and Series with pandas
  • Introduction to pandas
  • Series vs DataFrame
  • Reading and writing CSV/Excel/JSON
  • Selecting, filtering, and sorting data
  • Data types and conversions
Project: Analyze and clean a small dataset
(e.g., temperature or student records)
Week 4
Data Cleaning and Preprocessing
  • Handling missing data (isnull, fillna, dropna)
  • Removing duplicates
  • String manipulation (str.lower(), split, replace)
  • Datetime conversion and indexing
  • Column creation and renaming
Assignment: Clean and reformat a messy dataset
(e.g., survey or sales data)
Week 5
Data Aggregation and Grouping
  • Aggregating with groupby()
  • Pivot tables and cross-tabulations
  • Binning and categorizing data
  • Multi-indexing and hierarchical data
Lab: Analyze sales or customer behavior with grouping and aggregation
Week 6
Data Visualization with Matplotlib and Seaborn
  • Line, bar, scatter, and histogram plots
  • Customizing titles, labels, and legends
  • Creating multiple subplots
  • Heatmaps, boxplots, and categorical plots with seaborn
Project: Visual storytelling using charts
(e.g., visualize air quality, sports stats)
Week 7
Exploratory Data Analysis (EDA)
  • What is EDA and why is it important?
  • Descriptive statistics (describe(), info())
  • Correlation and covariance
  • Distribution analysis
  • Combining EDA with visualizations
Assignment: Perform a full EDA on a dataset of your choice
Week 8
Working with Real-World Data
  • Importing data from APIs using requests
  • Reading web data (CSV from URL)
  • Merging and joining multiple datasets
  • Exporting cleaned data to CSV or Excel
  • Building a simple report in Jupyter
Mini-Project: Real-world dataset analysis
(e.g., COVID-19, stock prices)
Optional Weeks (9–10)
Week 9
Time Series Analysis (Optional)
  • Datetime indexing in pandas
  • Resampling and frequency conversion
  • Rolling averages and trends
  • Visualizing time series data
Project: Analyze time-based data
(e.g., temperature or sales over time)
Week 10
Basic Dashboarding with Plotly or Streamlit (Optional)
  • Intro to interactive visualizations
  • Creating dashboards using Plotly or Streamlit
  • Exporting charts or apps
Final Capstone Project:
Build an end-to-end data analysis report or mini-dashboard
Final Capstone Project (Mandatory) Students choose a real-world dataset and:
  • Clean and analyze it using pandas
  • Create summary statistics and visualizations
  • Write a report explaining key findings
  • Deliver a Jupyter Notebook or a published dashboard
Example topics:
  • Traffic or accident data analysis
  • Product reviews exploration
  • Personal finance or budget tracking
  • YouTube/Spotify listening habits
Tools & Technologies Recommended Resources
  • Python 3
  • pandas, numpy, matplotlib, seaborn
  • Jupyter Notebook / Google Colab
  • Optional: plotly, requests, openpyxl, streamlit
  • Python for Data Analysis by Wes McKinney
  • pandas Documentation
  • Seaborn Tutorials
  • Kaggle Datasets for practice
  • Google Colab or Binder for cloud-based notebooks