0% found this document useful (0 votes)
4 views28 pages

Principles of Computing Overview

This document introduces the principles of computing, emphasizing the relationship between hardware and software, and the importance of programming. It outlines the basic components of a computer system, including the CPU, memory, and input/output devices, while explaining the role of programming languages in software development. The document also discusses the differences between high-level and low-level languages, and the processes of compiling and interpreting code.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views28 pages

Principles of Computing Overview

This document introduces the principles of computing, emphasizing the relationship between hardware and software, and the importance of programming. It outlines the basic components of a computer system, including the CPU, memory, and input/output devices, while explaining the role of programming languages in software development. The document also discusses the differences between high-level and low-level languages, and the processes of compiling and interpreting code.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd

Principles of Computing

Introduction: Computers and Programming


Languages

By Dr. Joydeep Chandra


Indian Institute of Technology, Patna

25/08/23 1 Indian Institute of Technology Patna


Computers and Programming

• A computer is just a machine (the hardware) for


executing programs (the software)
• Hence, the software rules the hardware!

• The process of creating software is called


programming, and it is the focus of this course

• Virtually, anyone can learn how to program


computers
• It requires only some grit!

25/08/23 2 Indian Institute of Technology Patna


Why Learn Programming?

• Computers have become commonplace in our modern life


• Understanding the strengths and limitations of computers requires some
understanding of programming

• Programming can be loads of fun! Ubiquitous


Astronomy
• It is an intellectually engaging activity that allows you to express yourself
Computing

through remarkably beautiful Smaller,


creations
Faster,
Cheaper
Sensors
• Programming developsGene valuable problem-solving skills, especially
Sequencing
ones that pertain to analysis,
and design and implementation
Biotechnology

• Programmers are in great demand!

25/08/23 3 Indian Institute of Technology Patna


Why Learn Programming?

• Computers have become commonplace in our modern life


• Applying ideas in different fields requires programming

• Programming can be loads of fun!


• It is an intellectually engaging activity that allows you to express
yourself through remarkably beautiful constructs and structures

• Programming develops valuable problem-solving skills, especially


ones that pertain to analysis, design and implementation

• Programmers are in great demand!

25/08/23 4 Indian Institute of Technology Patna


Hardware Basics

• To be a successful programmer, you need to know


some details of how computers work

• For instance, understanding the basics of hardware


will help you analyze the performance (or efficiency)
of any of your programs
• Will the data of your program fit in memory?
• If not, how would that impact the performance of your program?
• Is your program CPU-bound or IO-Bound?
• If CPU-bound, how powerful is your CPU?
• If IO-bound, how big is your disk or network bandwidth?

25/08/23 5 Indian Institute of Technology Patna


Functional View of a Computer

Output
CPU Devices
Input
Devices

Main Seconda
Memory ry
Memory

25/08/23 6 Indian Institute of Technology Patna


Functional View of a Computer

• The secondary memory is where your saved program and data


reside

• It is a non-volatile storage
• I.e., when the power is turned off, E.g., Hard Disk
your program and data will NOT be lost
Seconda
ry
Memory

25/08/23 7 Indian Institute of Technology Patna


Functional View of a Computer

• The main memory is much faster (but more expensive) than the
secondary one, however, it is volatile

• Your program and data are copied from secondary memory to main
memory for efficiency reasons
E.g., Random Access Memory (RAM)

Main Seconda
Memory ry
Memory

25/08/23 8 Indian Institute of Technology Patna


Functional View of a Computer

• The Central Processing Unit (CPU) is the “brain” of the computer

• It can at least perform:


• Arithmetic operations CPU
(e.g., adding 2 numbers)
• Logical operations
(e.g., test if 2 numbers
are equal) Main Seconda
Memory ry
Memory

• It can directly access


information stored in main memory but not in secondary memory

25/08/23 9 Indian Institute of Technology Patna


Functional View of a Computer

E.g., Monitor
E.g., Keyboard Output
and mouse CPU Devices
Input
Devices

Main Seconda
Memory ry
Memory

25/08/23 10 Indian Institute of Technology Patna


Functional View of a Computer

 Humans interact with


computers via Input and
Output (IO) devices E.g., Monitor
E.g., Keyboard Output
and mouse  Information from Input devices Devices
are processed by the CPU
Input
and may be shuffled off to the
Devices
main or secondary memory

 When information need to be


displayed, the CPU sends
them to one or more Output
devices

25/08/23 11 Indian Institute of Technology Patna


Programming Languages

• A program is just a sequence of instructions telling the


computer what to do

• Obviously, we need to provide these instructions in a


language that computers can understand
• We refer to this kind of a language as a programming language
• Python, Java, C and C++ are examples of programming languages

• Every structure in a programming language has an


exact form (i.e., syntax) and a precise meaning (i.e.,
semantic)

25/08/23 12 Indian Institute of Technology Patna


Machine Languages
• Python, Java, C, and C++ are, indeed, examples of high-
level languages

• Strictly speaking, computer hardware can only understand


a very low-level language known as machine language

• If you want a computer to add two numbers, the instructions


that the CPU will carry out might be something like this:

Load the number from memory location 2001 into the CPU
Load the number from memory location 2002 into the CPU A Lot of
Add the two numbers in the CPU Work!
Store the result into location 2003

25/08/23 13 Indian Institute of Technology Patna


High-Level to Low-Level Languages

• In a high-level language like Python, the addition


of two numbers can be expressed more naturally:

c=a+b Much Easier!

• But, we need a way to translate the high-level


language into a machine language that a
computer can execute
• To this end, high-level language can either be compiled
or interpreted

25/08/23 14 Indian Institute of Technology Patna


Compiling a High-Level Language

• A compiler is a complex software that takes a


program written in a high-level language and
translates it into an equivalent program in the
machine language of some computer
Source
Machine
Code Compiler
(Program) Code

Running Output
Inputs
Program s

25/08/23 15 Indian Institute of Technology Patna


Interpreting a High-Level Language

• An interpreter is a software that analyzes and executes the


source code instruction-by-instruction (on-the-fly) as
necessary
Source
Code
(Program) Computer
Output
Running An
s
Interpreter
Inputs

• E.g., Python is an interpreted language

25/08/23 16 Indian Institute of Technology Patna


Compiling vs. Interpreting

• Compiling is a static (i.e., pre-execution), one-shot translation


• Once a program is compiled, it may be run over and over again
without further need for the compiler or the source code

• Interpreting is dynamic (i.e., happens during execution)


• The interpreter and the source code are needed every time the
program runs

• Compiled programs tend to be faster, while interpreted ones


lend themselves to a more flexible programming
environments (they can be developed and run interactively)

25/08/23 17 Indian Institute of Technology Patna


Note on Portability
• The translation process highlights another advantage that high-
level languages have over machine languages, namely, portability

• A program for an Intel-based machine will not run on an IBM-


based machine since each computer type has its own machine
language

• On the other hand, a program written in a high-level language


(say, a Python program) can be run on many different kinds of
computers as long as there is a suitable compiler or interpreter
• Python programs are said to be portable!

25/08/23 18 Indian Institute of Technology Patna


Writing Python Commands
• You can start the Python interpreter in an
interactive mode and type in some commands
to see what happens

• When you first start the interpreter program, you


may see something like the following:

Python 3.4.4 (v3.4.4:737efcadf5a6, Dec 19 2015, 20:38:52)


[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

A Python prompt indicating that the Python interpreter is waiting for you to give it a command

25/08/23 19 Indian Institute of Technology Patna


Writing Python Commands
• Here is a sample interaction with the Python
interpreter:

 print is a built-in function that >>> print("Hello")


allows displaying information Hello
on screen >>> print("Programming is fun!")
Programming is fun!
 When you call the print function, >>> print(3)
the parameters in the parentheses 3
tell the function what to print >>> print(2.3)
2.3
 There is only 1 parameter passed to
print here, which is a textual data (or what is referred to as a string)

25/08/23 20 Indian Institute of Technology Patna


Writing Python Commands

• Here is a sample interaction with the Python


interpreter:
>>> print("Hello")
Hello
>>> print("Programming is fun!")
Another string parameter Programming is fun!
>>> print(3)
3
An integer (int for short) parameter
>>> print(2.3)
2.3
A float parameter

How can we figure out in a program whether a value is an int, float, or


string?

25/08/23 21 Indian Institute of Technology Patna


The Type Function

• Python provides a special function called type,


which allows us to figure out the data type of any
value
>>> type("Hello")
<class 'str'>
>>> type("Programming is fun!")
<class 'str'>
>>> type(3)
<class 'int'>
>>> type(2.3)
<class 'float'>

25/08/23 22 Indian Institute of Technology Patna


Basic Coding Examples in Python
• Write a python code to add 2 and 3 and print the output.
>>> print(2+3)
5
• Print your name and print the type of your name.
>>>print(“My name is ABCD”)
My name is ABCD
>>>type(“My name is ABCD”)
<Class’str’>

25/08/23 23 Indian Institute of Technology Patna


Summary

• A computer is a universal information-processing machine, which


can carry out any process that can be described in sufficient detail

• A description of the sequence of steps for solving a particular


problem is called an algorithm

• Algorithms can be turned into software (programs) that determine


what the hardware (physical machine) can and does accomplish

• The process of creating software is called programming

25/08/23 24 Indian Institute of Technology Patna


Summary

• A basic functional view of a computer system comprises a


central processing unit (CPU), a main memory, a secondary
memory, and input and output devices

• The CPU is the brain of the computer that performs simple


arithmetic and logical operations

• Information that the CPU acts on (data and programs) are


stored in main memory (e.g., RAM), while more permanent
information are stored in secondary memory (e.g., disk)

25/08/23 25 Indian Institute of Technology Patna


Summary

• Programs are written using a formal notation known as a


programming language

• There are many different languages, but all share the property of
having a precise syntax (form) and semantics (meaning)

• Computer hardware only understands a very low-level language


known as machine language

• Programs are usually written using human-oriented high-level


languages such as Python

25/08/23 26 Indian Institute of Technology Patna


Summary

• A high-level language must either be compiled or interpreted


in order for the computer to understand it

• High-level languages are more portable than machine


languages

• Python is an interpreted language

• One way to learn about Python is to use an interactive shell


for experimentation

25/08/23 27 Indian Institute of Technology Patna


Next Lecture…

• Basic elements of Python programs (e.g.,


names, expressions, input statements, output
statements, assignment statements, etc.,)

25/08/23 28 Indian Institute of Technology Patna

You might also like