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

Sort by
Subject
Level

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

Python Fundamentals: Variables, Data Types, and Control Flow

Posted by Anonymous and classified in Computers

Written on in English with a size of 14.36 KB

Keywords and identifiers are fundamental elements in programming languages used to define variables, functions, and other constructs, with keywords being reserved words that have special meanings, and identifiers being names given to user-defined entities.

Comments in programming serve the essential purpose of making the source code more understandable and maintainable by providing textual annotations that explain the logic, purpose, or any additional information about the code. They help programmers and collaborators to read, debug, and update the code efficiently without affecting its execution.

There are two main types of comments:
- Single-line comments start with specific symbols like // in languages such as C, Java, and JavaScript, and they... Continue reading "Python Fundamentals: Variables, Data Types, and Control Flow" »

Polymorphism in C++: Concepts and Methods Explained

Posted by Anonymous and classified in Computers

Written on in English with a size of 2.99 KB

Polymorphism in C++

Polymorphism is a fundamental pillar of Object-Oriented Programming (OOP). The term is derived from two Greek words: Poly (many) and Morph (forms). Therefore, polymorphism signifies one name having many forms.

In C++, polymorphism enables the same function or operator to perform different operations depending on the context.

Why Use Polymorphism?

  • Improves code flexibility
  • Reduces complexity
  • Increases readability
  • Supports code reuse
  • Facilitates generic programming

Types of Polymorphism in C++

Polymorphism in C++ is categorized into two primary types:

1. Compile-Time (Static) Polymorphism

Compile-time polymorphism is resolved during the compilation phase. The compiler determines which function to invoke based on the function definition.... Continue reading "Polymorphism in C++: Concepts and Methods Explained" »

Mastering Process Synchronization: Critical Sections and Semaphores

Posted by Anonymous and classified in Computers

Written on in English with a size of 7.56 KB

The Critical Section Problem

In a multi-threaded or multi-process system, shared data can easily become corrupted if multiple processes try to modify it at the same time. This issue is known as a race condition.

To prevent this, we identify the section of code where shared resources are accessed as the Critical Section. The goal is to ensure that only one process executes in its critical section at any given moment.

do {
    [ Entry Section ]   <-- Request permission to enter
        Critical Section   <-- Manipulate shared data
    [ Exit Section ]    <-- Release permission
        Remainder Section  <-- Non-shared code
} while (true);

To be a valid solution, any mechanism managing the critical section must satisfy three strict requirements:... Continue reading "Mastering Process Synchronization: Critical Sections and Semaphores" »

C Programming: Numerical Algorithms and Control Flow

Posted by Anonymous and classified in Computers

Written on in English with a size of 18.07 KB

Unit 3: Core C Programming Concepts

Extracting Digits of a Number

Extracting digits of a number is a fundamental programming task used in various computational problems, such as reversing a number, checking for palindromes, or performing digit-based calculations. There are two main approaches: right-to-left extraction and left-to-right extraction.

Right-to-Left Extraction

In right-to-left extraction, the modulus operator (%) is used to obtain the last digit of the number, while integer division (/) removes the last digit after processing. For example, for the number 1234:

  • 1234 % 10 gives 4.
  • 1234 / 10 gives 123.

This process is repeated until the number becomes zero, allowing each digit to be handled individually.

Left-to-Right Extraction

Left-to-right... Continue reading "C Programming: Numerical Algorithms and Control Flow" »

Understanding Email Systems and Cybersecurity Threats

Posted by Anonymous and classified in Computers

Written on in English with a size of 10.97 KB

Electronic Mail (Email) Fundamentals

Email is a method of exchanging digital messages from an author to one or more recipients. 📧

Introduction to Email

Email works similarly to physical mail, but electronically. It uses the internet to deliver messages almost instantaneously to an address on a global network. Key protocols like Simple Mail Transfer Protocol (SMTP) handle sending mail, while Post Office Protocol (POP3) or Internet Message Access Protocol (IMAP) handle receiving it.

Advantages of Email

  • Speed: Messages are delivered almost instantly, even across vast distances.
  • Cost-Effective: It's virtually free compared to traditional postal services or long-distance calls.
  • Accessibility: You can send and receive emails from almost any internet-
... Continue reading "Understanding Email Systems and Cybersecurity Threats" »

Core Concepts in AI, Machine Learning, and Industrial Automation Systems

Posted by Anonymous and classified in Computers

Written on in English with a size of 422.57 KB

Linear Regression Fundamentals

In regression, a set of records containing X and Y values is used to learn a function. This learned function can then be used to predict Y from an unknown X. In regression, we aim to find the value of Y, so a function is required which predicts Y given X. Y is continuous in the case of regression.

Here, Y is called the criterion variable and X is called the predictor variable. There are many types of functions or models which can be used for regression. The linear function is the simplest type of function. Here, X may be a single feature or multiple features representing the problem.

P37C38P9ECJqqvMXffAAAAAElFTkSuQmCC

Applications of Linear Regression in AI

  • Predictive Analysis: Forecasting sales, stock prices, or house prices based on historical data.
... Continue reading "Core Concepts in AI, Machine Learning, and Industrial Automation Systems" »

Programming Fundamentals and OOP Cheat Sheet

Posted by Anonymous and classified in Computers

Written on in English with a size of 3.49 KB

MEGA CHEAT SHEET

1. Programming Fundamentals

Software Development Life Cycle (SDLC)

Steps: Requirements → Specifications → Design → Development → Integration → Testing/Debugging → Installation → Maintenance.

Mnemonic: Really Smart Developers In Tech Install Machines.

Algorithms

  • Control Structures:
    • Sequence (In Order)
    • Selection (If/Else)
    • Iteration (Loops)
  • Design Strategies: Divide and Conquer, Backtracking.
  • Representations: Pseudocode, Flowcharts, Structure Charts, Abstraction Diagrams.
  • Checking: Identify Input/Output, Purpose, Desk Check with data.

Programming Paradigms

  • Imperative: Step-by-step instructions (e.g., Python).
  • OOP: Objects and classes (e.g., Java, Python).
  • Logic: Facts and rules (e.g., Prolog).
  • Functional: Pure functions, no state
... Continue reading "Programming Fundamentals and OOP Cheat Sheet" »

8051 Microcontroller Architecture and Pin Configuration

Posted by Anonymous and classified in Computers

Written on in English with a size of 1.86 MB

Architecture of 8051

1. CPU (Central Processing Unit)

  • Controls all operations of the microcontroller.
  • Performs arithmetic and logical operations.
  • Executes program instructions.

2. RAM (Random Access Memory)

  • Temporary storage for data.
  • Stores variables and intermediate results.
  • Data is lost when power is turned off.

3. ROM (Read Only Memory)

  • Stores the program permanently.
  • Retains data even when power is off.

4. Timers/Counters

  • Used to generate time delays.
  • Can count external events.
  • 8051 has Timer 0 and Timer 1.

5. Ports

  • Used for input and output operations.
  • 8051 has 4 ports (P0, P1, P2, P3).
  • Each port is 8-bit.

6. Serial Communication

  • Used to exchange data with other devices.
  • Uses TXD (Transmit) and RXD (Receive) pins.
  • Supports serial data transmission and reception.
... Continue reading "8051 Microcontroller Architecture and Pin Configuration" »

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