Terms

Computational Thinking

Computational Thinking

Computational thinking (CT) is a study of the problem-solving skills and tactics involved in writing or debugging software programs and applications.

Computational thinking is closely related to computer science, although it focuses primarily on the big-picture process of abstract thinking used in developing computational programs rather than on the study of specific programming languages. As a result, it often serves as an introduction to more in-depth computer science courses.

The Six Principles of Computational Thinking

While approaches to the study of computational thinking vary, there are six primary principles of computational thinking, which include:

1.    Connecting Computing: Understanding the connection between computers and humans.

2.    Developing Computational Artifacts: Creating an algorithmic or computational model and the techniques needed to create artifacts that can be applied toward solving problems.

3.    Abstracting: Identifying and defining how information can be put to computational use, and modeling these abstractions in a computational context.

4.    Analyzing Problems and Artifacts: Evaluating the merit and feasibility of potential solutions to a problem as well as identifying and resolving possible errors with the solutions.

5.    Communicating: Effectively explaining the purpose and meaning of a problem and its potential computational solution(s).

6.    Working Effectively in Teams: Active collaboration and contributions from multiple participants on problem solving as well as the development and execution of computational solutions.

Origins of the Term Computational Thinking

Seymour Papert first used the term computational thinking in 1996 when his “An exploration in the space of mathematics educations” was published in the International Journal of Computers for Mathematical Learning.

The science of computational thinking is primarily taught on the collegiate level, although in recent years it has entered the K-12 primary school levels as part of STEM–focused education curriculums. Computational thinking classes were first introduced in 2005 at Carnegie Mellon University as a broad introduction to the field of computer science.

Uncategorized

quantum computing

quantum computing

First proposed in the 1970s, quantum computing relies on quantum physics by taking advantage of certain quantum physics properties of atoms or nuclei that allow them to work together as quantum bits, or qubits, to be the computer’s processor and memory. By interacting with each other while being isolated from the external environment, qubits can perform certain calculations exponentially faster than conventional computers.

Qubits Explained

Qubits do not rely on the traditional binary nature of computing. While traditional computers encode information into bits using binary numbers, either a 0 or 1, and can only do calculations on one set of numbers at once, quantum computers encode information as a series of quantum-mechanical states such as spin directions of electrons or polarization orientations of a photon that might represent a 1 or a 0, might represent a combination of the two or might represent a number expressing that the state of the qubit is somewhere between 1 and 0, or a superposition of many different numbers at once.

A quantum computer can do an arbitrary reversible classical computation on all the numbers simultaneously, which a binary system cannot do, and also has some ability to produce interference between various different numbers. By doing a computation on many different numbers at once, then interfering the results to get a single answer, a quantum computer has the potential to be much more powerful than a classical computer of the same size. In using only a single processing unit, a quantum computer can naturally perform myriad operations in parallel.

Quantum computing is not well suited for tasks such as word processing and email, but it is ideal for tasks such as cryptography and modeling and indexing very large databases.

Terms

RAM – random access memory

RAM – random access memory

RAM (pronounced ramm) is an acronym for random access memory, a type of computer memory that can be accessed randomly; that is, any byte of memory can be accessed without touching the preceding bytes. RAM is found in servers, PCs, tablets, smartphones and other devices, such as printers.

Main Types of RAM

There are two main types of RAM:

  1. DRAM (Dynamic Random Access Memory)
  2. SRAM (Static Random Access Memory)

RAM Memory

DRAM (Dynamic Random Access Memory) – The term dynamic indicates that the memory must be constantly refreshed or it will lose its contents.  DRAM is typically used for the main memory in computing devices. If a PC or smartphone is advertised as having 4-GB RAM or 16-GB RAM, those numbers refer to the DRAM, or main memory, in the device.

More specifically, most of the DRAM used in modern systems is synchronous DRAM, or SDRAM. Manufacturers also sometimes use the acronym DDR (or DDR2, DDR3, DDR4, etc.) to describe the type of SDRAM used by a PC or server. DDR stands for double data rate, and it refers to how much data the memory can transfer in one clock cycle.

In general, the more RAM a device has, the faster it will perform.

SRAM (Static Random Access Memory) – While DRAM is typically used for main memory, today SRAM is more often used for system cache. SRAM is said to be static because it doesn’t need to be refreshed, unlike dynamic RAM, which needs to be refreshed thousands of times per second. As a result, SRAM is faster than DRAM. However, both types of RAM are volatile, meaning that they lose their contents when the power is turned off.

The Difference Between Memory, RAM and Storage

Sometimes, people get confused about the difference between memory and storage, in part because both can be measured in megabytes (MB), gigabytes (GB) and terabytes (TB).

In common usage, the term RAM is synonymous with main memory. This is where a computing system stores data that it is actively using. Storage systems, such as hard drives, network storage devices or cloud storage, are where a system saves data that it will need to access later.

Computing systems can retrieve data from RAM very quickly, but when a device powers down, all the data that was in memory goes away. Many people have had the experience of losing a document they were working on after an unexpected power outage or system crash. In these cases, the data was lost because it was stored in system memory, which is volatile.

By contrast, storage is slower, but it can retain data when the device is powered down. So, for example, if a document has been saved to a hard drive prior to a power outage or system crash, the user will still be able to retrieve it when the system is back up and running.

Storage is usually less expensive than RAM on a per-gigabyte basis. As a result, most PCs and smartphones have many times more gigabytes of storage than gigabytes of RAM.

Terms

SSD – solid state drive

SSD – solid state drive

Abbreviated SSD, a solid state drive is a high-performance plug-and-play storage device that contains no moving parts. SSD components include either DRAM or EEPROM memory boards, a memory bus board, a CPU, and a battery card.

Because they contain their own CPUs to manage data storage, they are a lot faster (18MBps for SCSI-II and 35 MBps for UltraWide SCSI interfaces) than conventional rotating hard disks ; therefore, they produce highest possible I/O rates.

SSDs are most effective for server applications and server systems, where I/O response time is crucial. Data stored on SSDs should include anything that creates bottlenecks, such as databasesswap files, library and index files, and authorization and login information.

While solid state drive (SSD) is the most common acronym, SSD is also used for solid state disk drive, even though it does not contain an actual disk.

Terms

operating system – OS

operating system – OS

The operating system (OS) is the most important program that runs on a computer. Every general-purpose computer must have an operating system to run other programs and applications. Computer operating systems perform basic tasks, such as recognizing input from the keyboard, sending output to the display screen, keeping track of files and directories on the storage drives, and controlling peripheral devices, such as printers.

For large systems, the operating system has even greater responsibilities and powers. It is like a traffic cop  it makes sure that different programs and users running at the same time do not interfere with each other. The operating system is also responsible for security, ensuring that unauthorized users do not access the system.

A Software Platform for Applications

Operating systems provide a software platform on top of which other programs, called application programs, can run. The application programs must be written to run on top of a particular operating system. Your choice of operating system, therefore, determines to a great extent the applications you can run. For PCs, the most popular operating systems are DOS, OS/2, and Windows, but others are available, such as Linux.

Operating System (OS) Diagram
              Image: Operating System Diagram

Classification of Operating systems

  • Multi-user: Allows two or more users to run programs at the same time. Some operating systems permit hundreds or even thousands of concurrent users.
  • Multiprocessing : Supports running a program on more than one CPU.
  • Multitasking : Allows more than one program to run concurrently.
  • Multithreading Allows different parts of a single program to run concurrently.
  • Real time: Responds to input instantly. General-purpose operating systems, such as DOS and UNIX, are not real-time.
  • User Interaction With the OS

    As a user, you normally interact with the operating system through a set of commands. For example, the DOS operating system contains commands such as COPY and RENAME for copying files and changing the names of files, respectively. The commands are accepted and executed by a part of the operating system called the command processor or command line interpreter. Graphical user interfaces allow you to enter commands by pointing and clicking at objects that appear on the screen.

    Operating System Recommended Reading: The History of Windows Operating Systems (Windows OS) from 1985 to present day.

    Most Popular Desktop Operating Systems

    The three most popular types of operating systems for personal and business computing include Linux, Windows and Mac.

    Windows

    Microsoft Windows is a family of operating systems for personal and business computers. Windows dominates the personal computer world, offering a graphical user interface (GUI), virtual memory management, multitasking, and support for many peripheral devices.

    Mac

    Mac OS is the official name of the Apple Macintosh operating system. Mac OS features a graphical user interface (GUI) that utilizes windows, icons, and all applications that run on a Macintosh computer have a similar user interface.

    Linux

    Linux is a freely distributed open source operating system that runs on a number of hardware platforms. The Linux kernel was developed mainly by Linus Torvalds and it is based on Unix.

    According to Netmarketshare.com, the most used desktop operating system and versions used on PCs in July 2017 are:

    • Windows 7 (48.91%)
    • Windows 10 (27.63%)
    • Windows 8.1 (6.48%)
    • Windows XP (6.10%)
    • Mac OS X 10.12 (3.52%)
    • Linux (2.53%)
    • Windows 8 (1.42%)
    • Mac OS X 10.11 (1.17%)
    • Macc OS X 10.10 (0.76%)

    Desktop Operating System Market Share

    Image Source: Desktop Operating System Market Share (Net Applications.com, July 2017)

    Mobile Operating Systems

    In the same way that a desktop OS controls your desktop or laptop computer, a mobile operating system is the software platform on top of which other programs can run on mobile devices, however, these systems are designed specifically to run on mobile devices such as mobile phones, smartphones, PDAs, tablet computers and other handhelds. The mobile OS is responsible for determining the functions and features available on your device, such as thumb wheel, keyboards, WAP, synchronization with applications, email, text messaging and more. The mobile OS will also determine which third-party applications (mobile apps) can be used on your device.

    Operating System Recommended Reading: Mobile Operating Systems (Mobile OS) Explained.

    Terms

    helium hard disk drive (HDD)

    helium hard disk drive (HDD)

    A helium drive is a high capacity hard disk drive (HDD) that is helium-filled. This hard drive technology replaces the air inside the HDD with helium and is hermetically sealed during manufacturing. Helium drive technology is compatible with most industry-standard magnetic recording technologies including perpendicular magnetic recording (PMR), two-dimensional magnetic recording (TDMR), shingled magnetic recording (SMR), microwave-assisted magnetic recording (MAMR), heat-assisted magnetic recording (HAMR) and bit-patterned media (BPM).

    Helium Hard Drive

    Image Description: Western Digital Ultrastar DC HC530 14-TB

    Helium Improves Efficiency

    Compared to air, helium is one-seventh the density. In traditional drives, the air inside typically creates an amount of drag on the platters, requiring more energy to spin. Replacing the air with helium reduces the amount of energy needed to spin the platters. By some estimates, helium HDDs may be up to 20 percent more efficient than air-filled drives. Additionally, helium drives offer higher sequential data transfer rates as a result of the overall increased areal density.

    Helium Storage in the Data Center

    Newer helium hard disk drives have provided an advantage in the data center, specifically, cloud and exascale data centers, where 14-TB plus capacity drives can maximize data storage capacity per rack while lowering power consumption to meet TCO objectives. Helium drives have lower cooling requirements which reduce overall energy costs.

    As helium-filled drive technology advances, so does the storage capacity of the drives. In fact, Western Digital has announced (Sep 2019) a 20-TB helium-filled drive, using nine platters, each with a capacity of about 2.22TB and a 2.5M hour mean time before failure (MTBF) rating and feature SATA or SAS interface.

    Helium Drives at Home

    Currently, helium-filled drives that focus on the consumer market are limited. Standard drives are 3.5″ drives that use perpendicular magnetic recording (PMR) platters in a helium-filled enclosure, in capacities starting at 10-TB. The drives are compatible with specific lines of desktops and entry-level direct-attached storage enclosures.

    Helium Drive History

    The first helium-filled hard drive (6-TB capacity) drive was made commercially available by HGST, a Western Digital subsidiary, in November, 2013. Today, several hard drive manufacturers, Including Western Digital, Seagate and Toshiba offer helium hard disk drives.

    Terms

    cloud computing

    cloud computing

    Cloud computing is a type of computing that relies on shared computing resources rather than having local servers or personal devices to handle applications.

    In its most simple description, cloud computing is taking services (cloud services) and moving them outside an organization’s firewall. Applications, storage and other services are accessed via the Web. The services are delivered and used over the Internet and are paid for by the cloud customer on an as-needed or pay-per-use business model.

    Recommended Reading: Facts About Cloud Computing.

    Cloud Computing Checklist

    Jump to a topic in this article:

    NIST Cloud Computing Introduction and Definition

    The National Institute of Stands and Technology (NIST) has a more comprehensive definition of cloud computing. It describes cloud computing as “a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.”

    Characteristics of Cloud Environments

    According to the NIST, all true cloud environments have five key characteristics:

    1. On-demand self-service: This means that cloud customers can sign up for, pay for and start using cloud resources very quickly on their own without help from a sales agent.
    2. Broad network access: Customers access cloud services via the Internet.
    3. Resource pooling: Many different customers (individuals, organizations or different departments within an organization) all use the same servers, storage or other computing resources.
    4. Rapid elasticity or expansion: Cloud customers can easily scale their use of resources up or down as their needs change.
    5. Measured service: Customers pay for the amount of resources they use in a given period of time rather than paying for hardware or software upfront. (Note that in a private cloud, this measured service usually involves some form of chargebacks where IT keeps track of how many resources different departments within an organization are using.)

    Cloud Computing

    Cloud Delivery Models

    Cloud computing can be divided into several sub-categories depending on the physical location of the computing resources and who can access those resources.

    Public cloud vendors offer their computing services to anyone in the general public. They maintain large data centers full of computing hardware, and their customers share access to that hardware.

    By contrast, a private cloud is a cloud environment set aside for the exclusive use of one organization. Some large enterprises choose to keep some data and applications in a private cloud for security reasons, and some are required to use private clouds in order to comply with various regulations.

    Organizations have two different options for the location of a private cloud: they can set up a private cloud in their own data centers or they can use a hosted private cloud service. With a hosted private cloud, a public cloud vendor agrees to set aside certain computing resources and allow only one customer to use those resources.

    hybrid cloud is a combination of both a public and private cloud with some level of integration between the two. For example, in a practice called “cloud bursting” a company may run Web servers in its own private cloud most of the time and use a public cloud service for additional capacity during times of peak use.

    A multi-cloud environment is similar to a hybrid cloud because the customer is using more than one cloud service. However, a multi-cloud environment does not necessarily have integration among the various cloud services, the way a hybrid cloud does. A multi-cloud environment can include only public clouds, only private clouds or a combination of both public and private clouds.

    Recommended Reading: Webopedia’s Cloud Dictionary.

    Common Cloud Service Models

    Cloud services are typically deployed based on the end-user (business) requirements. The primary services include the following:

    1. Software as a Service (SaaS)

    SaaS is a software delivery method that provides access to software and its functions remotely as a Web-based service.  Instead of paying an upfront fee to purchase and/or license software, SaaS customers pay a recurring (often monthly or annual) fee to subscribe to the service. In general, they can access the SaaS from any Internet-connected device, any time day or night. Well-known examples of SaaS include Salesforce.com, Microsoft Office 365, Google G Suite, Dropbox, Adobe Creative Cloud and others.

    2. Platform as a Service (PaaS)

    PaaS is  a computing platform being delivered as a service. Here the platform is outsourced in place of a company or data center purchasing and managing its own hardware and software layers. Most PaaSes are designed for developers and aim to simplify the process of creating and deploying software. For example, a Web developer might use a PaaS that includes operating system software, Web server software, a database and related Web development tools. The leading PaaS vendors include Amazon Web Services, Microsoft Azure, IBM and Google Cloud Platform.

    3. Infrastructure as a Service (IaaS)

    Computer infrastructure, such as servers, storage and networking delivered as a service.  IaaS is popular with enterprises that appreciate the convenience of having the cloud vendor manage their IT infrastructure. They also sometimes see cost savings as a result of paying only for the computing resources they use. The leading IaaS vendors include Amazon Web Services, Microsoft Azure, IBM and Google Cloud Platform.

    While SaaS, PaaS and IaaS are the three most common types of cloud services, cloud computing vendors sometimes also use other “as a service” labels to describe their offerings. For example, some offer database as a service (DBaaS), mobile back-end as a service (MBaaS), functions as a service (FaaS) or others.

    Benefits of Cloud Computing

    Consumers and organizations have many different reasons for choosing to use cloud computing services. They might include the following:

    • Convenience
    • Scalability
    • Low costs
    • Security
    • Anytime, anywhere access
    • High availability
    Terms

    application (application software)

    application (application software)

    An application is any program, or group of programs, that is designed for the end user. Applications software (also called end-user programs) include such things as database programs, word processors, Web browsers and spreadsheets.

    application
    Image: Application Software Diagram

    Figuratively speaking, applications sit on top of systems software because they are unable to run without the operating system and system utilities. Systems software consists of low-level programs that interact with the computer at a very basic level. This includes operating systemscompilers, and utilities for managing computer resources.

    Application Delivery Mechanisms

    Developers have many different options for getting their applications to end users. In decades past, nearly all applications were installed directly on the users’ PCs and/or servers.

    Today, many applications are delivered as Web applications. The code for these applications resides on a Web server, and users access the application via a Web browser. Common examples of Web applications include Web-based email, social media platforms, wikis and online auctions.

    The distinctions between Web applications and websites can be a bit fuzzy. However, in general, websites have primarily static content with few interactive elements, while Web applications have primarily dynamic content and are designed for user interaction.

    A third type, software-as-a-service (SaaS) applications, is closely related to Web applications. As with Web applications, users generally access SaaS applications via a Web browser. However, some SaaS applications can also be accessed via a native mobile app on a device like a smartphone or a tablet. Also, user data for a SaaS application is stored in a cloud computing environment (which may or may not be the case for Web applications), and many SaaS applications charge a subscription fee, which is less common for Web applications.

    Well-known examples of SaaS applications include Salesforce.com, Microsoft Office 365 and Adobe Creative Cloud.

    Recommended Reading: Webopedia’s enterprise application definition.

    App Versus Application

    Many people use the words app and application interchangeably, but purists will tell you that the two are slightly different. App is used to describe a type of application that has a single functionality, whereas an application may handle a number of functions. See Webopedia’s app definition to learn more.

    Terms

    HTTP – HyperText Transfer Protocol

    HTTP – HyperText Transfer Protocol

    http in a web address

    HTTP means HyperText Transfer Protocol. HTTP is the underlying protocol used by the World Wide Web and this protocol defines how messages are formatted and transmitted, and what actions Web servers and browsers should take in response to various commands.

    For example, when you enter a URL in your browser, this actually sends an HTTP command to the Web server directing it to fetch and transmit the requested Web page. The other main standard that controls how the World Wide Web works is HTML, which covers how Web pages are formatted and displayed.

    Recommended Reading: Webopedia’s HTTP response header and HTTP request header definitions.

    HTTP is a Stateless Protocol

    HTTP is called a stateless protocol because each command is executed independently, without any knowledge of the commands that came before it. This is the main reason that it is difficult to implement Web sites that react intelligently to user input. This shortcoming of HTTP is being addressed in a number of new technologies, including ActiveXJavaJavaScript and cookies.

    HTTP Status Codes are Error Messages

    Errors on the Internet can be quite frustrating — especially if you do not know the difference between a 404 error and a 502 error. These error messages, also called HTTP status codes are response codes given by Web servers and help identify the cause of the problem.

    For example, “404 File Not Found” is a common HTTP status code. It means the Web server cannot find the file you requested. This means the webpage or other document you tried to load in your Web browser has either been moved or deleted, or you entered the wrong URL or document name.

    Knowing the meaning of the HTTP status code can help you figure out what went wrong. On a 404 error, for example, you could look at the URL to see if a word looks misspelled, then correct it and try it again. If that doesn’t work, backtrack by deleting information between each backslash, until you come to a page on that site that isn’t a 404. From there you may be able to find the page you’re looking for.

    Additional information on HTTP error codes can be found in Webopedia’s common HTTP status codes article.

    Custom 404 Error Pages

    Many websites create custom 404 error pages that will help users locate a valid page or document within the website. For example, if you land on a 404 File Not Found page via Webopedia.com, a custom error page will load providing quick links to on-site navigation and site search features to help you find what you were looking for.

    Webopedia 404 Error Page
    Image: Webopedia’s custom “404 File Not Found” (HTTP status code) page.

    What about HTTPS?

    A similar abbreviation, HTTPS means Hyper Text Transfer Protocol Secure. Basically, it is the secure version of HTTP. Communications between the browser and website are encrypted by Transport Layer Security (TLS), or its predecessor, Secure Sockets Layer (SSL).

    Terms

    URL – Uniform Resource Locator

    URL – Uniform Resource Locator

    URL is the abbreviation of Uniform Resource Locator and is defined as the global address of documents and other resources on the World Wide Web. To visit this website, for example, you’ll go to the URL www.webopedia.com.

    We all use URLs to visit webpages and other resources on the web. The URL is an address that sends users to a specific resource online, such as a webpage, video or other document or resource. When you search Google, for example, the search results will display the URL of the resources that match your search query. The title in search results is simply a hyperlink to the URL of the resource.

    A URL is one type of Uniform Resource Identifier (URI); the generic term for all types of names and addresses that refer to objects on the World Wide Web.

    What Are the Parts of a URL?

    The first part of the URL is called a protocol identifier and it indicates what protocol to use, and the second part is called a resource name and it specifies the IP address or the domain name where the resource is located. The protocol identifier and the resource name are separated by a colon and two forward slashes.

    URL

    For example, the two URLs below point to two different files at the domain webopedia.com. The first specifies an executable file that should be fetched using the FTP protocol; the second specifies a webpage that should be fetched using the HTTP protocol:

    ftp://www.webopedia.com/stuff.exe
    http://www.webopedia.com/index.html

    Accessing a URL that ends in .com, .html, or .htm will display a webpage located at that address. If, for example, you visit a URL that ends in .jpg or .png you can expect to view an image file.

    Web Address is a URL with HTTP/HTTPS

    The term “web address” is a synonym for a URL that uses the HTTP or HTTPS protocol. The Uniform Resource Locator (URL) was developed by Tim Berners-Lee in 1994 and the Internet Engineering Task Force (IETF) URI working group. Today, the format of the URL has not changed. The URL format is specified in RFC 1738 Uniform Resource Locators (URL).

    In Programming: The URL Class

    Note that in object-oriented programming, such as Java, programs can use a class (a category of objects) called URL. You can create a URL object to represent the URL address.

    Recommended Reading: See Java Tutorials: Working with URLs in the Related Links section below for additional information on using the URL object in a Java program.