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

Sort by
Subject
Level

Python Exception Handling and File Modes Explained

Classified in Computers

Written on in English with a size of 2.6 KB

What is an Exception?

Answer: An exception in Python is an error that occurs during program execution, disrupting the normal flow of instructions. Instead of crashing, the program can "catch" the exception and handle it gracefully using try and except blocks. Common exceptions include ZeroDivisionError, IndexError, and FileNotFoundError. You can also define custom exceptions. The finally block can be used for cleanup actions, ensuring certain code runs regardless of whether an exception was raised.

Different Modes of Opening a File

Answer: Different Modes of Opening a File

1. Read Mode ('r')

  • Purpose: Opens a file for reading.
  • Behavior:
    • The file pointer is placed at the beginning of the file.
    • If the file does not exist, a FileNotFoundError is raised.
... Continue reading "Python Exception Handling and File Modes Explained" »

Software Engineering Fundamentals: Principles and Requirements Analysis

Classified in Computers

Written on in English with a size of 2.91 KB

Definition of Software Engineering

Software engineering is the establishment and use of sound engineering principles in order to obtain software economically that is reliable and works efficiently on real machines.

Need for Software Requirements Specification (SRS)

The Software Requirements Specification (SRS) is necessary because it provides:

  • A detailed overview of the software product, including its parameters and goals.
  • A description of the project's target audience, user interface, and hardware and software requirements.
  • A common understanding of how the client, development team, and audience perceive the product and its functionality.

Four Core Principles of Software Engineering

1. The Reason It All Exists (Value to Users)

  • A software system exists
... Continue reading "Software Engineering Fundamentals: Principles and Requirements Analysis" »

Discrete Mathematics Foundations: Sets, Logic, Graphs, and Proofs

Posted by Anonymous and classified in Computers

Written on in English with a size of 880.48 KB

Speaking Mathematically: Core Concepts

The Language of Sets

  • ∀ - Universal quantifier (true for all values of a variable in a set)
  • ∃ - Existential quantifier (true for at least one value of a variable in a set)

Common Set Notations:

  • R - Set of all real numbers
  • Z - Set of all integers
  • Q - Set of all rational numbers
  • N - Set of all positive integers
  • (X)+- - Positive/negative elements for a specific set X

xS means that x is an element of the set S.

  • Example: x=5, S={1, 2, 3, 4, 5}

AB means that A is a subset of the set B.

  • Example: A={a,b}, B={a,b,c}
  • Example: {2} ∈ {1, 2, 3} is false; {2} ∈ {{1}, {2}} is true; 2 ⊆ {1, 2, 3} is false; {2} ⊆ {1, 2, 3} is true
  • Note: {9, 9, 1, 1, 7, 7} has only 3 distinct elements ({1, 7, 9}); {1, {2}} has 2 elements;
... Continue reading "Discrete Mathematics Foundations: Sets, Logic, Graphs, and Proofs" »

Core Digital Electronics: Flip-Flops, Logic Gates, Memory & ADCs

Posted by Anonymous and classified in Computers

Written on in English with a size of 514.7 KB

Master-Slave Flip-Flop Operation

The working of a Master-Slave flip-flop involves two cascaded flip-flops: a master and a slave. The master is positive level-triggered, and the slave is negative level-triggered, ensuring the master responds before the slave.

When the clock pulse (CP) goes high (1), the slave is isolated, allowing the J and K inputs to affect the master's state. The slave flip-flop remains isolated until the CP goes low (0). When the CP transitions back to low, information is passed from the master flip-flop to the slave, and the output is obtained.

Let's examine the behavior based on J and K inputs:

  • J=0, K=1: The high Q' output of the master goes to the K input of the slave. The negative transition of the clock forces the slave
... Continue reading "Core Digital Electronics: Flip-Flops, Logic Gates, Memory & ADCs" »

C Programming Examples: Code Snippets and Explanations

Classified in Computers

Written on in English with a size of 3.41 KB

C Programming Examples

Here are several C programming examples:

Vector Operations

#include <stdio.h>

void leVetor (int v [] , int tam );
int prodEscalar (int v1 [] , int v2 [] , int tam );

int main (void) {
    int v1 [ DIM ], int v2 [ DIM ];
    int i;
    int prod ;

    leVetor (v1 , DIM );
    leVetor (v2 , DIM );
    prod = prodEscalar (v1 , v2 , DIM );
    printf ("%d\n", prod );
    return 0;
}

void leVetor (int v [] , int tam ) {
    /* Completar */
}

int prodEscalar (int v1 [] , int v2 [] , int tam ) {
    /* Completar */
}

Random Number Generation

#include <stdio.h>
#include <time.h>
#include <stdlib.h>

#define VEZES 10

int main (void) {
    int i , j , k;
    double r;

    srand ( time ( NULL )); /* inicializa
... Continue reading "C Programming Examples: Code Snippets and Explanations" »

Essential Data Structures and Algorithms Reference

Posted by Anonymous and classified in Computers

Written on in English with a size of 131.13 KB

Arrays and ArrayLists

Definition: A contiguous block of memory holding same-type elements, accessed by index.

  • Fixed-size array vs. dynamic ArrayList: ArrayLists auto-resize.
  • Operations: Access O(1), search O(n), insert/delete at end O(1) amortized, insert/delete at middle O(n) due to shifting.
  • When to use: Known size, frequent random access reads.
  • When NOT to use: Frequent insertions/deletions in the middle.
  • Worked example: ArrayList ops add("A"), add(1,"B"), add("C") → Array state: ["A"] → ["A", "B"] → ["A", "B", "C"].

Linked Lists

Definition: Nodes containing a value and a pointer to the next node (and previous for doubly linked).

  • Operations: Access O(n), insert at head O(1), insert at tail O(1) if tail pointer is kept, search O(n).
  • Why insert
... Continue reading "Essential Data Structures and Algorithms Reference" »

Core Concepts in Artificial Intelligence: Search Algorithms and Knowledge Systems

Classified in Computers

Written on in English with a size of 15.96 KB

Heuristic Search Techniques Explained

Heuristic search techniques use intelligent estimations to find solutions efficiently. These methods help in decision-making by prioritizing the most promising paths.


1. Greedy Best-First Search (GBFS)

  • Always chooses the next step that appears closest to the goal.
  • Ignores the cost already traveled.

Example:

A person finding the exit of a maze by always taking the path that looks shortest.

Risk: May lead to dead ends.


2. A* Search Algorithm

  • Balances actual cost and estimated cost to reach the goal.
  • Ensures the shortest and most efficient path.

Example:

Google Maps finds the best route by considering both distance already covered and the remaining estimated distance.

Optimal and efficient.


3. Hill Climbing Algorithm

  • Moves
... Continue reading "Core Concepts in Artificial Intelligence: Search Algorithms and Knowledge Systems" »

Understanding Constants and Variables in Programming

Classified in Computers

Written on in English with a size of 1.94 KB

Constants and Variables

Constants

Constants are quantities whose values do not change during program execution. They may be numeric, character, or string.

Numeric Constants

Numeric constants are of two types: integer and floating-point numbers.

  • Integer Constants: Represent values that are counted, such as the number of students in a class. Examples include 7145, -234, and 26.
  • Floating-point Constants: Used to represent values that are measured, such as height (e.g., 166.75 cm) or weight (e.g., 82.6 kg).

Character and String Constants

  • Character Constant: A symbol from the C character set (digits 0-9, letters A-Z, a-z, punctuation, and special symbols). These are enclosed in single quotes, such as 'a' or 's'.
  • String Constant: A sequence of characters
... Continue reading "Understanding Constants and Variables in Programming" »

Operating Systems Memory Management and Bash Scripting

Classified in Computers

Written on in English with a size of 4.74 KB

Memory Allocation Strategies

🔹 First Fit

👉 Take the first block that fits.

Example:

Blocks: 120, 450, 300, 700, 200
Processes: 250, 100, 500, 180

Step by step:

  • 250 → goes into 450 → left: 200
  • 100 → goes into 120 → left: 20
  • 500 → goes into 700 → left: 200
  • 180 → goes into 300 → left: 120

Final memory:
20, 200, 120, 200, 200


🔹 Best Fit

👉 Use the smallest block that fits.

Same example:

  • 250 → 300 → left 50
  • 100 → 120 → left 20
  • 500 → 700 → left 200
  • 180 → 200 → left 20

Final:
20, 450, 50, 200, 20

👉 Note: Causes more fragmentation (many small pieces).


🔹 Worst Fit

👉 Use the largest block.

Same example:

  • 250 → 700 → left 450
  • 100 → 450 → left 350
  • 500 → ❌ no block large enough
  • 180 → 350 → left 170

🔹 Next Fit

👉... Continue reading "Operating Systems Memory Management and Bash Scripting" »

Hehhrhrhr

Posted by Anonymous and classified in Computers

Written on in English with a size of 9.2 KB

Sequential circuits are fundamental components of digital systems, defined by the fact that their output depends not only on the current inputs but also on the past history of inputs (i.E., their current state).
The most basic element of a sequential circuit is the Flip-Flop, which is a 1-bit memory cell.
Here is a detailed explanation of the basic Flip-Flops and their operation:
1. Latches vs. Flip-Flops
Both latches and flip-flops are 1-bit storage elements, but they differ in how they are controlled:
| Feature | Latch | Flip-Flop |
|---|---|---|
| Triggering | Level-triggered (Transparent) | Edge-triggered (Synchronous) |
| Control | Changes state as long as the Enable or Clock is HIGH (or LOW). | Changes state only at the rising edge or falling... Continue reading "Hehhrhrhr" »