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

Sort by
Subject
Level

Python Algorithms: Sorting, Searching, and Knapsack

Classified in Computers

Written on in English with a size of 3.72 KB

Selection Sort

The Selection Sort algorithm sorts an array by repeatedly finding the minimum element from the unsorted part and putting it at the beginning.

array = [45, 2, 23, 76, 7]

for i in range(0, len(array) - 1):
    smallest = array[i]
    pos = i
    for j in range(i + 1, len(array)):
        if array[j] < smallest:
            smallest = array[j]
            pos = j
    array[pos] = array[i]
    array[i] = smallest

print(array)

Insertion Sort

Insertion Sort is a simple sorting algorithm that builds the final sorted array one item at a time, which is much less efficient on large lists than more advanced algorithms.

array = [35, 7, 18, 30]

for i in range(1, len(array)):
    testPosition = i - 1
    while True:
        if testPosition
... Continue reading "Python Algorithms: Sorting, Searching, and Knapsack" »

Software Design Principles and Patterns

Classified in Computers

Written on in English with a size of 4.98 MB

Lecture 2: Dynamic Dispatch and Interfaces

  • Dynamic Dispatch: The process of selecting which implementation of a polymorphic operation to call at runtime.
  • Interface: Calling a method that is not in the interface will cause a compilation error.

Lecture 3: N/A

Lecture 4: Method Contracts, Exceptions, and Unit Testing

  • Method Contract: Should define pre/post conditions and exceptional behavior. The client is to blame if the precondition is not met, and the service is to blame if the postcondition is not met. Exceptional behavior specifies what the code will do if a precondition is violated.
  • Exception: Runtime exception (unchecked) and IO exception (checked). The IO exception must be caught; otherwise, the code won't compile.
  • Unit Test: Test boundary
... Continue reading "Software Design Principles and Patterns" »

Software Engineering: Inheritance, Cloud, and SDLC

Posted by Anonymous and classified in Computers

Written on in English with a size of 3.41 KB

Understanding Inheritance in OOP

In object-oriented programming, Inheritance is a mechanism where a new class (derived class) acquires the properties and behaviors (data members and member functions) of an existing class.

Types of Inheritance

  • Single Inheritance: In single inheritance, a single derived class is inherited from only one base class. It is the simplest form of inheritance.
  • Multiple Inheritance: Multiple inheritance occurs when a single derived class is inherited from more than one base class.
  • Hierarchical Inheritance: In this type, multiple derived classes are inherited from a single base class.
  • Multilevel Inheritance: In multilevel inheritance, a derived class is inherited from another derived class, creating a chain of inheritance.
  • Hybrid
... Continue reading "Software Engineering: Inheritance, Cloud, and SDLC" »

Neural Networks and Machine Learning Fundamentals

Classified in Computers

Written on in English with a size of 3.27 KB

What is a Neural Network?

A Neural Network is a component of Artificial Intelligence (AI) that mimics how the human brain works. It is used to process information, recognize patterns, and make decisions, similar to human cognition.

Core Structure and Function

  • Neural networks are computer systems modeled on the structure of the human brain. They consist of layers of nodes (neurons).

Layers of a Neural Network

  • Input Layer: Takes the input data.
  • Hidden Layers: Process the data using mathematical operations.
  • Output Layer: Gives the final result.

How Neural Networks Learn

Neural networks learn by identifying patterns in data through training.

How a Neural Network Works (Step-by-Step)

  1. Input: Data is given to the network through the input layer.
  2. Processing: Hidden
... Continue reading "Neural Networks and Machine Learning Fundamentals" »

NetApp SnapMirror Setup, Commands, and Scheduling

Classified in Computers

Written on in English with a size of 2.88 KB

SnapMirror (SM)

SnapMirror (SM) requires a license. It operates at the volume or qtree level, is used for disaster recovery (DR) and replication, and requires both a source and destination filer.

Synchronous SnapMirror

Synchronous SM replicates from the source to the destination nearly at the same time data is written to the source (saved to NVRAM).

Command Notes

All SnapMirror commands must be run on the destination filer, except snapmirror status, which can be run on either the source or destination.

Configuration Steps

  1. Enable SM on source & destination filer

    source-filer> options snapmirror.enable
    snapmirror.enable            on
    source-filer> options snapmirror.access
    snapmirror.access            legacy
    
  2. SnapMirror access

    Ensure the destination

... Continue reading "NetApp SnapMirror Setup, Commands, and Scheduling" »

C++ Priority Queue Implementation: Code & Explanation

Classified in Computers

Written on in English with a size of 3.58 KB

C++ Priority Queue Implementation

This document provides a C++ implementation of a priority queue using a heap data structure. The code includes the class definition, member functions, and supporting utilities.

Priority Queue Class Definition


#ifndef priority_queue_h_
#define priority_queue_h_

#include <iostream>
#include <vector>
#include <cassert>

template <class T>
class priority_queue {
private:
    std::vector<T> m_heap;

public:
    priority_queue() {}

    priority_queue(std::vector<T> const& values)
    {
        m_heap = values;
        for (int i = 0; i < m_heap.size(); i++){
            percolate_down(i);
            for (int j = i; j < m_heap.size(); j++){
                percolate_down(
... Continue reading "C++ Priority Queue Implementation: Code & Explanation" »

Web Mining: Usage, Content, and Structure Analysis

Classified in Computers

Written on in English with a size of 4.1 KB

Web Usage Mining

Web Usage Mining refers to the process of extracting useful insights and patterns from user activity on the web. It involves analyzing web log data (such as user clicks, page visits, and interactions) to understand user behavior, improve website performance, and enhance user experience. Web usage mining typically includes three key steps:

  • Data Collection: Gathering data from web logs, cookies, browser history, and other online interactions.
  • Preprocessing: Cleaning and structuring the data to eliminate irrelevant information and make it suitable for analysis.
  • Pattern Discovery and Analysis: Applying data mining techniques (e.g., clustering, association rule mining, and classification) to discover trends, user navigation paths, and
... Continue reading "Web Mining: Usage, Content, and Structure Analysis" »

SQL Database Design Examples for Common Systems

Posted by Anonymous and classified in Computers

Written on in English with a size of 3.62 KB

This document provides practical SQL Data Definition Language (DDL) examples for creating and modifying database schemas across various common applications. Each section details the necessary tables and their relationships, offering a clear foundation for building robust relational databases.

Library Management System Database

The following SQL DDL statements define the core tables for a library management system, enabling the tracking of books, members, and loan transactions.

Table Creation

CREATE TABLE Books (
    BookID INT PRIMARY KEY,
    Title VARCHAR(100) NOT NULL,
    Author VARCHAR(100) NOT NULL,
    ISBN VARCHAR(20) UNIQUE,
    PublishedYear INT CHECK (PublishedYear >= 1500 AND PublishedYear <= 2025)
);

CREATE TABLE Members (
... Continue reading "SQL Database Design Examples for Common Systems" »

Common Types of Computer Malware Explained

Posted by Anonymous and classified in Computers

Written on in English with a size of 6.04 KB

1. Boot Sector Virus

  • It is a type of virus which infects the master boot record (portion of the hard disk which helps to load the OS) or hard disks.
  • The infected code runs when the system is booted from an infected disk.
  • They infect at a BIOS level (BIOS checks hardware and loads the OS).
  • They use DOS commands (text-based commands used to perform tasks such as file management, disk management, and running programs) to spread to other floppy disks. Since floppy disks are rarely used now, the propagation of boot sector viruses has almost ended.
  • With the boot-sector safeguards in operating systems, boot-sector viruses can no longer infect computers.
  • This virus can infect a computer only during boot-up. Once the system has started and the OS is running,
... Continue reading "Common Types of Computer Malware Explained" »

Operating System Concepts: Loaders, Memory, Processes, Synchronization

Posted by Anonymous and classified in Computers

Written on in English with a size of 26.57 KB

Compile and Go Loaders

In this type of loader, the linker and loader instructions are read line by line, their machine code is obtained, and it is directly placed in the main memory at some known address. This means the assembler runs in one part of memory, and the assembled machine instructions and data are directly put into their assigned memory locations. After completion of the assembly process, the loader contains the instruction using which the location counter is set to the start of the newly assembled program. A typical example is WATFOR-77, a FORTRAN compiler which uses such a "load-and-go" scheme. This loading scheme is also called "assemble-and-go".

Advantages

  • Simplicity
  • Quick Testing
  • No Separate Linking
  • Immediate Feedback
  • Low Resource
... Continue reading "Operating System Concepts: Loaders, Memory, Processes, Synchronization" »