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

Sort by
Subject
Level

Full Stack Software Developer Portfolio: John Smith

Classified in Computers

Written on in English with a size of 2.77 KB

John Smith

Software Developer

[email protected] | (555) 123-4567 | linkedin.com/in/johnsmith | github.com/johnsmith

Professional Summary

Results-driven Full Stack Developer with experience in both front-end and back-end technologies. Skilled in working with relational and non-relational databases. Strong team player with excellent collaboration skills and a commitment to delivering high-quality code. Passionate about solving complex problems and implementing efficient software solutions.

Education

Bachelor of Science in Computer Science
University of Technology | 2016-2020

Professional Experience

Full Stack Developer | Tech Solutions Inc.

Jan 2022 - Present

  • Developed and maintained web applications using React.js for front-end and Node.js for back-
... Continue reading "Full Stack Software Developer Portfolio: John Smith" »

Linear Algebra: Row Space, Null Space, Determinants, and Gram-Schmidt

Posted by Anonymous and classified in Computers

Written on in English with a size of 2.02 MB

Finding the Basis of a Row Space

The easiest way to find the basis of a row space is to reduce matrix A to Reduced Row Echelon Form (RREF). The nonzero row vectors of R (which contain the leading 1s, or pivots) form a basis for row(A).

Finding the Basis of the Kernel

The following four steps outline the most effective method for finding a basis for null(A):

  1. Reduce A to RREF (R): Find the Reduced Row Echelon Form (R) of the matrix A.
  2. Solve the Homogeneous System: Use the RREF, R, to solve the equivalent homogeneous system Rx=0.
  3. Identify and Parameterize Variables:
    • Identify the leading variables (those corresponding to columns containing a leading 1 or pivot in the RREF) and the free variables.
    • Solve for the leading variables in terms of the free variables.
... Continue reading "Linear Algebra: Row Space, Null Space, Determinants, and Gram-Schmidt" »

Bisection and Regula Falsi Methods in C Programming

Posted by Anonymous and classified in Computers

Written on in English with a size of 2.07 KB

Bisection Method Implementation

#include <stdio.h>
#include <math.h>

#define f(x) (cos(x) - (x * exp(x)))

int main() {
    float x0, x1, x2, f0, f1, f2, e;
    int step = 1;

    /* Inputs */
    up:
    printf("\nEnter two initial guesses:\n");
    scanf("%f%f", &x0, &x1);
    printf("Enter tolerable error:\n");
    scanf("%f", &e);

    f0 = f(x0);
    f1 = f(x1);

    if (f0 * f1 > 0.0) {
        printf("Incorrect Initial Guesses. Try again.\n");
        goto up;
    }

    printf("\nStep\t\tx0\t\tx1\t\tx2\t\tf(x2)\n");
    do {
        x2 = (x0 + x1) / 2;
        f2 = f(x2);
        printf("%d\t\t%f\t%f\t%f\t%f\n", step, x0, x1, x2, f2);

        if (f0 * f2 < 0) {
            x1 = x2;
            f1 = f2;
... Continue reading "Bisection and Regula Falsi Methods in C Programming" »

Computer Architecture and Organization Fundamentals

Posted by Anonymous and classified in Computers

Written on in English with a size of 94.38 KB

Computer Architecture vs. Computer Organization

Computer ArchitectureComputer Organization
Deals with functional behaviorDeals with structural relationships
Visible to programmer (instruction set, addressing modes)Invisible to programmer (control signals, memory technology)
Describes WHAT the system doesDescribes HOW it is implemented
Example: x86 architectureExample: Intel Core i7 vs. Pentium

IEEE 754 Floating Point Bias

  • Single Precision (32-bit): Bias = 127 (27 - 1)
  • Double Precision (64-bit): Bias = 1023 (210 - 1)

Why Bias is Used

Bias allows storing both positive and negative exponents using only unsigned integers. Instead of storing the actual exponent, we store (exponent + bias), which is always positive. This simplifies the comparison of floating-... Continue reading "Computer Architecture and Organization Fundamentals" »

Network Fundamentals: Protocols, Addressing, Security

Posted by Anonymous and classified in Computers

Written on in English with a size of 17.78 KB

TCP Reliable Transfer and Connection Management

TCP Reliable Transfer

  1. Sequence Numbers

    • Each byte of data is assigned a sequence number. This number is used by the receiver to correctly order the data and ensure there are no missing segments.
  2. Acknowledgements

    • The receiver sends back an ACK to the sender for the sequence number of the next expected byte. If the sender receives the ACK before its timer expires, it knows everything up to that byte was received correctly.
  3. Retransmission

    • If the ACK is not received before the timer expires, the sender retransmits the data.

TCP Connection Management

Managing a TCP connection begins with a three-way handshake, which establishes a connection before any actual data is transmitted.

Steps in Three-Way Handshake

  1. SYN
    • The
... Continue reading "Network Fundamentals: Protocols, Addressing, Security" »

Synchronization and CPU Scheduling in Operating Systems

Posted by Anonymous and classified in Computers

Written on in English with a size of 3.87 KB

Chapter 5: Synchronization

Critical Section Conditions

  • Mutual Exclusion: Only one process may be in the critical section at a time.
  • Progress: If the critical section is empty, some waiting process can enter.
  • Bounded Waiting: No starvation; each process waits a bounded number of turns.

Atomic Instructions

  • Test-and-Set: old = *b; *b = TRUE; return old
  • Swap: temp = *a; *a = *b; *b = temp

Spinlocks

  • TAS:
    bool m = false;
    lock() { while (TestAndSet(&m)); }
    unlock() { m = false; }
    
  • Swap:
    bool m = false;
    lock() { bool key = true; while (key) Swap(&m, &key); }
    unlock() { m = false; }
    

Semaphores

  • wait(S): S.val--; if S.val < 0 block
  • signal(S): S.val++; if S.val <= 0 wake one
  • Binary semaphore as mutex: init = 1; lock = wait; unlock = signal

Peterson's

... Continue reading "Synchronization and CPU Scheduling in Operating Systems" »

Essential Linux and Operating Systems Concepts Explained

Posted by Anonymous and classified in Computers

Written on in English with a size of 3.25 KB

Linux and Operating Systems Fundamentals

  • 1. CD-ROM Directory: The CD-ROM contains a directory called /fortycdrom/data.
  • 2. Permissions: -rwxr-xr applies to everyone and members.
  • 3. Process Control: ID 42000 — kill -9.
  • 4. Modern Operating Systems: Applies to all.
  • 5. Child Process: Identified by the process ID.
  • 6. 11-Bit Processor: Maximum value is 2047.
  • 7. Block Special File: Represents a hard disk drive.
  • 8. POSIX Compliant: There are different standards.
  • 9. Code Execution: The following code crashes.
  • 10. Bash Command: alias bubble.
  • 11. Linux Shell: pwd prints the current working directory.
  • 12. Shell Commands: chown is used for ownership.
  • 13. Virtual Machine: Utilizes CPU and memory resources.
  • 14. File Names: ls -al lists files including their names.
  • 15.
... Continue reading "Essential Linux and Operating Systems Concepts Explained" »

Implementing Dijkstra's Algorithm in Java

Classified in Computers

Written on in English with a size of 2.71 KB

This implementation demonstrates how to find the shortest path from a source node to all other nodes in a graph using Dijkstra's Algorithm.

Core Components

  • minDist: Identifies the node with the minimum distance not yet included in the shortest path tree.
  • print: Displays the calculated shortest distances from the source.
  • dijkstra: The primary logic that updates distances based on the adjacency matrix.
import java.util.*;

public class Main {
    static int V;

    // Find the node with the minimum distance not yet in the shortest path tree
    int minDist(int dist[], Boolean boolset[]) {
        int min = Integer.MAX_VALUE, min_value = -1;
        for (int i = 0; i < V; i++) {
            if (!boolset[i] && dist[i] <= min) {
... Continue reading "Implementing Dijkstra's Algorithm in Java" »

Digital Electronics Concepts: Flip-Flops, Registers, and Converters

Posted by Anonymous and classified in Computers

Written on in English with a size of 1.38 MB

1. JK Flip-Flop Operation and Truth Table

Logic Diagram:

wBjcvJtk2sNIQAAAABJRU5ErkJggg==

EAjrov4gZdUr+SxbQQf9fGi1dW7+IBXTQfxEz6pT8lyzwf4VinCuWPVOZAAAAAElFTkSuQmCC

Working Principle

The JK flip-flop is an enhanced version of the gated SR flip-flop. It incorporates clock input circuitry to eliminate the invalid output condition that occurs when both S and R inputs are logic level "1".

Because of the added clock input, the JK flip-flop offers four distinct input combinations:

  • Logic "1" (Set)
  • Logic "0" (Reset)
  • No Change
  • Toggle

The S and R inputs of the preceding SR bistable are replaced by J and K inputs, named after its inventor, Jack Kilby. Thus, J = S and K = R.

The two 2-input AND gates in the gated SR bistable are replaced by two 3-input NAND gates. The third input of each NAND gate connects to the outputs Q and $\bar{Q}$. This cross-coupling allows the... Continue reading "Digital Electronics Concepts: Flip-Flops, Registers, and Converters" »

Core Web Development Concepts: Languages, Protocols, and Frameworks

Posted by Anonymous and classified in Computers

Written on in English with a size of 332.62 KB

JavaScript: The Heart of Interactive Web Development

JavaScript is a powerful and widely used programming language mainly used for making websites interactive and dynamic. It works on the client-side, which means it runs inside the user's web browser. JavaScript allows web pages to respond to user actions like clicking buttons, typing in text boxes, hovering over images, and more. It works together with HTML (for structure) and CSS (for design) to build modern and user-friendly websites. It is easy to learn and used by almost every website today.

Apart from the client-side, JavaScript is also used on the server-side using platforms like Node.js, which allows building full web applications using JavaScript alone. It is a platform-independent language,... Continue reading "Core Web Development Concepts: Languages, Protocols, and Frameworks" »