Notes, summaries, assignments, exams, and problems for Computer science

Essential Software Design Patterns and Testing Techniques

Computer science6.26 KB

Domain Model

  • Shows concepts only: classes, attributes, associations, and multiplicities.
  • No methods, no UI, and no controllers are included.
  • Purpose: To understand the real-world objects involved in the system.

Use Case Model (Module 6)

  • Focuses on Actor ↔ System interaction.
  • Uses the Verb + Noun naming convention.
  • Format: Defines Actor steps versus System steps.
  • Use cases serve as input for sequence diagrams, which inform class diagrams.

UML Class Diagram (Module 7)

  • Class Components: Name, attributes, and methods.
  • Association: Line connecting classes with multiplicity (1, 0..1, *, 1..*).
  • Inheritance: Represented by an open triangle arrow symbol.
  • Interface: Indicated by the «interface» stereotype.
  • DCD (Design Class Diagram): Explicitly includes methods
...
Continue reading "Essential Software Design Patterns and Testing Techniques" »

Operating System Concepts: Hardware Interaction and Scheduling

Computer science1.45 MB

Operating System Fundamentals

The Operating System (OS) serves several critical roles:

  • It acts as a resource manager, controlling access to the hardware.
  • It provides an abstraction layer, allowing user processes to call functions that access hardware via system calls.

User Mode vs. Supervisor Mode (Kernel Mode)

The CPU enforces separation between user processes and the OS kernel:

  • User Mode: Prohibits privileged instructions.
  • Kernel Mode (Supervisor Mode): Allows access to all hardware and privileged operations.

Program Status Word (PSW)

The PSW is a special register holding vital information, such as:

  • Access privilege mode.
  • Runtime execution conditions (e.g., condition codes).
  • Program Counter (PC) and Stack Pointer (SP).

Simplified Interrupt Handling Flow

  1. A
...
Continue reading "Operating System Concepts: Hardware Interaction and Scheduling" »

IoT Protocols, Communication Models, & Deployment Strategies

Computer science1.64 MB

IoT Protocols

Link Layer Protocols

  • 802.3 Ethernet Standards

    A collection of wired Ethernet standards that provide data rates from 10 Mb/s to 40 gigabits per second. The shared medium in Ethernet can be a coaxial cable, twisted-pair wire, or optical fiber. This shared medium carries communication for all devices on the network.

  • 802.11 Wi-Fi Standards

    A collection of wireless Local Area Network (WLAN) communication standards.

Network/Internet Layer

  • Responsible for sending IP datagrams from the source network to the destination network.
  • Handles host addressing and packet routing based on IPv4 or IPv6.
  • Datagrams contain a source and destination address, which are used to route them from the source to the destination across multiple networks.
  • IPv4 uses 32-
...
Continue reading "IoT Protocols, Communication Models, & Deployment Strategies" »

Programming Fundamentals: Loops, Structures, Functions & File Handling

Computer science22.07 KB

When to Use For Loops vs. While Loops

A for loop and a while loop are both used for iteration in programming, but they serve different purposes and are used in different scenarios. Here are three key points to consider when deciding which loop to use:

  • Known vs. Unknown Iterations

    For Loop: Use a for loop when the number of iterations is known beforehand. For example, iterating over a fixed range of numbers or elements in a collection (like an array or list).

    While Loop: Use a while loop when the number of iterations is not known in advance and depends on a condition being met. This is useful for scenarios where you need to continue looping until a specific condition changes (e.g., reading input until a user decides to stop).

  • Control Structure Differences

    For

...
Continue reading "Programming Fundamentals: Loops, Structures, Functions & File Handling" »

Key Concepts: Node.js Modules, Express Routing, Body Parser

Computer science6.67 KB

Understanding Node.js Modules & Core Functionality

In Node.js, modules are fundamental. They represent reusable blocks of code that can be exported from one file and imported into another, promoting a modular and organized application structure. Node.js features a built-in module system, allowing developers to utilize core modules, create custom modules, or integrate third-party modules.

Core Modules in Node.js

Core modules are pre-packaged with Node.js, offering essential functionalities for common tasks like file system operations, HTTP request handling, and path manipulation.

Some commonly used core modules in Node.js are:

  • fs (File System): For interacting with the file system.
  • http (HTTP): For creating HTTP servers and clients.
  • path (Path)
...
Continue reading "Key Concepts: Node.js Modules, Express Routing, Body Parser" »

Software Quality Assurance: Strategies, Testing, and Design

Computer science16.47 KB

Strategic Approach: Begins with technical reviews to identify errors early. Moves from component-level (unit testing) to system-level integration. Different strategies suit conventional software, object-oriented software, and web applications.

Strategies for Different Systems

  • Conventional Software: Focus on module testing and integration.
  • Object-Oriented Software: Emphasis shifts to classes, attributes, and their collaborations.
  • Web Applications: Covers usability, interface, security, and environmental compatibility.

Key Strategic Issues: Define requirements quantitatively before testing. Develop robust software with self-testing capabilities. Use iterative testing cycles to refine quality. Employ independent testers alongside developers.

Regression

...
Continue reading "Software Quality Assurance: Strategies, Testing, and Design" »

Database Fundamentals: Normalization, Storage, and SQL Queries

Computer science4.08 KB

This document summarizes key concepts and solutions from previous database exam questions.


Relational Schema with Functional Dependencies

  • Schema: R(A, B, C, D, E, F)
  • Dependencies: C → F, E → A, EC → D, A → B
  1. Candidate Keys: CE
  2. Prime Attributes: C, E
  3. Second Normal Form (2NF):
    • No, because of partial dependencies:
      • C → F (partial dependency)
      • E → A, B (partial dependency)

EMP_DEPT Table Analysis

  1. Functional Dependencies:
    • Ssn → Ename, Bdate, Address, Dnumber, Dname, Dmgr_ssn
    • Dnumber → Dname, Dmgr_ssn
    • Dmgr_ssn → Dnumber, Dname
    • Dname → Dnumber, Dmgr_ssn
  2. First Normal Form (1NF):
    • Split names into first_name and last_name.
  3. Second Normal Form (2NF):
    • Already in 2NF because there are no partial dependencies.

EMP_PROJ Table Normalization

  1. Functional Dependencies:
...
Continue reading "Database Fundamentals: Normalization, Storage, and SQL Queries" »

C++ & C Programming Solutions: Algorithms & Patterns

Computer science5.13 KB

1. Anagram Detection: C++ String Comparison

This C++ program determines if two input strings are anagrams of each other. It achieves this by converting both strings to lowercase, sorting their characters alphabetically, and then comparing the sorted strings. If they are identical, the original strings are considered anagrams.


#include<bits/stdc++.h>
using namespace std;

int main(){
    string s2,s1;
    cin>>s1>>s2;
    transform(s1.begin(),s1.end(),s1.begin(),::tolower);
    transform(s2.begin(),s2.end(),s2.begin(),::tolower);
    sort(s1.begin(),s1.end());
    sort(s2.begin(),s2.end());
    cout<< (s2==s1);
}

2. Array Subarray: C++ Sliding Window Minimum

This C++ program attempts to find the maximum of minimums within...

Continue reading "C++ & C Programming Solutions: Algorithms & Patterns" »

Web Mining: Usage, Content, and Structure Analysis

Computer science4.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" »

JavaScript Fundamentals: Quick Reference Cheat Sheet

Computer science2.61 KB

JavaScript Fundamentals Cheat Sheet

1. Variables

  • let: Used to declare variables that are block-scoped. This means they only exist within the block they are defined in (e.g., inside a loop or an if statement).
  • const: Used for constants, which are also block-scoped. Once assigned a value, they cannot be reassigned.
  • var: Declares variables that are function-scoped. This can lead to issues with variable hoisting and is generally less preferred in modern JavaScript.

2. Functions

  • Functions are reusable blocks of code designed to perform a specific task. They can take parameters (inputs) and can return values.
  • Functions can be defined in different ways, including traditional function declarations and arrow functions, which provide a more concise syntax.

3.

...
Continue reading "JavaScript Fundamentals: Quick Reference Cheat Sheet" »