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

Sort by
Subject
Level

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

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

Defining Computer Programming Languages and Their Structure

Classified in Computers

Written on in English with a size of 2.99 KB

Programming Language Fundamentals

A programming language is an artificial language designed to express computations that can be performed by a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine, to express algorithms precisely. Thousands of different programming languages have been created, mainly in the computer field, with many more being created every year. Most programming languages describe computation in an imperative style, i.e., as a sequence of commands.

Requirements and Objectives of a Programming Language

1. Function and Target

A computer programming language is a language used to write computer programs, which involve a computer performing some kind of computation... Continue reading "Defining Computer Programming Languages and Their Structure" »

Understanding SEO: A Comprehensive Guide to Search Engine Optimization

Classified in Computers

Written on in English with a size of 4.24 KB

Understanding Search Engine Optimization (SEO)

Crawling and Indexing

Web crawlers, also known as bots, robots, or spiders, are software programs designed to follow links, gather information, and send it back to search engines for indexing. This process allows search engines to understand the content and structure of websites.

Evolution of Google Search Algorithms

Over the years, Google has implemented various algorithm updates to improve search results and combat spam. Some notable updates include:

  • Google Dance (2002): Click-through rates started influencing search rankings.
  • Austin (2004): Targeted websites with keyword stuffing.
  • Google Suggest (2008) & Google Instant (2010): Introduced predictive search based on search history.
  • Hummingbird (2013)
... Continue reading "Understanding SEO: A Comprehensive Guide to Search Engine Optimization" »

Software Configuration Management Fundamentals

Classified in Computers

Written on in English with a size of 2.77 KB

Software Configuration Management (SCM)

Definition of Software Configuration Management

Software Configuration Management (SCM) is a set of management disciplines within a software engineering process used to develop a baseline. SCM encompasses the disciplines and techniques of initiating, evaluating, and controlling change to software products during development and maintenance.

Administering SCM

Administering Software Configuration Management is a crucial project function with the goal of making technical and managerial activities more effective. SCM can be administered in several ways:

  • Organization-wide: A single SCM team manages configuration for the whole organization.
  • Project-specific: A separate configuration management team is established
... Continue reading "Software Configuration Management Fundamentals" »