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

Sort by
Subject
Level

Fundamental Computer Science Concepts & Algorithms

Classified in Computers

Written on in English with a size of 1.64 MB

Arithmetic Progressions (AP)

Sum of terms = n[(1st term + last term)]/2

Geometric Progressions (GP)

Sum of terms = [1st term(1 - quotientn)/(1 - quotient)] (Swap positions of 1 & quotient if quotient > 1)

Logarithms

  • loga(x/y) = logax - logay
  • logaxn = nlogax
  • logab = (logcb/logca)

Permutations

For a set of n objects: The total number of permutations is n!

For arranging 'r' objects from a set of 'n' objects: The number of permutations is nPr = n! / (n-r)!. (e.g., ways to arrange 3 objects from a set of 5 is 5 * 4 * 3, since there are 5 possibilities for the first object, followed by 4, then 3.)

Combinations

For selecting 'r' objects from a set of 'n' objects: The number of combinations is nCr = n! / (r! * (n-r)!). (Divide by r! since there are r! ways

... Continue reading "Fundamental Computer Science Concepts & Algorithms" »

C Programming Concepts: Arrays, Functions, Structures, and Stacks

Posted by Anonymous and classified in Computers

Written on in English with a size of 300.77 KB

1. Arrays: Definition, Types, and Implementation

An array is a collection of elements of the same data type stored in contiguous memory locations. It is used to store multiple values in a single variable and can be accessed using index numbers. The indexing in an array starts from 0. Arrays help manage and process data efficiently, especially when dealing with large volumes of similar data.

Types of Arrays Based on Dimensions

  • One-Dimensional Array: It stores data in a linear list format.
  • Multi-Dimensional Array: It stores data in matrix form (like 2D, 3D arrays), which is useful in applications like image processing and tables.

Types of Arrays Based on Memory Allocation

  1. Static Array:

    The size of the array is fixed at compile-time. Memory is allocated

... Continue reading "C Programming Concepts: Arrays, Functions, Structures, and Stacks" »

Formulaire d'Inscription et Collecte de Données

Classified in Computers

Written on in English with a size of 518 bytes

Formulaire d'Identification et d'Inscription

Veuillez renseigner les informations suivantes pour votre dossier :

  • Nom :
  • Prénom :
  • CIN :
  • Tél :

Validation des Coordonnées Personnelles

Veuillez confirmer les informations ci-dessous :

  • Nom :
  • Prénom :
  • CIN :
  • Tél :

Java AWT Architecture: Components, Events & Listeners

Posted by Anonymous and classified in Computers

Written on in English with a size of 11.3 KB

Java AWT Architecture: Components and Events

The Abstract Window Toolkit (AWT) is Java's original platform-dependent windowing, graphics, and user interface (UI) toolkit.

AWT Class Hierarchy

🖼️ The core of the AWT is structured around a few key classes, all of which inherit from the Object class.

1. Component Class

The Component class is the root of all AWT UI elements. A Component is an object with a graphical representation that can be displayed on the screen and can interact with the user. Examples of components include buttons, text fields, and scrollbars.

  • Key capabilities:
    • Defining visual appearance and behavior
    • Handling events (user input)
    • Drawing and painting

2. Container Class

A Container is a special type of component that can hold and organize... Continue reading "Java AWT Architecture: Components, Events & Listeners" »

Mastering Program Flow: Conditional and Iteration Structures

Classified in Computers

Written on in English with a size of 4.62 KB

Conditional Control Structures

Conditional control structures dictate the flow of execution by allowing specific blocks of code to run only when certain conditions are met.

1. The If Statement

The If statement executes a block of code only if the specified condition evaluates to true. Otherwise, the block is skipped entirely.

Syntax:

if (condition) {
    // statements (If Block)
}
// other statements

Note: A flow chart typically illustrates the execution path based on the condition.

2. The If-Else Statement

If the condition is true, the If block is executed. If the condition is false, the alternative Else block is executed.

Syntax:

if (condition) {
    // statements (If Block)
} else {
    // statements (Else Block)
}

3. The Else-If Ladder Statement

The... Continue reading "Mastering Program Flow: Conditional and Iteration Structures" »

Understanding Binary Adders and Race Conditions in Flip-Flops

Classified in Computers

Written on in English with a size of 4.17 KB

Binary Parallel Adder

A binary parallel adder is a digital circuit that adds two binary numbers in parallel, meaning all bits are added simultaneously. It typically consists of full adders arranged in parallel, with each full adder adding corresponding bits from the two input numbers.

BCD Adder

A BCD (Binary Coded Decimal) adder is a specific type of binary parallel adder designed to add two BCD numbers. BCD numbers are decimal digits encoded in binary, where each decimal digit is represented by its 4-bit binary equivalent.

Truth Table for a 4-bit BCD Adder

Here's the truth table for a 4-bit BCD adder:


Diagram


In the truth table:

  • A3 A2 A1 A0 represents the first BCD number (A).
  • B3 B2 B1 B0 represents the second BCD number (B).
  • Cin represents the carry-
... Continue reading "Understanding Binary Adders and Race Conditions in Flip-Flops" »

Essential Algorithms and Data Structures: A Quick Reference

Classified in Computers

Written on in English with a size of 580.94 KB

fUlQAAAABJRU5ErkJggg==

AOUNZyjQwEJMAAAAAElFTkSuQmCC


Essential Algorithms and Data Structures

Longest Increasing Subsequence (LIS):

  • Subproblem: dp[i] = length of LIS ending at index i
  • Recursion: dp[i] = max(dp[j] + 1 for j < i and arr[j] < arr[i])
  • Base case: dp[i] = 1 (every element is a subsequence of length 1)
  • Time Complexity: O(n^2), O(n log n) with binary search optimization.

Longest Alternating Subsequence (LAS):

  • Subproblem: dp[i][0] (increasing), dp[i][1] (decreasing)
  • Recursion: dp[i][0] = max(dp[j][1] + 1 for j < i and arr[j] < arr[i]), dp[i][1] = max(dp[j][0] + 1 for j < i and arr[j] > arr[i])
  • Base case: dp[0][0] = 1, dp[0][1] = 1
  • Time Complexity: O(n^2)

0/1 Knapsack Problem:

  • Subproblem: dp[i][w] = maximum value for the first i items and weight limit w
  • Recursion: dp[i][w] = max(
... Continue reading "Essential Algorithms and Data Structures: A Quick Reference" »

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" »

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" »