Notes, summaries, assignments, exams, and exercises for Computer science for Baccalaureate

Von Neumann Architecture Vulnerabilities and Security Threats Explained

Computer scienceUpdated on 3.57 KB

Vulnerabilities in Von Neumann Architecture

The system architect of the von Neumann is the way that it can allow direct memory access to the low level languages like C and C++.

If the program goes and tries to access the memory out of bound by allocating code injection to the system, it allows the system to access the memory out of the stack which causes buffer overflow and the attacker can access the other memory from the allocated stack. This way an attacker can get access to the system. Therefore von Neumann architecture is vulnerable to code injection, the effect of the buffer overflow.

Understanding Threats and Attacks

Threats

  • It is a potential security violation that might exploit vulnerability of the system or assets.
  • Threats can be accidental,
...
Continue reading "Von Neumann Architecture Vulnerabilities and Security Threats Explained" »

Adobe Fireworks Interface and Toolbar: Guide to Tools and Panels

Computer scienceUpdated on 4.49 KB

Understanding the Adobe Fireworks Interface

Before getting started, let's define Object as any element within Fireworks, such as a circle, line, picture, or text.

The Fireworks Interface is simple. It's essential to identify each element, as you'll be using them throughout this course.

Start Page

Upon launching Fireworks, and before opening any document, the Start page appears. Here, you can open an existing document, create a new one, access recent documents, or visit Fireworks Exchange to enhance certain Fireworks functions.

Workspace

Workspace refers to the arrangement of elements like the Tools panel, Property Inspector, menus, and windows. The following image illustrates its layout.

Title Bar or Application Bar

Located at the top, it displays

...

Continue reading "Adobe Fireworks Interface and Toolbar: Guide to Tools and Panels" »

Concurrency Control and ER Model in Database Systems

Computer science2.2 KB

Concurrency Control in RDBMS

What are Transactions?

Transactions are sets of operations (like reading or writing data) treated as a single unit. Think of transferring money: multiple steps must happen together.

Isolation Levels

RDBMS uses isolation levels to manage how transactions interact:

  • Read Uncommitted: Transactions see changes before they're finalized, which is risky due to potential inaccuracies.
  • Read Committed: Transactions only see finalized changes, safer but still prone to inconsistencies.
  • Repeatable Read: Data remains unchanged during a transaction, preventing some issues.
  • Serializable: Transactions run sequentially, avoiding all problems but potentially slowing performance.

Concurrency Control Techniques

Techniques like locking data, timestamps,...

Continue reading "Concurrency Control and ER Model in Database Systems" »

Comprehensive Guide to HTML Headings: Types, Usage, and SEO Optimization

Computer science2.25 KB

Types of HTML Headings

HTML headings are classified into six levels, ranging from <h1> to <h6>, with <h1> representing the most important heading and <h6> the least important.

Usage of HTML Headings

Headings play a crucial role in structuring your web content and enhancing its readability. They help:

  • Organize content: Headings divide your content into logical sections, making it easier for users to navigate and understand.
  • Establish hierarchy: The different heading levels create a visual hierarchy, indicating the relative importance of each section.
  • Improve accessibility: Headings provide context and structure for screen readers, assisting users with disabilities.

SEO Optimization of HTML Headings

Headings are significant for...

Continue reading "Comprehensive Guide to HTML Headings: Types, Usage, and SEO Optimization" »

C Implementation of Queues, Linked Lists, and Search Algorithms

Computer science17.79 KB

Circular Queue Implementation Using Linked Lists

This C program demonstrates the implementation of a circular queue using a linked list structure. The queue handles integer data.

Data Structure Definition

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

typedef struct QueueType {
    int Data;
    struct QueueType *Next;
} QUEUE;

QUEUE *Front = NULL; // Pointer to the front of the queue
QUEUE *Rear = NULL;  // Pointer to the rear of the queue

// Function prototypes
void Enqueue(int Num);
int Dequeue();
void DisplayQueue();
int Menu();

Enqueue Operation

The Enqueue function inserts a number into the circular queue. It handles memory allocation and maintains the circular link by ensuring Rear->Next always points to Front.

void Enqueue(int Num)
...
Continue reading "C Implementation of Queues, Linked Lists, and Search Algorithms" »

Setting Up a Backend Project with Node.js

Computer science5.14 KB

To start a backend project.

- npm init

Then make a file with whatever entry point you named it as, for example, server.js

Once package.json is created:

  • npm i <package>
  • connect-mongo (store sessions in DB)
  • dotenv (for config files, environment variables)
  • express
  • mongoose
  • express-sessions (sessions and cookies)
  • method-override (to use PUT, UPDATE, DELETE requests)
  • moments (date formatting)
  • morgan (logging)
  • passport (authentication)

npm i -D <package>

  • nodemon (Update every file change instantly without having to restart the server)
  • cross-env (To update environment variables in script definition itself)

After installing the dependencies, edit the scripts in package.json

"start": "cross-env NODE_ENV=production node server.js",
"dev": "cross-env NODE_ENV=
...
Continue reading "Setting Up a Backend Project with Node.js" »

High-Level Data Link Control (HDLC) Protocol Fundamentals

Computer science4.53 KB

High-Level Data Link Control (HDLC) Protocol

HDLC is a crucial data link control protocol, specified by ISO 3009 and ISO 4335. It serves as the foundation for many other data link control protocols.

HDLC Station Types

  • Primary Station: Controls the operation of the link. Frames issued by the primary are called commands. The primary maintains a separate logical link with each secondary station on the line.
  • Secondary Station: Operates under the control of the primary station. Frames issued by a secondary are called responses.
  • Combined Station: Combines the features of both primary and secondary stations. A combined station may issue both commands and responses.

HDLC Link Configurations

  • Unbalanced Configuration: Involves one primary station and multiple
...
Continue reading "High-Level Data Link Control (HDLC) Protocol Fundamentals" »

V-Model and Black Box Testing in Software Engineering

Computer science9.26 KB

The V-Model (also known as the Verification and Validation Model) is a highly structured Software Development Life Cycle (SDLC) framework. It is an extension of the traditional Waterfall model, where instead of moving down in a linear fashion, the process steps bend upward after the coding phase to form a V shape. The core philosophy of the V-Model is that testing activities are planned and paired directly with their corresponding development phases right from the beginning.

The Two Arms of the V-Model

The V-Model is divided into two main tracks, separated by the execution of the actual code:

1. The Left Arm: Verification Phase

Verification happens before code execution. It involves static testing techniques like reviews, walkthroughs, and inspections...

Continue reading "V-Model and Black Box Testing in Software Engineering" »

Proprietary File Analysis: Keystream Recovery and Resource Extraction

Computer science5.58 KB

C Implementation for Proprietary File Decryption (The Glide Utility)

This C source code outlines a utility, likely named glide, designed to analyze and decrypt data stored in a proprietary file format (possibly a PWL file). The process involves reading the file, recovering parts of the encryption keystream based on known offsets and user input, and then decrypting embedded resources.

Core Data Structures and Global Declarations

The program utilizes several global arrays to manage file data, the derived keystream, and resource pointers.

unsigned char Data[100001];
unsigned char keystream[1001];
int Rpoint[300];
  • Data: Stores the entire content of the input file.
  • keystream: Holds the recovered encryption key stream used for XOR decryption.
  • Rpoint: An
...
Continue reading "Proprietary File Analysis: Keystream Recovery and Resource Extraction" »

Analyzing Algorithms: Recurrence Relations and Graph Matrix Structures

Computer science3.36 KB

Recurrence Relations in Algorithm Analysis

LHRR (Last Half Recurrence Relation) and DCRR (Divide-and-Conquer Recurrence Relation) are fundamental types of recurrence relations commonly encountered when analyzing the efficiency of divide-and-conquer algorithms.

Last Half Recurrence Relation (LHRR)

In LHRR, the recurrence relation describes the time complexity of an algorithm by recursively breaking down the problem into two subproblems of equal size, solving one, and ignoring the other. This approach implies that the work done in each step is proportional to the size of the problem being solved.

The relation is often expressed as: T(n) = T(n/2) + O(1), where T(n) represents the time complexity of the algorithm for a problem of size n. It is called...

Continue reading "Analyzing Algorithms: Recurrence Relations and Graph Matrix Structures" »