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
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.
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.
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
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.
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.
Firmware
Software stored in ROM, more hardware-like as it remains unchanged, especially in embedded systems.
Flash Memory
Retains data when powered off but is rewritable like RAM, though slower in speed.
Used in applications with less critical speed requirements.
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
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.
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
Process Management
Enables concurrent execution of processes through multitasking.
Assigns CPU time based on process priority, optimizing user-interactive responsiveness.
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.
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.