CS111 Computer Programming AN INTRODUCTION TO PROBLEM SOLVING
22 Slides4.54 MB
CS111 Computer Programming AN INTRODUCTION TO PROBLEM SOLVING USING COMPUTERS
Course Outline Introduction to Computing Programming (in C) Exercises and examples are from the mathematical area of Numerical Methods Problem solving using computers
What is this CS111 about? Computer and its components Programming Languages Problem Solving and Limitations of a Computer
Common uses of a Computer As a tool for storing and retrieving information Extracting and storing information regarding students entering IIT As a tool for providing services to customers Billing, banking, reservation As a calculator capable of user-defined operations Designing electrical circuit layouts Designing structures Non-destructive testing and simulation
What IS a computer? A computer is a machine Something that operates mechanically But it is a flexible machine Its behaviour is controlled by a program A program is like a spell cast on a machine Programmers are like wizards Programs reside in the memory of the machine Charles Babbage (1791-1871) “The stored program concept”
Early Computing Hardware The Slide rule The Chinese Abacus The gear replaced the beads in early mechanical calculators
Jaquard looms Used punched cards to weave different patterns
The Difference Engine Part of Babbage's difference engine, assembled after his death by Babbage's son, using parts found in his laboratory. The London Science Museum's replica Difference Engine, built from Babbage's design.
The First Programmer Augusta Ada King, Countess of Lovelace (December 10, 1815 – November 27, 1852), born Augusta Ada Byron, is mainly known for having written a description of Charles Babbage's early mechanical generalpurpose computer,language the ADA is named after The programming analytical her. engine.
ENIAC – the first electronic computer Physically, ENIAC was massive compared to modern PC standards. It contained 17,468 vacuum tubes, 7,200 crystal diodes, 1,500 relays, 70,000 resistors, 10,000 capacitors and around 5 million hand-soldered joints. It weighed 27 tons, was roughly 2.4 m by 0.9 m by 30 m, took up 167 m², and consumed 150 kW of power.
2000: Intel Pentium 4 Processor Clock speed: 1.5 GHz No. Transistors: 42 million Technology: 0.18μm CMOS
Google Data Center
Google Data Center – Cooling it!
The computing machine PROCESSOR MEMORY 01234 . (say) 256 MEGABYTES The computer is made up of a processor and a memory. The memory can be thought of as a series of locations to store information.
Variables Each memory location is given a name The name is the variable that refers to the data stored in that location Eg: rollNo, classSize Variables have types that define the interpretation data. e.g. integers (1, 14, 25649), or characters (a, f, G, H) All data is represented as binary strings. That is, it is a sequence of 0’s and 1’s (bits), of a predetermined size – “word”. A byte is made of 8 bits.
Instructions Instructions take data stored in variables as arguments. Some instructions do some operation on the data and store it back in some variable. The instruction “X X 1” on integer type says: “Take the integer stored in X, add 1 to it, and store it back in (location) X”. Other instructions tell the processor to do something. For example, “jump” to a particular instruction next, or to exit
Programs A program is a sequence of instructions. Normally the processor works as follows, Step A: pick next instruction in the sequence Step B: get data for the instruction to operate upon Step C: execute instruction on data (or “jump”) Step D: store results in designated location (variable) Step E: go to Step A Such programs are known as imperative programs.
A Limitation – Computer Arithmetic Number of digits that can be stored is limited Causes serious problems Consider a computer that can store: Sign, 3 digits and a decimal point Sign and decimal point are optional example : 212, -212, -21.2, -2.12, -.212
More Examples 113. -111. 2.00 2.00 7.51 9.51 -111. 7.51 -103.49 (exact arithmetic) But our computer can store only 3 digits. So it rounds –103.49 to –103 This is a very important thing to know as a System designer. Why?
Why? Consider 113. -111. 7.51 To us addition is associative (a b) c a (b c) (113. -111.) 7.51 2.00 7.51 9.51 113. (-111. 7.51) 113. (-103.49) 113. – 103. 10.0
Conclusion Computer is fast but restricted So we must learn to use its speed And manage its restrictions
Books o Kanetkar, Y; Let Us C, BPB Publications. o Balaguruswamy, E; Programming in ANSI C, Tata McGraw Hill o Herbert Schildt; C: the complete reference; McGraw-Hill Osborne Media. Reference: o Kernighan, B. W. and Ritchie, D. M.; The C Programming Language, Prentice Hall of India. o Thomas L. Floyd, Digital Fundamentals, Prentice Hall.