0% found this document useful (0 votes)
11 views

Lecture1_Computing

MATlab programming 1

Uploaded by

AMDCrafto
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views

Lecture1_Computing

MATlab programming 1

Uploaded by

AMDCrafto
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 19

Computing and Software Engineering

GET211

Emmanuel Ali
Ayibaemi Ledum

October 7, 2024

Emmanuel Ali, Ayibaemi Ledum 1st Semester October 7, 2024 1 / 19


Outline

1 Introduction

Emmanuel Ali, Ayibaemi Ledum 1st Semester October 7, 2024 2 / 19


Computer

A computer is an electronic device designed to accept input, process it


according to specified instructions, store the results, and provide
output. It can perform calculations, manipulate data, store
information, and execute complex tasks much faster and more
accurately than humans.
The core functions of a computer can be summarized in four steps:
- Input: Receiving data from the outside world through input devices.
- Processing: Performing operations on the data according to a set of
instructions (software).
- Storage: Saving data for future use.
- Output: Presenting the results of computations to the user.

Emmanuel Ali, Ayibaemi Ledum 1st Semester October 7, 2024 3 / 19


Computing

Computing is a broad field encompassing the design, development,


application, and study of computer systems, software, hardware, algorithms,
and the interaction of these elements with data. At its core, computing refers
to the use of computers and computational systems to perform a wide variety
of tasks, from simple data processing to complex artificial intelligence
applications.
Computing is the process of utilizing computer technology to solve problems,
automate tasks, or manage information. It involves:
- Data manipulation: Input, process, output, and storage of data.
- Problem-solving: Devising algorithms and using programming to perform
specific tasks.
- Information processing: Transforming raw data into meaningful information.

Emmanuel Ali, Ayibaemi Ledum 1st Semester October 7, 2024 4 / 19


Computer Organization

Computer Organization refers to the operational structure and


functionality of a computer system, which includes the arrangement
and integration of hardware components to ensure effective data
processing and overall system performance. It focuses on the design,
connection, and interaction of components such as the CPU, memory,
and input/output systems. The study of computer organization bridges
the gap between hardware and software, helping to understand how a
computer executes instructions, manages data, and performs tasks.
The main aspects of computer organization, including its components,
instruction cycle, types of memory, input/output organization, and the
role of performance factors such as pipelining and parallelism.

Emmanuel Ali, Ayibaemi Ledum 1st Semester October 7, 2024 5 / 19


Components of a Computer
Computers are made up of two primary components: hardware and software.
Hardware
Hardware refers to the physical components of a computer system. The main parts include:
1. Central Processing Unit (CPU): Often referred to as the ”brain” of the computer, the CPU performs all
processing tasks. It consists of two main units:
- Arithmetic Logic Unit (ALU): Performs arithmetic and logical operations.
- Control Unit (CU): Directs the flow of data between the CPU, memory, and input/output devices.
- Registers: Registers are small, high-speed storage locations within the CPU that store data temporarily
during instruction execution. There are different types of registers, such as geeneral-purpose registers and
special-purpose registers.
2. Memory (RAM and ROM):
-RAM (Random Access Memory): Temporary storage that holds data and instructions the CPU is
currently using. It is volatile, meaning data is lost when the computer is turned off.
- ROM (Read-Only Memory): Permanent memory that contains essential instructions for booting up the
system.
3. Storage Devices:
- Hard Disk Drives (HDD) and Solid-State Drives (SSD) store data permanently, including the operating
system, applications, and files.
- External Storage: Devices like USB drives and external hard drives provide additional storage capacity.
4. Input Devices:
Devices used to provide data to the computer, such as a keyboard, mouse, scanner, and microphone.
5. Output Devices:
Devices that convey processed data to the user, including monitors (for visual output), printers (for
printed output), and speakers (for audio output).
6. Motherboard:
- The main circuit board that connects the CPU, memory, storage, and input/output devices. It acts as a
communication hub for all components.
7. Power Supply Unit (PSU):
- Supplies power to the computer, converting electrical energy from an outlet into the correct voltage
needed by the internal components.

Emmanuel Ali, Ayibaemi Ledum 1st Semester October 7, 2024 6 / 19


Components of a Computer

Software
Software refers to the programs and applications that run on the
hardware, enabling users to perform tasks. It is divided into two main
categories:
1. System Software:
- Operating System (OS): The most essential system software that
manages hardware and software resources (e.g., Windows, macOS,
Linux). It provides an interface for users and applications to interact
with hardware.
- Utility Software: System maintenance and optimization tools such as
disk defragmenters, antivirus software, and file management utilities.
2. Application Software:
Programs designed to perform specific tasks, such as word processors
(e.g., Microsoft Word), spreadsheets (e.g., Excel), web browsers (e.g.,
Chrome), and media players (e.g., VLC).

Emmanuel Ali, Ayibaemi Ledum 1st Semester October 7, 2024 7 / 19


The Instruction Cycle
The instruction cycle is the process by which a computer retrieves an
instruction from memory, decodes it, executes it, and then stores the result.
The instruction cycle consists of several stages, often referred to as the
fetch-decode-execute cycle:
Fetch
- The CPU fetches the instruction from memory. The Program Counter (PC)
holds the memory address of the next instruction to be executed.
- The fetched instruction is then placed in the Instruction Register (IR) for
decoding.
Decode
- The Control Unit decodes the fetched instruction to determine what
operation needs to be performed.
- Based on the decoded instruction, the Control Unit directs the CPU to
access the necessary data (from registers or memory) and prepare for
execution.
Execute
- The CPU executes the instruction, which may involve performing
arithmetic/logic operations in the ALU, moving data between registers, or
interacting with memory or I/O devices.
Store
- After execution, the result of the operation is written back to memory or a
register, and the Program Counter is updated to point to the next instruction.

Emmanuel Ali, Ayibaemi Ledum 1st Semester October 7, 2024 8 / 19


Memory Organization
Memory organization refers to the structure and hierarchy of memory in a
computer system. The memory hierarchy is organized to balance speed, cost,
and size, ensuring efficient data retrieval and storage.
Memory Hierarchy
The memory hierarchy typically consists of several levels, from the fastest and
smallest to the slowest and largest:
1. Registers: Located inside the CPU, they provide the fastest data access.
However, they are very small in size.
2. Cache Memory: Cache memory is faster than RAM and is used to store
frequently accessed data. There are different levels of cache:
- L1 Cache: Located inside the CPU and very small (typically a few KBs).
- L2 Cache: Larger than L1 cache, but slower. It may be located inside or
outside the CPU.
- L3 Cache: Shared among multiple CPU cores, offering additional storage for
frequently used data.
3. Main Memory (RAM): RAM stores data and instructions that the CPU is
currently processing. It is slower than cache memory but provides more
storage.
4. Secondary Storage: Includes HDDs and SSDs, providing persistent data
storage. Secondary storage is much slower than primary memory but offers
very large capacity.
5.Virtual Memory: Virtual memory is a technique that allows the computer
to compensate for shortages of physical memory by using a portion of the
secondary storage (usually a hard drive) as an extension of RAM.
This enables
Emmanuel the system
Ali, Ayibaemi Ledum to run large programs or multiple October
1st Semester programs7, 2024 9 / 19
Figure 1: Memory Organisation (culled from
https://witscad.com/course/computer-architecture/chapter/memory-
characteristics-and-organisation)

Emmanuel Ali, Ayibaemi Ledum 1st Semester October 7, 2024 10 / 19


Input/Output Organization
I/O systems allow the CPU to communicate with external devices such as
keyboards, monitors, printers, and external storage. Input/output
organization defines how data is transferred between the CPU and peripheral
devices.
I/O Techniques
- Programmed I/O: The CPU directly controls I/O operations and waits for
the completion of data transfers. This method is simple but inefficient, as the
CPU is idle during the transfer process.
- Interrupt-driven I/O: I/O devices interrupt the CPU when they are ready
for data exchange. This allows the CPU to continue performing other tasks
while waiting for the I/O device to signal that it is ready.
- Direct Memory Access (DMA): DMA is used for high-speed data transfer. A
DMA controller manages the data transfer between I/O devices and memory,
bypassing the CPU and freeing it to perform other tasks.
Buses A bus is a communication system that transfers data between
components in a computer. Buses carry data, instructions, and control signals
between the CPU, memory, and I/O devices. There are different types of
buses:
- Data bus: Carries data between the CPU, memory, and I/O devices.
- Address bus: Carries the memory addresses that the CPU uses to access
data.
- Control bus: Carries control signals to coordinate operations between the
CPU and other components.
Emmanuel Ali, Ayibaemi Ledum 1st Semester October 7, 2024 11 / 19
Types of Computers

Computers come in various forms depending on their size, power, and purpose. The major types include:
Personal Computers (PCs): Personal computers are designed for individual use, typically involving
tasks like word processing, browsing the internet, and gaming. PCs can be categorized as:
- Desktop Computers: Large, stationary computers with separate components (monitor, keyboard, CPU
tower, etc.).
- Laptops: Portable computers that integrate all components into a single device.
- Tablets: Touchscreen devices with a portable form factor, often with limited computing power compared
to laptops.
Servers: Servers are powerful computers designed to manage and distribute resources, data, and services
to other computers (clients) in a network. Types of servers include:
- Web Servers: Host websites and serve web pages to users.
- Database Servers: Store and manage large databases for applications and users.
- File Servers: Provide centralized storage and management of files.
Mainframes: Mainframes are high-performance computers used by large organizations for bulk data
processing, such as in banking transactions, airline reservations, and census calculations. They can handle
and process thousands of transactions simultaneously.
Supercomputers: Supercomputers are the most powerful type of computers, designed for extremely
complex and calculation-intensive tasks like weather forecasting, scientific simulations, and cryptographic
analysis. They consist of thousands of processors working in parallel.
Embedded Systems: Embedded systems are specialized computers built into other devices, designed to
perform a specific function. Examples include the control systems in cars, medical devices, household
appliances, and industrial machines.

Emmanuel Ali, Ayibaemi Ledum 1st Semester October 7, 2024 12 / 19


Programming and Programming Languages

Programming is the process of writing instructions for computers to


execute. Programming languages, such as Python, Java, MATLAB,
Rust, Javascript and C++, are tools used to express algorithms:
- Syntax and semantics: Programming languages have specific syntax
(rules on how code is written) and semantics (the meaning of code).
- Compilation vs. Interpretation: Some languages (like C++) are
compiled into machine code, while others (like Python) are interpreted
in real-time.

Emmanuel Ali, Ayibaemi Ledum 1st Semester October 7, 2024 13 / 19


How a Computer Works

The operation of a computer involves the interaction of its components


to process data.
1. Input: The user provides data through an input device (e.g.,
keyboard, mouse).
2. Processing: The data is transferred to the CPU via the
motherboard. The CPU fetches instructions from memory (RAM) and
performs calculations using the Arithmetic Logic Unit (ALU).
3. Memory and Storage: During processing, temporary data is stored
in RAM. Once the task is complete, the data may be saved to
permanent storage (HDD/SSD) for future use.
4. Output: The processed data is sent to output devices (e.g., monitor,
printer) so the user can see the results.
5. Software Control: The operating system manages the
communication between hardware components and user applications,
ensuring smooth operation.

Emmanuel Ali, Ayibaemi Ledum 1st Semester October 7, 2024 14 / 19


Areas of Computing
Theoretical Computer Science: Theoretical computing deals with the
fundamental principles of what can be computed and how: - Automata
theory: The study of abstract machines and the computational problems they
can solve.
- Computability theory: Investigates the limits of what problems can be
solved on a computer.
- Complexity theory: Classifies problems based on their inherent difficulty
(e.g., P vs. NP problems).
Algorithms and Data Structures: Efficient problem-solving in computing
often involves: - Algorithms: Techniques like divide-and-conquer, dynamic
programming, and greedy algorithms are used to solve problems.
- Data structures: Methods for organizing data, such as arrays, linked lists,
stacks, queues, trees, and graphs.
Software Engineering: Software engineering is the systematic development
of software. It involves: - Software Development Life Cycle (SDLC):
Planning, design, development, testing, deployment, and maintenance. - Agile
methodologies: Frameworks like Scrum that prioritize iterative development,
collaboration, and adaptability. - DevOps: Integrates development and
operations teams to streamline software deployment and maintenance.
Cybersecurity: With increased reliance on computers and the internet,
securing systems and data is crucial:
- Encryption: Techniques to secure communication (e.g., HTTPS).
- Cyber threats: Malware, phishing, denial-of-service attacks, and more.
- Defensive measures: Firewalls, intrusion detection systems (IDS), and
penetration
Emmanuel testing.Ledum
Ali, Ayibaemi 1st Semester October 7, 2024 15 / 19
Artificial Intelligence (AI) and Machine Learning (ML)
- AI: The branch of computing that deals with creating systems that can
mimic human intelligence, such as voice recognition (Siri, Alexa) or visual
recognition. - ML: A subset of AI where systems learn from data and improve
over time. Key areas include: - **Supervised learning**: Training models on
labeled data.
- Unsupervised learning: Finding patterns in unlabeled data.
- Neural networks: Algorithms inspired by the human brain that power deep
learning.
Databases and Big Data
- Databases: Structured systems for storing and retrieving data, typically
using SQL (Structured Query Language) for relational databases like MySQL
and PostgreSQL.
- NoSQL Databases: Designed for large-scale data (Big Data), where
scalability and flexibility are key (e.g., MongoDB, Cassandra).
- Big Data: Deals with massive datasets that require specialized storage and
processing solutions, often leveraging distributed systems (e.g., Hadoop,
Spark).
Networks and Internet Computing Computing is not limited to isolated
systems; networks allow communication between them:
- Networking basics: IP addresses, TCP/IP, DNS, and protocols for data
transmission over networks.
- The Internet: A global network of computers, enabling the World Wide
Web, email, and cloud services.
- Cloud Computing: Provides on-demand access to computing resources (e.g.,
AWS, Microsoft Azure) without owning physical infrastructure.
Emmanuel Ali, Ayibaemi Ledum 1st Semester October 7, 2024 16 / 19
Applications of Computing

Computers play a pivotal role in various sectors:


- Business: Computers are essential for managing financial records, payroll
systems, customer databases, and enterprise resource planning (ERP)
systems.
- Healthcare: Medical records, diagnostic tools, and research rely on
computers. Computers power MRI machines, robotic surgeries, and drug
discovery algorithms.
- Education: E-learning platforms, simulations, and educational software
enable remote learning and enhance traditional classrooms.
- Entertainment: From video games to streaming services, computers are
integral to modern entertainment, driving content creation, 3D rendering, and
interactive experiences.
- Scientific Research: Supercomputers simulate complex processes in fields like
astrophysics, genomics, and climate science.
- Finance: Algorithmic trading, fraud detection, and blockchain technologies.
- Manufacturing: Automation, robotics, and industrial IoT.

Emmanuel Ali, Ayibaemi Ledum 1st Semester October 7, 2024 17 / 19


Future of Computing
The future of computing is shaped by several key trends:
Quantum Computing:
Quantum computers operate on quantum bits (qubits) rather than traditional
binary bits. Quantum computers promise to solve problems that are currently
infeasible for classical computers, such as simulating molecular structures and
solving complex optimization problems.
Artificial Intelligence (AI):
AI and machine learning technologies rely heavily on computational power.
As AI advances, computers will become even more integral to
decision-making, automation, and predictive analysis across industries.
Edge Computing:
Edge computing moves data processing closer to the source of data generation
(e.g., IoT devices). This reduces latency and bandwidth usage, enabling faster
responses in real-time applications like autonomous vehicles and smart cities.
Cloud Computing:
The growth of cloud computing allows individuals and businesses to access
vast computing resources on demand without owning physical hardware.
Cloud computing supports scalability, remote collaboration, and distributed
systems.
Emmanuel Ali, Ayibaemi Ledum 1st Semester October 7, 2024 18 / 19
Ethics in Computing

As computing continues to shape society, ethical concerns arise:


- Privacy: The collection and use of personal data (e.g., social media
platforms).
- Bias in AI: Algorithms reflecting biases in training data, leading to
unfair outcomes.
- Intellectual property: The protection of software, algorithms, and
data from unauthorized use.
- The digital divide: Ensuring equitable access to computing resources.

Emmanuel Ali, Ayibaemi Ledum 1st Semester October 7, 2024 19 / 19

You might also like