Notes, summaries, assignments, exams, and problems for Computers

Sort by
Subject
Level

Object-Oriented Programming & C++ Function Overloading

Classified in Computers

Written on in English with a size of 2.76 KB

Object-Oriented Programming (OOP) Fundamentals

Object-oriented programming (OOP) is a computer programming model that uses objects to represent and manipulate data.

OOP is well-suited for large, complex, and frequently updated software. Some of the main features of OOP include:

  • Classes: User-defined data types that serve as a blueprint for individual objects, attributes, and methods.
  • Objects: Instances of a class that are created with specific data.
  • Methods: Functions that objects can perform.
  • Attributes: Represent the state of an object.
  • Abstraction: Exposes only the essential information of an object to the user.
  • Polymorphism: Adds different meanings to a single component.
  • Inheritance: Allows a class to inherit the properties and methods of another
... Continue reading "Object-Oriented Programming & C++ Function Overloading" »

Part

Posted by Anonymous and classified in Computers

Written on in English with a size of 7.52 KB

Why protection is needed
In multitasking or multi‑user systems, two programs might try to use the same memory at the same time, which can corrupt data or crash the system.
Protection mechanisms isolate user programs from each other and from the OS, and also help detect bugs by checking whether each memory access and instruction obeys certain safety rules.
Overview of 80386 protection
80386 has four protection levels (0–3), where 0 is most trusted (OS kernel) and 3 is least trusted (user apps).
It uses two main mechanisms: segmentlevel protection and page‑level protection, and every memory access is checked against these rules before the actual memory cycle startsSegment‑level protection (idea)
Segment‑level protection has five parts:

... Continue reading "Part" »

Core Web Development Concepts: Node.js, Express, React, Redux, MongoDB

Classified in Computers

Written on in English with a size of 38.95 KB

Node.js Fundamentals

Understanding Node.js Modules

Modules in Node.js are reusable pieces of code that can be exported from one file and imported into another. Each file in Node.js is considered a module, operating within its own scope. Modules help organize code into separate files for better maintainability and reusability.

Types of Node.js Modules:

  1. Core Modules: Built-in modules provided by Node.js, pre-installed and ready to use.
  2. Local Modules: Custom modules created by developers for specific application logic.
  3. Third-party Modules: Modules installed via npm (Node Package Manager), extending Node.js functionality.

Key Built-in Node.js Core Modules

Core modules are essential, pre-installed components of Node.js. You can use them directly in your... Continue reading "Core Web Development Concepts: Node.js, Express, React, Redux, MongoDB" »

Understanding the C Programming Language: History and Structure

Posted by Anonymous and classified in Computers

Written on in English with a size of 12.78 KB

That's a great request! C is a foundational language in computer science. Here is a comprehensive look at C, covering its history, importance, structure, and fundamental components.
📜 History of C
C is a general-purpose, procedural computer programming language developed in the early 1970s by Dennis Ritchie at Bell Labs.
 

  • Origin: It was primarily developed to write the UNIX operating system, which was previously written in assembly language.
  • Predecessors: C evolved from earlier languages:
    • ALGOL 60 (1960)
    • CPL (Combined Programming Language, 1963)
    • BCPL (Basic CPL, 1967)
    • B (developed by Ken Thompson, 1970)
  • Standardization: The language was later standardized by the American National Standards Institute (ANSI) in 1989, resulting in ANSI C or C89. This
... Continue reading "Understanding the C Programming Language: History and Structure" »

Essential Network Commands for Troubleshooting and Analysis

Classified in Computers

Written on in English with a size of 3.41 KB

Essential Network Commands

  • tracert Utility

    • Displays the route taken to a destination.
    • Identifies where delays or packet loss occur in the network path.
    • Syntax: tracert <destination>
  • netstat Utility

    • Displays active TCP connections and other network statistics.
    • Useful for monitoring network connections.
    • Syntax: netstat
  • ipconfig Utility

    • Displays IP configuration information.
    • Can be used to release and renew IP addresses.
    • Syntax:
      • Display configuration: ipconfig
      • Release IP address: ipconfig /release
      • Renew IP address: ipconfig /renew
  • nslookup Utility

    • Queries DNS to obtain domain name or IP address mappings.
    • Syntax: nslookup <domain>
  • ping Utility

    • Tests connectivity between two devices by sending ICMP echo requests.
    • Syntax: ping <destination>
    • Common Options:
... Continue reading "Essential Network Commands for Troubleshooting and Analysis" »

C Implementations of Core Sorting Algorithms

Posted by Anonymous and classified in Computers

Written on in English with a size of 3 KB

Fundamental Sorting Algorithms in C

This document provides standard C implementations for three essential comparison-based sorting algorithms: Merge Sort, Quick Sort, and Heap Sort. These examples demonstrate the core logic and structure of each algorithm.

Merge Sort Implementation

Merge Sort is a stable, divide-and-conquer algorithm known for its consistent O(n log n) time complexity.

#include <stdio.h>

void merge(int a[], int l, int m, int r) {
    int i=l, j=m+1, k=0, b[100];
    while(i<=m && j<=r) {
        if(a[i]<a[j]) b[k++]=a[i++];
        else b[k++]=a[j++];
    }
    while(i<=m) b[k++]=a[i++];
    while(j<=r) b[k++]=a[j++];
    for(i=l,k=0;i<=r;i++,k++) a[i]=b[k];
}

void mergesort(int a[], int l, int
... Continue reading "C Implementations of Core Sorting Algorithms" »

Operating System Concepts: Memory, Deadlocks, and I/O

Posted by Anonymous and classified in Computers

Written on in English with a size of 16.84 KB

Memory Models in Operating Systems

  • Model A (MS-DOS):
    • Structure: Large user space at the top, small RAM at the bottom.
    • Performance: Fast execution, long boot time.
    • Protection: No protection.
  • Model B:
    • Structure: Small ROM at the top, small user space at the bottom.
    • Performance: Protected OS but slow (the entire OS must be read).
    • Flexibility: Not flexible.
  • Model C (Windows 11):
    • Structure: Select drivers at the top, large user space in the middle, RAM at the bottom.
    • Performance: Fast and secure (key drivers stored in ROM).

Memory Protection and Management

Core Memory Management Issues

  • Relocation Problem: Without memory abstraction, loading multiple programs causes incorrect memory addresses.
  • Base and Limit Registers:
    • Base: Value added to addresses to find
... Continue reading "Operating System Concepts: Memory, Deadlocks, and I/O" »

Mastering C Pointers, Structures, and Unions

Posted by Anonymous and classified in Computers

Written on in English with a size of 8.51 KB

Pointers in C

A pointer is a variable that stores the memory address of another variable. They are essential in C for dynamic memory allocation, array manipulation, and implementing complex data structures.

1. Declaring and Initializing Pointers

A pointer variable must be declared to hold the address of a specific data type.

A. Declaration

The asterisk (*) is the dereference operator or value-at-address operator. When declaring a pointer, it signifies that the variable is a pointer to a specific type.

data_type *pointer_name;
  • Example: int *ip; // Declares ip as a pointer that can hold the address of an integer variable.

B. Initialization

A pointer is initialized by assigning it the address of a variable using the address-of operator (&).

int num
... Continue reading "Mastering C Pointers, Structures, and Unions" »

Key Concepts: Node.js Modules, Express Routing, Body Parser

Classified in Computers

Written on in English with a size of 6.67 KB

Understanding Node.js Modules & Core Functionality

In Node.js, modules are fundamental. They represent reusable blocks of code that can be exported from one file and imported into another, promoting a modular and organized application structure. Node.js features a built-in module system, allowing developers to utilize core modules, create custom modules, or integrate third-party modules.

Core Modules in Node.js

Core modules are pre-packaged with Node.js, offering essential functionalities for common tasks like file system operations, HTTP request handling, and path manipulation.

Some commonly used core modules in Node.js are:

  • fs (File System): For interacting with the file system.
  • http (HTTP): For creating HTTP servers and clients.
  • path (Path)
... Continue reading "Key Concepts: Node.js Modules, Express Routing, Body Parser" »

IoT Protocols, Communication Models, & Deployment Strategies

Classified in Computers

Written on in English with a size of 1.64 MB

IoT Protocols

Link Layer Protocols

  • 802.3 Ethernet Standards

    A collection of wired Ethernet standards that provide data rates from 10 Mb/s to 40 gigabits per second. The shared medium in Ethernet can be a coaxial cable, twisted-pair wire, or optical fiber. This shared medium carries communication for all devices on the network.

  • 802.11 Wi-Fi Standards

    A collection of wireless Local Area Network (WLAN) communication standards.

Network/Internet Layer

  • Responsible for sending IP datagrams from the source network to the destination network.
  • Handles host addressing and packet routing based on IPv4 or IPv6.
  • Datagrams contain a source and destination address, which are used to route them from the source to the destination across multiple networks.
  • IPv4 uses 32-
... Continue reading "IoT Protocols, Communication Models, & Deployment Strategies" »