Computer Science Fundamentals - Study Notes

English for Computer Students

Edited By Sassan Azad - Fall 2012

Introduction to Computers

  • Computers are machines that manipulate data based on a list of instructions.

  • They come in various physical forms and have evolved significantly since their inception.

  • The concept of computers predates modern devices but was significantly realized in the mid-20th century (around 1940 - 1941).

  • Early electronic computers were massive, occupying entire rooms and consuming substantial energy, equating to several hundred modern PCs.

  • Modern computers utilize integrated circuits, leading to a significant reduction in size and a dramatic increase in computational capability.

    • Modern computers can even be compact enough to fit in a wristwatch powered by a small battery.

    • Personal computers have become synonymous with the information age.

Central Processing Unit (CPU)

  • The CPU is a crucial component of computers; early CPUs consisted of separate components but have transitioned to single integrated circuits known as microprocessors since the mid-1970s.

Components of CPU

  1. Control Unit

    • Directs various components of a computer by interpreting and executing instructions from programs.

    • Converts instructions into control signals for the other parts of the computer.

    • Advanced control systems can reorder instructions to enhance performance.

  2. Arithmetic/Logic Unit (ALU)

    • Performs arithmetic and logic operations.

    • Capable of operations such as:

      • Basic arithmetic (addition, subtraction)

      • Advanced functions (multiplication, division, trigonometry, etc.)

    • Processes integers and floating-point numbers, albeit with limited precision.

    • Can compare numbers and return boolean values (true/false); for example, checking whether a number is greater than another.

  3. Registers

    • Special memory cells within the CPU enabling faster data read/write operations than main memory

    • Typically ranges from 2 to 100 registers per CPU, used to store frequently needed data.

Memory

  • Early computers used magnetic core memory, replaced by semiconductor memory in modern systems.

  • Memory is structured as a list of cells, each with a unique address that can hold a numerical value.

Types of Memory

  1. Random Access Memory (RAM)

    • Volatile memory, can be read/written at any time while the computer is powered.

    • Data in RAM is lost when power is turned off.

  2. Read-Only Memory (ROM)

    • Non-volatile memory pre-loaded with essential data that does not change, like startup instructions.

    • The BIOS (Basic Input/Output System) is commonly found in ROM, guiding the OS loading process.

  3. Firmware

    • Software stored in ROM, more hardware-like as it remains unchanged, especially in embedded systems.

  4. Flash Memory

    • Retains data when powered off but is rewritable like RAM, though slower in speed.

    • Used in applications with less critical speed requirements.

  5. Cache Memory

    • A small, faster type of volatile memory that stores frequently accessed data, existing between registers and RAM to optimize performance.

Input/Output Devices (I/O)

  • I/O allows computers to communicate with external environments and includes peripherals like keyboards, mice, and displays.

  • Common I/O devices:

    • Hard disks, floppy disks, optical drives (serve dual input/output functions).

    • Computer networking via I/O mechanisms often involves devices that function as small standalone computers.

Multitasking and Processing

Multitasking

  • Allows a computer to switch between multiple programs efficiently, often seeming to execute several at once.

  • Achieved through interrupts that temporarily pause tasks to execute others.

  • While multitasking may appear to slow performance, it is often efficient since many programs await user input, allowing other tasks to run concurrently.

Multiprocessing

  • Systems may utilize multiple CPUs to distribute workloads, traditionally in supercomputers and mainframes.

  • Modern personal computers now often feature multi-core processors, enabling increased performance at lower operational levels.

Networking and the Internet

Historical Context

  • Computer networking began in the 1950s with systems like SAGE.

  • ARPANET was developed in the 1970s, forming the backbone of the Internet.

  • Networking capabilities redefined the role and resources of computers in sharing and accessing information.

Structure of the Internet

  • The Internet is a global set of interconnected networks using packet-switching via Internet Protocol (IP).

  • It supports a range of services: email, file transfer, and web pages.

Internet Protocol Suite
  • Organizes protocols into layers, where each provides foundational services for the layer above it.

  • Key protocols:

    • Transmission Control Protocol (TCP): ensures packets arrive in order.

    • Hypertext Transfer Protocol (HTTP): enables web browser access to the World Wide Web.

Common Uses of Internet

  1. Email

    • Enables the electronic exchange of messages, potentially exposing content to security risks due to unencrypted transit.

    • Intranet emails provide more security as they remain within an organization.

  2. File Sharing

    • Files can be sent as attachments or uploaded to shared platforms for access by others.

Programming Languages

  • Programming languages are formal languages with strict syntax and semantics for controlling computer behavior.

  • They differ from natural languages in their aim to eliminate ambiguity.

  • Can be compiled into machine language or interpreted directly.

  • Thousands exist, with uses ranging from general programming to specialized applications.

Operating Systems (OS)

  • An OS manages computer resources and provides interfaces for users and software to access these resources.

  • Basic functions include memory management, task prioritization, I/O device control, networking facilitation, and file system management.

  • Common OS include Microsoft Windows for desktops and Linux for servers.

Services Provided by OS

  1. Process Management

    • Enables concurrent execution of processes through multitasking.

    • Assigns CPU time based on process priority, optimizing user-interactive responsiveness.

  2. Memory Management

    • Tracks memory types and availability, manages virtual memory and address spaces to prevent interference between processes.

    • Introduces techniques like paging for inactive memory management to enhance resource efficiency.

  3. Disk and File Systems

    • Enable hierarchical file organization, with directory structure variances across different systems (e.g., Unix vs. Windows).

Computer Networking Fundamentals

  • Computer networking encompasses methods for communication between devices.

  • Networks can range from local (LAN) to wide-area (WAN) and can utilize wireless technologies.

Local Area Network (LAN)

  • A small network serving a limited geographic area, employing either peer-to-peer or client-server models.

Wide Area Network (WAN)

  • A network that spans a larger geographical area or connects offices in different countries.

Wireless Networks (WLAN, WWAN)

  • Networks operating without physical cables, using radio transceivers for connections, ideal for flexible setups.

Network Topology

  • Defines the physical and logical arrangements of network devices. Common types include:

    • Bus

    • Star

    • Ring

    • Mesh


These notes encompass the detailed descriptions of computers, their architecture, operation principles, and networking fundamentals relevant to computer science and engineering students.