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

Sort by
Subject
Level

Python Fundamentals and Algorithms Explained

Classified in Computers

Written on in English with a size of 5.17 KB

Algorithms

Algorithms involve inputs, instructions, outputs, and a purpose.

Instruction Types

  • Instruction
  • Decision
  • Loop
  • Variable
  • Function

Python Basics

Comments

Comments explain what code is for, intended for human readers.

Variables

Storing a value in a variable is called assignment. It's best practice not to use generic names.

Calculations (Operators)

  • + : Addition
  • - : Subtraction
  • * : Multiplication
  • / : Division
  • // : Integer Division (e.g., 6 // 4 = 1)
  • % : Remainder / Modulo (e.g., 6 % 4 = 2)
  • ** : Exponentiation

mass_in_kg = 15

weight_in_pounds = mass_in_kg * 2.2

print('the weight in pounds is: ', weight_in_pounds)

user_name = input("enter your user name: ")

print('hello', user_name)

Data Types

  • int: Integer numbers (e.g., -1, 0, 2, 1000)
  • float: Floating-point (real)
... Continue reading "Python Fundamentals and Algorithms Explained" »

Compiler Design: SDTS, LR Parsing, and Code Optimization

Posted by Anonymous and classified in Computers

Written on in English with a size of 232.62 KB

Syntax-Directed Translation Schemes (SDTS)

A possible Syntax-Directed Translation Scheme (SDTS) uses the attribute val to store the value of each non-terminal.

  • E → E1 + T { E.val = E1.val + T.val }
  • E → T { E.val = T.val }
  • T → T1 * F { T.val = T1.val * F.val }
  • T → F { T.val = F.val }
  • F → num { F.val = num.value }

Bottom-Up Evaluation of 3 + 2 * 4

Evaluation using SDTS (bottom-up):

  • F → num(4): F.val = 4
  • F → num(2): F.val = 2
  • F → num(3): F.val = 3
  • T → F (for num(2)): T.val = F.val = 2
  • T → T * F: T.val = T.val (from num(2)) * F.val (from num(4)) = 2 * 4 = 8
  • T → F (for num(3)): T.val = F.val = 3
  • E → T (for num(3)): E.val = T.val = 3
  • E → E + T: E.val = E.val (from num(3)) + T.val (from 2 * 4) = 3 + 8 = 11

Therefore, the result of the computation... Continue reading "Compiler Design: SDTS, LR Parsing, and Code Optimization" »

Digital Logic: Moore's Law, Logic Gates, and Number Systems

Classified in Computers

Written on in English with a size of 708.55 KB

Lecture 1: Moore's Law

Moore's Law: The number of transistors on microchips doubles every two years.

Lecture 2: Logic Gates

I7WgAAAABJRU5ErkJggg==

i3AAAAABJRU5ErkJggg==

+NnQQWHnrkU5hEgARmEjCXFieBuVQxHFZoESCBhRZfu1ongdmFNPtxFQIkMFepI+jBkMCCho4VvYwACczL2qMNLDy0x6cIGoEjR45Iq1atZNWqVbqNnTt3SpUqVYJujxWdQYArMGdwZ68OI4AY19dff10GDBggbdu2lblz50p8fLzDo2L3ZhEggZlFjOXDBgEEmaekpEhcXBzJy6NaJYF5VHEcNhEgAiIkMM4CIkAEPIsACcyzquPAiQARIIFxDhABIuBZBEhgnlUdB04EiAAJjHOACBABzyJAAvOs6jhwIkAESGCcA0SACHgWARKYZ1XHgRMBIkAC4xwgAkTAswiQwDyrOg6cCBABEhjnABEgAp5FgATmWdVx4ESACJDAOAeIABHwLAIkMM+qjgMnAkSABMY5QASIgGcRIIF5VnUcOBEgAiQwzgEiQAQ8iwAJzLOq48CJABEggXEOEAEi4FkESGCeVR0HTgSIAAmMc4AIEAHPIkAC86zqOHAiQAT+DyAtVcWtdpgpAAAAAElFTkSuQmCC

PKhJg4vKJJngcj4CICTBwugs1dMQJeQYCJwyua5HkwAi4iwMThItjcFSPgFQSYOLyiSZ4HI+AiAkwcLoLNXTECXkGAicMrmuR5MAIuIsDE4SLY3BUj4BUEmDi8okmeByPgIgJMHC6CzV0xAl5BgInDK5rkeTACLiLAxOEi2NwVI+AVBJg4vKJJngcj4CICTBwugs1dMQJeQYCJwyua5HkwAi4iwMThItjcFSPgFQSYOLyiSZ4HI+AiAkwcLoLNXTECXkGAicMrmuR5MAIuIsDE4SLY3BUj4BUEmDi8okmeByPgIgJMHC6CzV0xAl5BgInDK5rkeTACLiLAxOEi2NwVI+AVBP4HSdmP4LA25GYAAAAASUVORK5CYII=

5hQAAAAASUVORK5CYII=

eg8CIAACIAACfhGAQPiFDYVAAARAAARAwNkEIBDOjj96DwIgAAIgAAJ+EYBA+IUNhUAABEAABEDA2QT+D4sjTswCubX7AAAAAElFTkSuQmCC

o3LOcXr2Tof4HmKwTSBU6n03g8Hv9jfn5+pseNz2fo4ysWkACBdgFD334B8hMgEC9g6OMrFpAAgXYBQ99+AfITIBAvYOjjKxaQAIF2AUPffgHyEyAQL2Do4ysWkACBdgFD334B8hMgEC9g6OMrFpAAgXYBQ99+AfITIBAvYOjjKxaQAIF2AUPffgHyEyAQL2Do4ysWkACBdgFD334B8hMgEC9g6OMrFpAAgXYBQ99+AfITIBAvYOjjKxaQAIF2AUPffgHyEyAQL2Do4ysWkACBdgFD334B8hMgEC9g6OMrFpAAgXYBQ99+AfITIBAvYOjjKxaQAIF2AUPffgHyEyAQL2Do4ysWkACBdgFD334B8hMgEC9g6OMrFpAAgXYBQ99+AfITIBAvYOjjKxaQAIF2AUPffgHyEyAQL2Do4ysWkACBdgFD334B8hMgEC9g6OMrFpAAgXYBQ99+AfITIBAvYOjjKxaQAIF2AUPffgHyEyAQL2Do4ysWkACBdgFD334B8hMgEC9g6OMrFpAAgXYBQ99+AfITIBAvYOjjKxaQAIF2AUPffgHyEyAQL2Do4ysWkACBdgFD334B8hMgEC9g6OMrFpAAgXaBf18koFmMFdorAAAAAElFTkSuQmCC

wFbJNthuSOezwAAAABJRU5ErkJggg==

AND, OR, and NOT gates are universal.

Logic word problem steps:

Example: In a bank, there were four employees: the bank manager, assistant manager, teller, and the security guard. The bank has a single vault for the storage of their money. This vault was designed so that it needs four signals to open it. These four signals are from the bank manager, assistant manager, teller, and the security guard. For the vault to open, it needs the following conditions:

  1. No single employee can open the vault.
  2. It can be opened with three employees as long as one of them is the manager.
  3. It can be opened by the manager together with the assistant
... Continue reading "Digital Logic: Moore's Law, Logic Gates, and Number Systems" »

Digital Electronics CIE-1 Exam Preparation

Posted by Anonymous and classified in Computers

Written on in English with a size of 4.49 KB

Here is a complete and concise answer sheet for your Digital Electronics CIE-1 preparation based on your questions:


1. Design Half and Full Subtractor with Truth Table

Half Subtractor

  • Inputs: A, B
  • Outputs: Difference (D), Borrow (Bo)
  • Logic Equations:
    • Difference (D) = A ⊕ B
    • Borrow (Bo) = A' · B

Full Subtractor

  • Inputs: A, B, Bin (Borrow In)
  • Outputs: Difference (D), Borrow Out (Bo)
  • Logic Equations:
    • D = A ⊕ B ⊕ Bin
    • Bo = B · Bin + B · A' + A' · Bin

2. Working of Adder and Subtractor

Adder Circuits

  • Half Adder: Adds two bits A and B.
    • Sum = A ⊕ B, Carry = A · B
  • Full Adder: Adds three bits A, B, and Cin.
    • Sum = A ⊕ B ⊕ Cin, Cout = AB + ACin + BCin

Subtractor Circuits

  • Half Subtractor: Subtracts B from A.
    • Difference = A ⊕ B, Borrow = A' · B
  • Full Subtractor:
... Continue reading "Digital Electronics CIE-1 Exam Preparation" »

Mastering LVM: Dynamic Storage Management in Linux

Classified in Computers

Written on in English with a size of 3.44 KB

Logical Volume Management (LVM) in Linux Storage

F. The the vast realm of operating systems, Linux has emerged as a robust and versatile choice, powering everything from personal computers to enterprise-level servers. One of its standout features is Logical Volume Management (LVM), a powerful storage management system that offers enhanced flexibility, scalability, and reliability for handling storage devices in Linux environments. LVM revolutionizes how disk partitions and physical storage are managed, providing an abstract layer that simplifies storage administration and facilitates efficient utilization of available resources. By introducing logical volumes, volume groups, and physical volumes (PVs) (originally referred to as "physical books"... Continue reading "Mastering LVM: Dynamic Storage Management in Linux" »

Essential Software Design Patterns and Testing Techniques

Posted by Anonymous and classified in Computers

Written on in English with a size of 6.26 KB

Domain Model

  • Shows concepts only: classes, attributes, associations, and multiplicities.
  • No methods, no UI, and no controllers are included.
  • Purpose: To understand the real-world objects involved in the system.

Use Case Model (Module 6)

  • Focuses on Actor ↔ System interaction.
  • Uses the Verb + Noun naming convention.
  • Format: Defines Actor steps versus System steps.
  • Use cases serve as input for sequence diagrams, which inform class diagrams.

UML Class Diagram (Module 7)

  • Class Components: Name, attributes, and methods.
  • Association: Line connecting classes with multiplicity (1, 0..1, *, 1..*).
  • Inheritance: Represented by an open triangle arrow symbol.
  • Interface: Indicated by the «interface» stereotype.
  • DCD (Design Class Diagram): Explicitly includes methods
... Continue reading "Essential Software Design Patterns and Testing Techniques" »

Python Classes, Objects, and Inheritance Fundamentals

Classified in Computers

Written on in English with a size of 4.11 KB

Understanding Objects in Programming

An object is a software entity that contains data (attributes) and methods. It represents a real-world entity that can be distinctly identified.

Every object has a unique:

  • Identity: The name of the object (e.g., the variable name).
  • State: The data stored in the object, which defines its properties.
  • Behavior: The actions an object can perform, defined by its methods.

Can an object be passed as an argument to a function?

Yes. In Python, objects are passed by reference. This means any changes made to the object's attributes within the function will permanently alter the original object. This behavior is similar to how lists and dictionaries are handled. Think of it as sharing a key to a single locker rather than getting... Continue reading "Python Classes, Objects, and Inheritance Fundamentals" »

Mastering Stacks, Deques, Trees, and Graph Data Structures

Classified in Computers

Written on in English with a size of 21.54 KB

A stack is a fundamental data structure in computer science that follows the Last In, First Out (LIFO) principle. This means that the last element added to the stack is the first one to be removed. You can think of it like a stack of plates: you can only add or remove the top plate.

### Key Concepts of a Stack:

1. Basic Operations:
   - Push: This operation adds an element to the top of the stack.
   - Pop: This operation removes the element from the top of the stack and returns it.
   - Peek (or Top): This operation returns the top element of the stack without removing it.
   - IsEmpty: This operation checks whether the stack is empty.

2. Implementation:
   Stacks can be implemented using arrays or linked lists. Here are the details for... Continue reading "Mastering Stacks, Deques, Trees, and Graph Data Structures" »

Microprocessor vs. Microcontroller: Understanding the Key Differences

Classified in Computers

Written on in English with a size of 2.45 KB

Microprocessor vs. Microcontroller

ii) Differentiate Between a Microprocessor and a Micro-Controller

Microprocessor

Definition:

A microprocessor is a central processing unit (CPU) on a single integrated circuit (IC) chip that performs the processing functions of a computer.

Functionality:
  • It only includes the CPU core and lacks other components like memory, I/O ports, timers, and other peripherals.
  • Requires external components like memory (RAM, ROM), input/output devices, timers, and other peripherals to function as a complete system.
Usage:
  • Primarily used in systems requiring high computational power and flexibility, such as desktop computers, laptops, servers, and high-end embedded systems.
  • Suited for applications where customization of peripherals
... Continue reading "Microprocessor vs. Microcontroller: Understanding the Key Differences" »

Pattern Printing Programs in C and Python — Pyramid & String

Classified in Computers

Written on in English with a size of 4.26 KB

Number Pyramid of Integers

Write a program to generate the following patterns of integers:

              1
            121
           12321
         1234321

Corrected C Program (Number Pyramid)

The following C program prints the above centered palindrome number pyramid. It prompts for the number of rows.

#include <stdio.h>

int main()
{
    int i, j, row;
    printf("Enter number of rows: ");
    if (scanf("%d", &row) != 1) {
        printf("Invalid input.\n");
        return 1;
    }

    for (i = 1; i <= row; i++)
    {
        for (j = 1; j <= row - i; j++)
        {
            printf(" ");
        }
        for (j = 1; j <= i; j++)
        {
            printf("%d", j);
        }
        for (j = i - 1; j >= 1; j--)
... Continue reading "Pattern Printing Programs in C and Python — Pyramid & String" »