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

Sort by
Subject
Level

Core Operating System Concepts: Processes, Shells, and Security

Classified in Computers

Written on in English with a size of 95.39 KB

Operations on a Process

  1. Process Creation: A user request or an already running process can create new processes. A parent process creates child processes using a system call, which, in turn, can create other processes, forming a tree of processes.
  2. Process Pre-emption: A process is pre-empted if an I/O event or timeout occurs. The process then moves from the running state to the ready state, and the CPU loads another process from the ready state to the running state, if available.
  3. Process Blocking: When a process requires an I/O event during its execution, it moves from the running state to the waiting state, and the CPU dispatches another process.
  4. Process Termination: A process is terminated when it completes its execution. Additionally, events
... Continue reading "Core Operating System Concepts: Processes, Shells, and Security" »

Software, Hardware, Networking, Cloud & IoT Fundamentals

Classified in Computers

Written on in English with a size of 2.96 KB

Software

Software: It's a set of instructions, data, or programs used to operate computers and execute specific tasks. It is a generic term used to refer to applications, software, and programs that run on a device. E.g. Excel, Linux, macOS.

Hardware

Hardware: It's the physical parts of a computer and related devices. They can be internal, such as: motherboard, RAM, CPU; or external, such as monitors, printers, and keyboards.

Client/Server Computing

Client/Server Computing: This is a distributed computing model where some processing power is located within small, cost-effective client PCs.

Packet Switching

Packet Switching: Packet switching is a method of breaking down digital messages into smaller packets. These packets are sent across various communication... Continue reading "Software, Hardware, Networking, Cloud & IoT Fundamentals" »

Algorithm Analysis: Time and Space Complexity

Classified in Computers

Written on in English with a size of 4.5 KB

Space Complexity

  • Analysis of the space complexity of an algorithm or program is the amount of memory it needs to run to completion.
  • The space needed by a program consists of the following components:
  • Fixed space requirements: Independent of the number and size of the program's input and output. It includes:
  • Instruction Space (Space needed to store the code)
  • Space for simple variables
  • Space for constants
  • Variable space requirements: This component consists of:
  • Space needed by structured variables whose size depends on the particular instance I of the problem being solved
  • Space required when a function uses recursion

Total Space Complexity

S(P) of a program is:

S(P) = C + Sp(I)

Here Sp(I) is the variable space requirements of program P working on an instance... Continue reading "Algorithm Analysis: Time and Space Complexity" »

Digital Technology: Applications and Considerations

Classified in Computers

Written on in English with a size of 2.22 KB

E-Voting

Considerations

  • Voter ID
  • Candidate ID and Voter ID
  • Representing information in text format
  • Secure section for additional fields
  • Providing a set number of options to reduce data input errors

Data Collection Methods

Questionnaires

Advantages: Less labor-intensive than interviews.

Disadvantages: Poorly designed questions (e.g., overuse or lack of closed questions) can lead to misunderstandings.

Interviews

Advantages: Provide more detailed information than questionnaires; allow for face-to-face interaction.

Disadvantages: Time-consuming; require skilled interviewers.

BYOD at Xingu Academy

Technical Aspects

  • MAC address and IP address management
  • Voice recognition software: Converts analog speech to digital sound, then to text using a sound database. Matches
... Continue reading "Digital Technology: Applications and Considerations" »

Mastering Apache Flink and HBase Data Operations

Classified in Computers

Written on in English with a size of 4.37 KB

Identify High-Volume Customer Purchases in Flink

The following Java code utilizes Apache Flink to identify customers who purchase more than 10 units of a specific item within a session window.

public class CustomerPurchase {
    public static void main(String[] args) throws Exception {
        final ParameterTool params = ParameterTool.fromArgs(args);
        final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
        DataStream<String> text = env.readTextFile(params.get("input"));
        env.getConfig().setGlobalJobParameters(params);

        SingleOutputStreamOperator<Tuple3<Long, Integer, Integer>> mapStream = text.map(new MapFunction<String, Tuple3<Long, Integer, Integer>
... Continue reading "Mastering Apache Flink and HBase Data Operations" »

C++ Cheat Sheet: Structs, Classes, Pointers, Arrays, and More

Classified in Computers

Written on in English with a size of 6.65 KB


```c++
    //input 
    int main(int argc, char * argv[]){ // or char ** argv
        const char* strs[] = {"Hello", "World!"};
        const char str[] = {"Hello"};
        const int arr[] = {1,2,3};
        std::cout << *strs<< std::endl;
        std::cout << str << std::endl;
        std::cout << arr << std::endl;
        std::cout << *arr << std::endl;
        std::cout << *str << std::endl;
        std::cout << *(strs + 1)<
    } 
    //output
    Hello
    Hello
    0x77d02fb38050
    1
    H
    World!
    void insert(int array[], int size, int item, int num_copies){
    for(int * i = array; i < array + size - num_copies;
... Continue reading "C++ Cheat Sheet: Structs, Classes, Pointers, Arrays, and More" »

Mastering Java Core Concepts: Generics, Collections, Events, and Swing

Classified in Computers

Written on in English with a size of 6.82 KB

Java Generics: Methods and Classes

Java Generics enable programmers to specify, with a single method declaration, a set of related methods, or with a single class declaration, a set of related types, respectively. Generics also provide compile-time type safety, which allows programmers to catch invalid types at compile time, preventing runtime errors.

Generics Example: ArrayList

Consider the following example demonstrating generics with an ArrayList:

1. import java.util.*;
2. class TestGenerics1 {
3.   public static void main(String args[]) {
4.     ArrayList<String> list = new ArrayList<String>();
5.     list.add("rahul");
6.     list.add("jai");
7.     // list.add(32); // compile-time error if uncommented
8.     String s = list.get(
... Continue reading "Mastering Java Core Concepts: Generics, Collections, Events, and Swing" »

Comprehensive Guide to Digital Certificates, Security Protocols, and Computer Architecture

Posted by Lijia and classified in Computers

Written on in English with a size of 6.87 KB

Data Items in a Digital Certificate

  • Serial Number
  • Certificate Authority (CA) that issued the certificate
  • CA Digital Signature
  • Name of company/organization/individual owning the certificate
  • Subject Public Key
  • Validity Period of the certificate
  • Hashing Algorithm

Conditions for Message Authenticity

  • Digital Certificate
  • Inclusion of Public Key
  • Use of Public Key to hash the received message and produce a message digest
  • Comparison of the generated hash to the digital signature

Usage of Encrypted Message Digest

  • Financial Transactions
  • Legal Documents
  • Software Distribution

Process of Digital Signature

  1. Software is put through a hashing algorithm.
  2. The hash total is encrypted with a private key.
  3. The software and encrypted digest hash/digital signature are sent.
  4. The receiver
... Continue reading "Comprehensive Guide to Digital Certificates, Security Protocols, and Computer Architecture" »

Implementing 3D Vector Operations in C Programming

Classified in Computers

Written on in English with a size of 4.19 KB

C Program for 3D Vector Algebra Implementation

This C program demonstrates the implementation of fundamental 3D vector operations, including addition, subtraction, scalar (dot) product, vector (cross) product, modulus calculation, and element swapping. It also includes functions for displaying vectors to the console and writing them to a file.

Header Files and Function Prototypes

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

void suma_resta(double [], double [], double [], char);
void vectorial(double [], double [], double []);
void swap(double []);
void pant_vector(double []);
void fich_vector(double []);

double escalar(double [], double []);
double modulo(double []);

Main Function Execution

The main function initializes two vectors, a and... Continue reading "Implementing 3D Vector Operations in C Programming" »

Building Parsers and Interpreters with BNF

Classified in Computers

Written on in English with a size of 2.67 KB

Understanding Parsers and Abstract Syntax

A Parser is a program that translates terms in concrete syntax into abstract syntax.

  • In our language (PLAI, not Racket), we use {braces} instead of (parentheses) to distinguish concrete syntax from Scheme by looking at the delimiters.
  • The parser identifies the program structure and converts it to the appropriate abstract syntax. This requires a clear specification of the concrete syntax using Backus-Naur Form (BNF).

Arithmetic BNF Specification

<AE> ::= <num>
      | {+ <AE> <AE>}
      | {- <AE> <AE>}
  • The <AE> in BNF is a non-terminal, meaning it can be rewritten as one of the items on the right-hand side.
  • The ::= symbol means “can be rewritten as.”
  • Each | presents
... Continue reading "Building Parsers and Interpreters with BNF" »