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

Sort by
Subject
Level

Ethereum Technical Deep Dive: Accounts, Smart Contracts, and PoS Consensus

Posted by Anonymous and classified in Computers

Written on in English with a size of 5.4 KB

This educational resource details Ethereum, a decentralized blockchain platform launched in 2015, focusing on its key features, accounts, smart contracts, transactions, and consensus mechanisms.

Ethereum Fundamentals

Ethereum is a blockchain platform that supports smart contracts—immutable computer programs executed on the Ethereum Virtual Machine (EVM). It uses Ether (ETH) as its native cryptocurrency to pay for transaction processing and smart contract execution.

Ethereum Accounts and Wallets

Account Types

  • Externally-Owned Accounts (EOAs): Controlled by private keys, used primarily for transactions like ETH transfers. Public keys are derived using Elliptic Curve Cryptography (ECC).
  • Contract Accounts: Controlled by smart contract code, deployed
... Continue reading "Ethereum Technical Deep Dive: Accounts, Smart Contracts, and PoS Consensus" »

Prolog Implementation of Traveling Salesperson Problem

Posted by Anonymous and classified in Computers

Written on in English with a size of 4.75 KB

This document presents two distinct approaches to solving the Traveling Salesperson Problem (TSP) using Prolog: an exact, brute-force method and a heuristic-based Nearest Neighbor algorithm. Both implementations are demonstrated with code and sample queries.

Exact Solver: Brute-Force TSP Algorithm

This section details a Prolog program that finds the optimal (shortest) path for the Traveling Salesperson Problem by generating and evaluating all possible tours. This method guarantees the optimal solution but can be computationally intensive for larger sets of cities.

Defining City Distances in Prolog

The distances between cities are defined using dist/3 facts. The predicate is made symmetric to ensure that dist(X,Y,D) implies dist(Y,X,D).

dist(a,b,
... Continue reading "Prolog Implementation of Traveling Salesperson Problem" »

LEGv8 Architecture and Assembly Language: Key Concepts

Classified in Computers

Written on in English with a size of 239.58 KB

Performance Metrics

  • Elapsed Time: Represents overall system performance. It is the total time taken to complete a task.
  • User CPU Time: Indicates CPU performance. It is the time the task actively runs on the CPU, excluding idle time.
  • CPU Time: The time the CPU spends executing instructions, either from the task or the operating system, excluding idle time.
  • Clock Speed: 1 MHz equals 1 million clock cycles per second. 1 GHz equals 1 billion clock cycles per second.
  • Response Time: Equivalent to execution time.
  • Throughput: Equivalent to bandwidth.
  • Performance Comparison: (PerfA) / (PerfB) = (ExecTimeB) / (ExecTimeA) = n

Impact of Processor Upgrades

  • Replacing a processor with a faster one decreases response time and increases throughput.
  • Adding an additional
... Continue reading "LEGv8 Architecture and Assembly Language: Key Concepts" »

Implementando 4x4 Matriz Transposta em Linguagem C

Classified in Computers

Written on in English with a size of 2.66 KB

Implementação da Transposição de Matriz 4x4 em C

Este programa em C demonstra como calcular e exibir a matriz transposta (B) de uma matriz quadrada de ordem 4 (A). A transposição é realizada trocando as linhas pelas colunas, ou seja, o elemento na posição A[i][j] é copiado para B[j][i].

Código Fonte em C para Transposição de Matriz

O código utiliza as bibliotecas padrão stdio.h para entrada/saída e conio.h (comum em ambientes legados) para controle de console.

#include <stdio.h>
#include <conio.h>

int main()
{
    int i, j, A[4][4], B[4][4];

    // 1. Entrada de Dados
    printf("Insira os elementos da Matriz A (4x4):\n");
    for(i = 0; i < 4; i++)
    {
        for(j = 0; j < 4; j++)
        {
            printf(
... Continue reading "Implementando 4x4 Matriz Transposta em Linguagem C" »

Java AWT GUI Development and OOP Inheritance

Posted by Anonymous and classified in Computers

Written on in English with a size of 7.41 KB

Building Java GUI Applications with AWT

Creating GUI applications using Abstract Window Toolkit (AWT) involves setting up a top-level container, adding components, arranging them with a Layout Manager, and making the container visible.

Steps to Create an AWT Application

1. Choose a Top-Level Container

The application needs a primary window to hold all components. The most common choice is the Frame class, which provides a title bar, borders, and window controls.

import java.awt.*;

// Class extends Frame to be the application window itself
public class AWTExample extends Frame {
    // Constructor and other methods
}

2. Initialize the Container (The Frame)

Inside the constructor, you set up the basic properties of the window:

  • Title: Set the window
... Continue reading "Java AWT GUI Development and OOP Inheritance" »

C++ & C Programming Solutions: Algorithms & Patterns

Classified in Computers

Written on in English with a size of 5.13 KB

1. Anagram Detection: C++ String Comparison

This C++ program determines if two input strings are anagrams of each other. It achieves this by converting both strings to lowercase, sorting their characters alphabetically, and then comparing the sorted strings. If they are identical, the original strings are considered anagrams.


#include<bits/stdc++.h>
using namespace std;

int main(){
    string s2,s1;
    cin>>s1>>s2;
    transform(s1.begin(),s1.end(),s1.begin(),::tolower);
    transform(s2.begin(),s2.end(),s2.begin(),::tolower);
    sort(s1.begin(),s1.end());
    sort(s2.begin(),s2.end());
    cout<< (s2==s1);
}

2. Array Subarray: C++ Sliding Window Minimum

This C++ program attempts to find the maximum of minimums within... Continue reading "C++ & C Programming Solutions: Algorithms & Patterns" »

Essential Linux Commands & System Administration Toolkit

Classified in Computers

Written on in English with a size of 7.26 KB

File Operations

  • ls — List files and directories (-a for hidden, -l for detailed)
  • cd [directory] — Change directory
  • mkdir [directory] — Create directory
  • cp [source] [destination] — Copy files/directories (-r for recursive)
  • mv [source] [destination] — Move or rename files/directories
  • rm [file] — Remove files (-r for recursive)
  • chmod [permissions] [file] — Change file permissions
  • chown [user]:[group] [file] — Change file ownership

System Monitoring

  • top / htop — Monitor system processes
  • ps — List running processes
  • df -h — Display disk space usage
  • free -m — Show memory usage

Networking Commands

  • ifconfig / ip a — Display network interfaces
  • ping [host] — Test network connectivity
  • netstat -tuln — List network connections
  • nmap [IP] — Scan
... Continue reading "Essential Linux Commands & System Administration Toolkit" »

Java Programming Essentials: Exceptions, Threads, Events, and Adapters

Posted by Anonymous and classified in Computers

Written on in English with a size of 7 KB

Core Java Programming Concepts Explained

Key Java Definitions

  • Exception: An event that disrupts the normal flow of a program's instructions.
  • Thread: A lightweight subprocess enabling multitasking within a program.
  • Event Handling: Implemented using listeners and event classes that respond to user actions.
  • Applet: A small Java program embedded in a web page for interactive content.
  • Remote Applets: Used to download and execute applets from a web server over the internet.
  • Applet Parameters: Passed to applets using <PARAM> tags in HTML, accessed via the getParameter() method.
  • Daemon Thread: Runs in the background for services like garbage collection and ends when main threads finish.
  • Thread Synchronization Advantages:
    • Prevents thread interference.
    • Ensures
... Continue reading "Java Programming Essentials: Exceptions, Threads, Events, and Adapters" »

Digital Hardware Design Reference: SystemVerilog and Architecture Fundamentals

Posted by Anonymous and classified in Computers

Written on in English with a size of 11.13 KB

SystemVerilog Fundamentals

  • logic Data Type: Supports 4 states (0, 1, X, Z).
  • Legacy Types: Replace old Verilog reg/wire with logic in SystemVerilog (SV).
  • Always Blocks

    • Combinational Logic: always_comb begin ... end
    • Sequential Logic: always_ff @(posedge clk or posedge rst) begin ... end
  • Assignments

    • Blocking Assignment (=): Sequential execution. Use in combinational logic (always_comb).
    • Non-blocking Assignment (<=): Parallel execution. Essential for sequential logic (always_ff).
  • Module Definition Example

    module m(input logic a, b, output logic y);
    assign y = a & b;
    endmodule
  • Concatenation: {a, b, c}
  • Replication: {8{in[7]}} (Repeats the specified bit 8 times, often used for sign extension).

Testbench Development

  • Instantiate the Device Under Test (DUT) inside
... Continue reading "Digital Hardware Design Reference: SystemVerilog and Architecture Fundamentals" »

Understanding Servlet Architecture for Java Web Apps

Posted by Anonymous and classified in Computers

Written on in English with a size of 3.4 KB

Understanding Servlet Architecture for Java Web Applications

Servlet architecture is a core component of Java EE (Enterprise Edition) used for building dynamic web applications. A Servlet is a Java class that runs on a web server and acts as a middle layer between client requests (typically from a browser) and server responses (usually from a database or application logic).

What is a Servlet?

A Servlet is a Java class used to handle HTTP requests and responses in web applications. It runs on a server, receives requests from a client (usually a browser), processes them (e.g., reads form data, interacts with a database), and sends back a dynamic response (like HTML or JSON).

Key Components of Servlet Architecture

  • Client (Browser): Sends an HTTP request
... Continue reading "Understanding Servlet Architecture for Java Web Apps" »