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

Sort by
Subject
Level

Software Design Principles and UML Diagrams Explained

Classified in Computers

Written on in English with a size of 4.2 KB

Dimensions of Software Design

Software design involves several key dimensions:

  • Problem solving
  • Modeling
  • Specification
  • Organizing the solution
  • Communication
  • Economics and reuse
  • Maintenance and evolution

Design Approaches

Divide-and-Conquer

A problem is decomposed into subproblems that are worked on independently. This approach can be applied recursively for complex problems and allows managers to allocate work to multiple people.

Procedural Design

Design is viewed as a set of procedures that are composed:

  • Sequentially
  • Conditionally
  • Iteratively
  • Hierarchically

Borderline Procedural Design

In this approach, the main steps are not fixed. The user has choices with few constraints, and there is typically a main loop to find the next operation.

Event-Driven Design

This... Continue reading "Software Design Principles and UML Diagrams Explained" »

Responsibilities of the Transport Layer

Classified in Computers

Written on in English with a size of 1.9 KB

Transport Layer Responsibilities

Tracking Individual Conversations

At the transport layer, each set of data flowing between a source application and a destination application is known as a conversation (Figure 1). A host may have multiple applications that are communicating across the network simultaneously. Each of these applications communicates with one or more applications on one or more remote hosts. It is the responsibility of the transport layer to maintain and track these multiple conversations.

Segmenting Data and Reassembling Segments

Data must be prepared to be sent across the media in manageable pieces. Most networks have a limitation on the amount of data that can be included in a single packet. Transport layer protocols have services... Continue reading "Responsibilities of the Transport Layer" »

Computer Terminology Glossary

Classified in Computers

Written on in English with a size of 5.84 KB

A

  • ATTACHMENT: A file that is sent with an email.
  • BANDWIDTH: A measurement of the amount of information that a computer network can send or receive. High bandwidth allows images and websites to load quickly on the Internet.
  • BANNER: A rectangular graphic on a website that advertises a business.
  • CASE: An enclosure that holds the computer's components.
  • CODE: A set of words and symbols that give instructions to a computer.
  • CONTENT: The material on a web page, including text and graphics.
  • CROP: To cut off unwanted parts of an image.
  • DATABASE: A large group of data organized in a computer system. It allows you to search and find information easily.
  • DESKTOP: Everything that a user sees on a computer screen.
  • DESKTOP COMPUTER: A computer that is small enough to
... Continue reading "Computer Terminology Glossary" »

Understanding Open Standards, Smart Grids, and VoIP

Classified in Computers

Written on in English with a size of 3.04 KB

Key Features of an Open Standard

An "open standard" is characterized by two primary features:

  • Consensus-based: Developed through a consensus-driven process, ensuring no interested parties are excluded.
  • Publicly Available: Specifications are accessible to the public.

Smart Grid: Definition and Advantages

The smart grid represents the integration of telecommunications and informatics with the power/electricity grid.

Benefits of the Smart Grid:

  • Energy savings and improved consumption management.
  • Cost reduction.
  • Enhanced system reliability.
  • Improved electricity routing via intelligent switches.

OSI Model: Layer Identification

The 7-layer OSI model includes:

  • Layer 1: Physical
  • Layer 2: Data Link
  • Layer 3: Network

Advantages of IP over TDM for Businesses

Businesses

... Continue reading "Understanding Open Standards, Smart Grids, and VoIP" »

Data Mining and Machine Learning Techniques: A Comprehensive Overview

Classified in Computers

Written on in English with a size of 4.37 KB

KDD-- CRISP-DM = business understanding, data understanding, data prep, modeling, evaluation, deployment-- KDD- selection, preprocessing, transformation, mining, interp/eval-- classification = most frequently used, machine learning (supervised), output is nominal or ordinal categorical in nature -- assessment methods = predictive accuracy, speed, robustnest, scalability, interpretability-- confusion matrix formulae = accuracy = (TP + TN)/(TP+TN+FP+FN); true positive rate = (TP)/(TP+FN); true negative = TN/(TN+FP); precision = (TP)/(TP+FP); recall = (TP)/(TP+FN) -- overfitting = excessively complex model, can give bad predictions, underfitting- too flexible, also gives bad predictions-- k-fold cross validation- split data into k mutually exclusive... Continue reading "Data Mining and Machine Learning Techniques: A Comprehensive Overview" »

Web Requests, Concurrency Control & Distributed Systems

Classified in Computers

Written on in English with a size of 2.53 KB

Web Requests: GET vs. POST

GET: The request displays the password in the browser URL.

POST: Does not remain in history and does not display the password or on the web server log, not displayed in URL.

Controlling Access to Resources

Lock: Use the database.

  • Implement file lock.

Optimistic Concurrency Control

When using locks, there is a possibility of deadlocks.

Solution:

Use timeout: When starting the processing of a request, set a maximum execution timeout. When the timeout expires, the system suspects that a possible problem (such as a deadlock) has occurred.

When the timeout expires, which request should be aborted?

We may end up canceling a request that is almost complete.

Deadlock Prevention

To prevent deadlock, the system can set all the locks the... Continue reading "Web Requests, Concurrency Control & Distributed Systems" »

Understanding Software Engineering: Characteristics, Myths, and Paradigms

Classified in Computers

Written on in English with a size of 4.28 KB

Software Characteristics:
1.Software is a logical rather than a physical system element. 2.Software is developed or engineered rather than manufactured. 3.Software does not wear out. How do we measure software reliability? 4.Most software is customer-built rather than assembled from existing components.
  Software is often termed as a high-cost, low-quality product.

Software Crisis:

1.Software projects always run overtime and over budget. 2.Software is delivered with a high number of defects. 3.Software maintenance has been extremely difficult and awfully expensive. 4.It is difficult to keep pace with the growing demand for more software.

Software Myths:Management Myths:

1.Why should we change our approach to software development? We are doing
... Continue reading "Understanding Software Engineering: Characteristics, Myths, and Paradigms" »

Understanding Information Systems and Network Topologies

Classified in Computers

Written on in English with a size of 4.61 KB

1. Information System Definition and Functions

An information system is an organized system for the collection, organization, storage, and communication of information. It is the study of networks that people and organizations use to collect, filter, process, create, and distribute data. Essentially, it's a group of components that interact to produce information.

Objectives:

  • Efficient management of data and information
  • Improvement of business processes
  • Creation of value

The main functions are:

  • Capturing internal and external data
  • Data processing
  • Distributing information to users

2. Centralized vs. Distributed Information Systems

Centralized Systems

In a centralized system, all calculations are done on one particular computer.

Distributed Systems

In a distributed... Continue reading "Understanding Information Systems and Network Topologies" »

Protecting Against Phishing, Trojan Horses, Worms, and Viruses

Classified in Computers

Written on in English with a size of 2.75 KB

Phishing:

Hackers attempt to impersonate genuine organisations to fool the user into providing sensitive personal data. Emails are very official-looking, and they usually contain a link to a website which is an exact copy of the organisation's actual site, but it is operated by the criminals. When the user logs in with their details, the data is sent to the criminal. 

Guarding against phishing:

No reputable organisation would request personal details in an email or unsolicited phone call, because it does not need your sensitive data to access your account information. Never follow links to a bank/organisation- manually type it.

Trojan Horses:

Malware program that comes in disguise. Rely on tricking the user into downloading and running them. Involves... Continue reading "Protecting Against Phishing, Trojan Horses, Worms, and Viruses" »

Understanding HashMaps in Python: A Practical Example

Classified in Computers

Written on in English with a size of 7.43 KB

Understanding HashMaps in Python

Introduction

This document demonstrates a simple implementation of a HashMap in Python. A HashMap, also known as a hash table, is a data structure that implements an associative array abstract data type, a structure that can map keys to values. A hash function is used to compute an index into an array of buckets or slots, from which the desired value can be found.

Code Implementation

The following code provides a basic HashMap class in Python:

from random import *

class HashMap:
DEFAULT_SIZE = 4096
class item:
def __init__(self,k,v):
self.key = k
self.value = v

def __init__(self):
self.table = [None] * self.DEFAULT_SIZE
self.size = 0

def __eq__(self,
... Continue reading "Understanding HashMaps in Python: A Practical Example" »