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

Sort by
Subject
Level

Digital Logic Circuits: Flip-Flops, Comparators, Decoders, and Registers

Classified in Computers

Written on in English with a size of 4.04 KB

Digital Logic Circuits

Flip-Flops

Clocked RS Flip-Flop Drawbacks

Clocked RS flip-flops have some drawbacks, such as susceptibility to race conditions, where the output can become unpredictable if the inputs change too close to the clock edge. They also require careful handling of the inputs to avoid metastability issues, which can lead to incorrect output states. Additionally, they can have higher power consumption compared to other flip-flop types due to the need for a clock signal.

JK Flip-Flop Operation

Content about JK Flip-Flop operation, characteristic table, characteristics equation, circuit diagram, and timing diagram would be added here.

Magnitude Comparator

What is a Magnitude Comparator?

A magnitude comparator is a digital circuit that compares... Continue reading "Digital Logic Circuits: Flip-Flops, Comparators, Decoders, and Registers" »

Software Design Principles and Patterns

Classified in Computers

Written on in English with a size of 4.98 MB

Lecture 2: Dynamic Dispatch and Interfaces

  • Dynamic Dispatch: The process of selecting which implementation of a polymorphic operation to call at runtime.
  • Interface: Calling a method that is not in the interface will cause a compilation error.

Lecture 3: N/A

Lecture 4: Method Contracts, Exceptions, and Unit Testing

  • Method Contract: Should define pre/post conditions and exceptional behavior. The client is to blame if the precondition is not met, and the service is to blame if the postcondition is not met. Exceptional behavior specifies what the code will do if a precondition is violated.
  • Exception: Runtime exception (unchecked) and IO exception (checked). The IO exception must be caught; otherwise, the code won't compile.
  • Unit Test: Test boundary
... Continue reading "Software Design Principles and Patterns" »

C++ Priority Queue Implementation: Code & Explanation

Classified in Computers

Written on in English with a size of 3.58 KB

C++ Priority Queue Implementation

This document provides a C++ implementation of a priority queue using a heap data structure. The code includes the class definition, member functions, and supporting utilities.

Priority Queue Class Definition


#ifndef priority_queue_h_
#define priority_queue_h_

#include <iostream>
#include <vector>
#include <cassert>

template <class T>
class priority_queue {
private:
    std::vector<T> m_heap;

public:
    priority_queue() {}

    priority_queue(std::vector<T> const& values)
    {
        m_heap = values;
        for (int i = 0; i < m_heap.size(); i++){
            percolate_down(i);
            for (int j = i; j < m_heap.size(); j++){
                percolate_down(
... Continue reading "C++ Priority Queue Implementation: Code & Explanation" »

Web Mining: Usage, Content, and Structure Analysis

Classified in Computers

Written on in English with a size of 4.1 KB

Web Usage Mining

Web Usage Mining refers to the process of extracting useful insights and patterns from user activity on the web. It involves analyzing web log data (such as user clicks, page visits, and interactions) to understand user behavior, improve website performance, and enhance user experience. Web usage mining typically includes three key steps:

  • Data Collection: Gathering data from web logs, cookies, browser history, and other online interactions.
  • Preprocessing: Cleaning and structuring the data to eliminate irrelevant information and make it suitable for analysis.
  • Pattern Discovery and Analysis: Applying data mining techniques (e.g., clustering, association rule mining, and classification) to discover trends, user navigation paths, and
... Continue reading "Web Mining: Usage, Content, and Structure Analysis" »

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

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

Java AWT: Button Events and Arrow Key Shape Movement

Classified in Computers

Written on in English with a size of 3.75 KB

Button Click Action Events

import java.awt.*;

import java.awt.event.*;

public class ButtonClickActionEvents

{

public static void main(String args[])

{

Frame f=new Frame("Button Event");

Label l=new Label("DETAILS OF PARENTS");

l.setFont(new Font("Calibri",Font.BOLD, 16));

Label nl=new Label();

Label dl=new Label();

Label al=new Label();

l.setBounds(20,20,500,50);

nl.setBounds(20,110,500,30);

dl.setBounds(20,150,500,30);

al.setBounds(20,190,500,30);

Button mb=new Button("Mother");

mb.setBounds(20,70,50,30);

mb.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

nl.setText("NAME: " + "Aishwarya");

dl.setText("DESIGNATION: " + "Professor");

al.setText("AGE: " + "42");

}

});

Button fb=new Button("Father");

fb.setBounds(80,70,50,30);

fb.addActionListener(

... Continue reading "Java AWT: Button Events and Arrow Key Shape Movement" »

C Programming: Tokens, Operators, and Logic

Classified in Computers

Written on in English with a size of 2.55 KB

Tokens

In programming, a token is the smallest meaningful element in code. They are the building blocks of a language's syntax. Common token types include:

  • Keywords: Reserved words like if, else, while, and int (for declaring integers).
  • Identifiers: Names given to elements like variables (e.g., sum), functions, and arrays.
  • Constants: Unchanging values during program execution (e.g., 3.14 for pi).
  • Operators: Symbols for mathematical or logical operations (e.g., + for addition).
  • Separators: Punctuation like commas (,), semicolons (;), and braces ({}).

Example: int sum = 10 + 5;

In this line, int is a keyword, sum is an identifier, = is an operator, 10 and 5 are constants, and ; is a separator.

Arithmetic Operators

C has nine arithmetic operators for basic... Continue reading "C Programming: Tokens, Operators, and Logic" »

Dijkstra's Algorithm in C: Code & Explanation

Classified in Computers

Written on in English with a size of 3.5 KB

Dijkstra's Algorithm in C

This code implements Dijkstra's algorithm to find the shortest path from a source vertex to all other vertices in a graph represented as an adjacency matrix. The program reads graph data from an input.txt file and writes the results to an output.txt file.

Code Implementation


#include <stdio.h>
#include <limits.h>
#include <stdbool.h>

#define MAX_VERTICES 100

// Function to find the vertex with minimum distance
int minDistance(int dist[], bool visited[], int vertices) {
    int min = INT_MAX, min_index;

    for (int v = 0; v < vertices; v++)
        if (!visited[v] && dist[v] <= min) {
            min = dist[v];
            min_index = v;
        }

    return min_index;
}

// Dijkstra'
... Continue reading "Dijkstra's Algorithm in C: Code & Explanation" »

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