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

Sort by
Subject
Level

C# Design Patterns: Essential Reference for Developers

Posted by Anonymous and classified in Computers

Written on in English with a size of 12.41 KB

C# Design Patterns: Essential Reference

Creational Design Patterns

PatternWhen to UseKey Implementation
SingletonNeed exactly one instance globally accessible.private static Singleton _instance;
public static Singleton Instance => _instance ??= new Singleton();
FactoryCreate objects without specifying concrete classes.public static IProduct Create(string type) => type switch { "A" => new ProductA(), ... }
BuilderConstruct complex objects step-by-step.public class CarBuilder { ... public CarBuilder WithEngine(...) { ... } }
PrototypeClone existing objects instead of creating new ones.public interface IPrototype { IPrototype Clone(); }

Structural Design Patterns

PatternWhen to UseKey Implementation
AdapterMake incompatible interfaces work together.
... Continue reading "C# Design Patterns: Essential Reference for Developers" »

Array and String Algorithms: Core Problem Solutions

Classified in Computers

Written on in English with a size of 6.48 KB


Longest Substring Without Repeating Characters

This problem involves finding the length of the longest substring in a given string that does not contain any repeating characters. A common approach uses a sliding window technique with a Set to efficiently track unique characters.

Strategy:

  • Utilize a Set to store characters within the current window.
  • Iterate through the string with a right pointer, adding characters to the Set.
  • If a duplicate character is encountered, move the left pointer forward, removing characters from the Set, until the duplicate is no longer present.
  • At each step, update the maximum length found.

Java Implementation Snippet

class Solution {
    public int findLongestSubstringWithoutRepeatingCharacter(String str) {
        Set&
... Continue reading "Array and String Algorithms: Core Problem Solutions" »

Tensors and Variables in PyTorch and TensorFlow

Classified in Computers

Written on in English with a size of 2.4 KB

Tensors and Variables in PyTorch and TensorFlow

Here's a brief explanation of tensors and variables in the context of deep learning frameworks like PyTorch and TensorFlow:

Tensors

  • Definition: A tensor is a multi-dimensional array used to represent data (such as scalars, vectors, matrices, or higher-dimensional data).
  • Common Operations: Tensors can be manipulated with mathematical operations (addition, multiplication, etc.), reshaped, sliced, etc.

In PyTorch, tensors are the core data structure:

import torch
# Create a tensor
a = torch.tensor([[1, 2], [3, 4]])
# Basic operations
b = a + 2         # Adds 2 to each element
c = a * a         # Element-wise multiplication
d = a @ a         # Matrix multiplication

Output:

Tensor `b`: [[3, 4], [5, 6]]
Tensor
... Continue reading "Tensors and Variables in PyTorch and TensorFlow" »

Assembly Language Fundamentals: Registers, Operands, and Data Types

Posted by Anonymous and classified in Computers

Written on in English with a size of 4.73 KB

Assembly Language Fundamentals: Key Concepts and Definitions

1. Clock Frequency and Cycle Time

A clock that oscillates 1 million times per second (1 MHz) produces a clock cycle duration of $10^{-6}$ seconds (1 microsecond).

2. General-Purpose Registers (8-bit, 16-bit, and 32-bit Access)

The general-purpose registers that can be accessed in 8 bits, 16 bits, and 32 bits are: EAX, EBX, ECX, and EDX.

3. Purpose of EAX and ECX Registers

These registers serve specific roles in CPU operations:

  • EAX – Accumulator: Automatically used by multiplication and division instructions. It is often referred to as the extended accumulator register.
  • ECX – Loop Counter: The CPU automatically uses ECX as a counter for loop instructions.

4. Reserved Words and Identifiers

... Continue reading "Assembly Language Fundamentals: Registers, Operands, and Data Types" »

Creating and Managing Coach and Activity Tables in SQL

Classified in Computers

Written on in English with a size of 4.29 KB

1. Create Table Coach

CoachID INT PRIMARY KEY,

CoachName VARCHAR(20) NOT NULL,

Sports VARCHAR(15) NOT NULL,

DOJ DATE NOT NULL,

Gender CHAR(1) NOT NULL,

Salary INT NOT NULL


INSERT INTO Coach (CoachID, CoachName, Sports, DOJ, Gender, Salary)

VALUES

(1001, 'Mulund Gogoi', 'Boxing', '2004-09-01', 'M', 40000),

(1002, 'Arnab Duwara', 'Karate', '1999-10-01', 'M', 60000),

(1003, 'Nayan Bora', 'Arm Wrestling', '2005-02-28', 'M', 50000),

(1004, 'Devesh Hazarika', 'Basketball', '2010-05-05', 'M', 25000),

(1005, 'Chetan Sharma', 'Swimming', '2010-03-31', 'M', 25000),

(1006, 'Lakshmi Devi', 'Boxing', '2012-01-01', 'F', 22000);


3. Queries for Questions:

a) Display the Maximum and Minimum Salary of the Coaches

SELECT MAX(Salary) AS Max_Salary, MIN(Salary) AS Min_Salary

... Continue reading "Creating and Managing Coach and Activity Tables in SQL" »

Core Python for Data Analysis and Scientific Computing

Posted by Anonymous and classified in Computers

Written on in English with a size of 11.79 KB

Key Concepts in Data Science & Scientific Computing

Visualization Techniques

  • Overlapping Histograms: Use semi-transparent alpha parameter for comparison.

Data Structures & Algorithms

  • BFS Implementation: collections.deque is ideal for Breadth-First Search.
  • Grid Representation: Obstacles often represented by a value like 1.

Jupyter Notebook & Markdown

  • Markdown Headings: Use # prefix for headings in Jupyter Markdown cells.

Optimization & Least Squares

  • Normal Equations: Direct matrix inversion for Least Squares: β = (XᵀX)⁻¹Xᵀy.

Numerical Integration & Simulation

  • Orbit Simulation: Runge–Kutta 4th order method is a common integration technique.

Search Algorithms

  • Brute-Force Search: Often implemented using nested loops.

Python Ecosystem

... Continue reading "Core Python for Data Analysis and Scientific Computing" »

Core Concepts in Computer Architecture and Assembly

Posted by Anonymous and classified in Computers

Written on in English with a size of 3.56 KB

CPU Fundamentals and Timing

Clock Cycles and Frequency

A clock that oscillates 1 million times per second (1 MHz) produces a clock cycle of 1 microsecond (1 μs), which equals 10-6 seconds per cycle.

Instruction Execution Pipeline

The steps for executing a machine instruction are:

  1. Fetch the instruction.
  2. Decode the instruction.
  3. Fetch the operand (if any).
  4. Execute the instruction.
  5. Store the result or output.

Cache Memory Operations

Cache memory is a small, fast memory used to temporarily store frequently accessed data or instructions to speed up CPU operations.

  • A cache hit occurs when the CPU finds the required data in cache memory.
  • A cache miss occurs when the data is not found and must be fetched from main memory.

Assembly Language Basics

General-Purpose

... Continue reading "Core Concepts in Computer Architecture and Assembly" »

Essential Data Structure Operations and Java Implementations

Classified in Computers

Written on in English with a size of 3.95 KB

Inserting the First Element into a Tree Structure

Method to add the first element (root) to a Tree Structure:

public void insertFirstNode(Object item)
{
    // If the tree is empty, the new node becomes the root of the tree
    if (theRoot == null)
    {
        Node theNewNode = new Node(item);
        theRoot = theNewNode;
    }
}

Deleting an Element from a Linked List

Method to remove an element at a specific index in a Linked List:

public void remove(int index) {
    // Special case: removing at the head of the list
    if (index == 1) {
        head = head.getNext();
    } else {
        // Find the previous and current node
        setCurrent(index);
        prev.setNext(curr.getNext());
    }
    size = size - 1;
}

Steps for Inserting an Element

... Continue reading "Essential Data Structure Operations and Java Implementations" »

Cybersecurity Threat Landscape: Actors, Vectors, and Defenses

Posted by Anonymous and classified in Computers

Written on in English with a size of 9.76 KB

🔎 Threat Actors & Their Attack Paths

Who is attacking?

Threat Actors are the people or groups launching attacks. Mnemonic: “NO HIS” (Nation-State, Organized Crime, Hacktivists, Insiders, Script Kiddies).

Actor TypeMotivationTactics
Nation-State (APT Groups)Espionage, warfareAdvanced, persistent attacks
Organized CrimeFinancial gainRansomware, phishing
HacktivistsSocial justice, ideologyWebsite defacement, data leaks
InsidersRevenge, profitData theft, sabotage
Script KiddiesFun, fameLow-skill attacks using existing tools

How do threats reach systems?

Threat Vectors are the attack paths used by threat actors. Mnemonic: “MFWDVN” (Messages, Files, Websites, Devices, Vendors, Networks).

Attack PathExampleHow It Works
Message-BasedPhishing, smishingTrick
... Continue reading "Cybersecurity Threat Landscape: Actors, Vectors, and Defenses" »

C++ Concepts: Exception Handling to Friend Functions

Classified in Computers

Written on in English with a size of 3.16 KB

Exception Handling

#include <iostream>
#include <stdexcept>
using namespace std;
int main() {
    try {
        int numerator = 10;
        int denominator = 0;
        int res;
        if (denominator == 0) {
            throw runtime_error("Division by zero not allowed!");
        }
        res = numerator / denominator;
        cout << "Result after division: " << res << endl;
    }
    catch (const exception& e) {
        cout << "Exception " << e.what() << endl;
    }
    return 0;
}

Operator Overloading

#include <iostream>
using namespace std;
class Test {
private:
    int num;
public:
    Test(): num(8){}
    void operator ++() {
        num = num + 2;
    }
    void Print() {
... Continue reading "C++ Concepts: Exception Handling to Friend Functions" »