Slide Credits: General Introduction to computing
www.ch.embnet.org/CoursEMBnet/Pages05/slides/IntroCompute.ppt
Slides Credits: Bireswar Das, Shivakumar Jolad
Jolad,, Anirban Dasgupta
Dasgupta,,
Shanmuganathan Raman, Souradyuti Paul, Dinesh Garg
Garg,, Neeldhara Misra
Misra,, KPM
ES102 Introduction to
Computing
Krishna Prasad Miyapuram
& Supratim Shit
Fall 2018
Which Course?
What is Computation?
A technology for information processing.
Any goal-
goal-oriented activity requiring, benefitting
from, or creating computers.
What will I learn?
Focus is on understanding
the problem solving aspect
on programming
Course Outline
Week
1 basics of computers, operating system,
27-Aug-18 languages, compilers and interpreter
2
03-Sep-18 Expressions, conditionals
10-Sep-18 3 Iterations
17-Sep-18 4 Exercises
24-Sep-18 5 Strings, Lists
01-Oct-18
08-Oct-18
1
Functions, return values,
15-Oct-18 Recursion
22-Oct-18 2 Searching
29-Oct-18 3 Sorting-1
05-Nov-18 4 Sorting-2
12-Nov-18 5 Files
19-Nov-18 6 Tuples, Dictionaries
26-Nov-18 7 Revision
Timings
Lectures
Monday, Thursday 10 – 11 am (1/002)
Lab
Thursday 2 to 4 pm
Two sections: even (7/108) & odd numbers (7/109)
Office Hours (TAs)
check course WEBSITE
Academic Discussion Hours
Evaluation
Weightage
Daily Quiz 20%
Daily
MidSem 20% Lab Quiz
Quiz - 2 20%
30%
EndSem 30%
Midsem
20%
Lab Tests – 2 30%
Endsem
30%
Reference Material
Some Links
Think Python 2nd Edition by Allen B. Downey
http://greenteapress.com/wp/think-python-2e/
Problem Solving with Algorithms and Data Structures using Python
http://interactivepython.org/runestone/static/pythonds/index.html
How to Solve it by Computer" by Dromey.
Automate the Boring Stuff with Python
https://automatetheboringstuff.com/
Guttag, John. Introduction to Computation and Programming Using Python: With
Application to Understanding Data Second Edition. MIT Press, 2016
https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-0001-
introduction-to-computer-science-and-programming-in-python-fall-2016/index.htm
Computer Science With Python (Textbooks for Class 11 and 12 by CBSE)
Head First Programming
Head First Python
More online resources
http://interactivepython.org/runestone/default/user/login?_next=/runestone/default/index
http://nbviewer.jupyter.org/github/twistedhardware/mltutorial/blob/master/notebooks/jup
yter/3.%20Python%20Basics.ipynb
https://www.youtube.com/watch?v=1I2Bz0qbMsc
https://www.codesdope.com/python-introduction/
https://www.youtube.com/playlist?list=PLhQjrBD2T3828ZVcVzEIhsHVgjANGZveu
Rules
First, please check out the Honor Code at IIT
Gandhinagar (http://www.iitgn.ac.in/student
(http://www.iitgn.ac.in/student--
honor--code.htm
honor code.htm).). In this class, we will define
academic integrity in terms of the following
aspects.
1. We start by assuming that everyone who is in
class is here to learn the material. If you behaviour
is not consistent with this, then the instructors
have the right to not engage with you either.
Rules: collaboration
2. The homework will tell you on which
problems it is ok to collaborate. Collaborating
with someone does not mean copying their
solution---
solution--- it means you brainstorm together
with this person and then you write down the
solution yourself.
3. When you collaborate you have to write down
the names of all your collaborators. Attribution
is an important part of academic collaboration.
4. We will take any cases of copying extremely
seriously.
Rules: attendance
5. You have to be on time to lecture and lab sessions.
Coming late is disruptive and disrespectful.
6. If you do not attend class, your chances of success
decrease dramatically. Also, the instructor can at his
discretion, put you on a self-
self-learning mode, in which
case, you cannot ask for any help with the course
materials and will only be judged based on the final
examination.
HELP !!!
Academic Discussion Hours
You learn programming by practice
Ask Questions in class if you don’t understand anything
Ask instructor to repeat the explanation
Ask for an additional example if you want more clarity
Ask TA s in lab for help to navigate
Ask Google for error messages (not TA s)
Programming is NOT magic, if you type in wrong, the
output will not match your expectations
Office hours / doubt clarification sessions, JUST ASK
FOR HELP, so that we know.
Instructions for daily Quiz
Write your Name and Roll Number
Write your left and right neighbour’s names
(Write None if nobody)
You cannot consult your notes or your friends
No internet/ mobile /laptop usage during any
quiz / test
Bring a sheet of Paper to your class for Quiz
No proxies, No cheating. Any suspicion will be
silently reported to instructor, which will be
investigated seriously & Reported to SSAC
http://www.computerhistory.org/
Computers
Abacus Vs Calculators Difference Engine
Human Computers
Napier’s logs
Analytical Engine
Jacquard Loom
Inside a Computer
Von Neumann architecture
Stored
Programs
+ Data
Computer Architecture
CPU central processing
unit/microprocessor: Fetches and
executes instructions.
Arithmetic Logic Unit (ALU).
Control Unit.
Internal clock-
clock- Timing, synchronization
Main memory: Holds instructions and
data.
RAM: Random Access Memory. Volatile.
ROM: Read Only Memory.
Input/Output Devices: Keyboard,
Monitor, Hard disk, USB.
Memory
Memory (both RAM and
ROM) can be view as a
sequence of cells.
Each cell has a unique
address.
Addresses are consecutive.
Each variable, array gets
certain number of memory
cells to store the respective
values.
BUS: Carrier of information
A 32-
32-bit machine uses 32 bits to store the
address of a cell. Each cell is 1 byte. How many
different cells are possible?
How many cells are required to store a floating
point variable?
Information coding
Binary How to count
0 or 1
128 64 32 16 8 4 2 1
Octal 1 0 1 1 0 1 0 1
0- 7 128+32+16+4+1=
Hexadecimal 181 (decimal
(decimal))
265 (octal)
0-9+A
9+A--F
B5 (hexadecimal
(hexadecimal))
Decimal
0- 9 Signed vs unsigned
0 to 255
-127 to +127
Operations on bits
Booleans: Example tables
0 = false = no
AND 0 1
1 = true = yes 0 0 0
Operators: 1 0 1
AND OR 0 1
OR 0 0 1
1 1 1
XOR
XOR 0 1
NOT
0 0 1
1 1 0
RAM/ROM
Memory mapping
Address Values Size reminder
reminder::
0000
Kilobyte Kb 210 ~103
0001
0002 Megabyte Mb 220 ~106
.. Gigabyte Gb 230 ~109
.. Terabyte Tb 240 ~1012
..
Petabyte Pb 250 ~1015
…
..
FFFF
HD/DVD
track
sector
head
QuickTime™ et un
décompresseur TIFF (non compressé)
Display
sont requis pour visionner cette image.
Screen pixel or dots
Fonts
Color coding: 32 bits
1 pixel = 3 bytes of color (R
(RGB)+1 Bitmap
byte alpha channel (transparency) Vectors
1600x1200x4bytes=7,5 Mb!
TrueType, OpenType,
PostScript
Keyboard/Mouse
Each key (or combination of The mouse movements
keys) of the keyboard sends a 1 to 4 bytes (vertical &
code to the computer. horizontal)
The code is interpreted and Buttons
converted to the corresponding Clicked, pressed, rolled
ASCII or Unicode number.
buttons
ASCII & Unicode
ASCII 7/8 bits
Unicode
UTF-8/16/32 bits
UTF-
ISO--8859 (Latin)
ISO
od -c od -h
Software Layers
Files Data (.doc, .mp3)
Software Word, scripts, mail, web browser…
User Interface Quartz CLI, X-Windows Windows
Operating System MacOSX Linux Windows
ROM Firmware BIOS
Hardware CPU, RAM, HD, DVD
Operating System
Operating System: A bunch of programs that
make it easy for us to use the computer.
Windows, Linux (Ubuntu
(Ubuntu),
), Mac OS X.
File systems
Method the OS uses to store information
Storage unit, directories, subdirectories (Windows, VMS)
Single arborescence (Linux, MacOSX, all Unix)
What exactly is a file?
a piece of information (text, graphic, data, music program,
script)
it is identified by a name and an logical address (or path)
other informations: date, size, type, creator, ownership,
physical address…
File system organisation
Disk 1 Disk 2 Disk 2
C: D: /
DOCS PROGS CONFIG DATA Directories /usr /home
Disk 1
WORD EXCEL EXPT1 EXPT2 Subdirectories local phil john
bin lib
emacs X11
Windows Unix
Path
The path is the logical address used by the
system or the user to locate a file.
Example::
Example
/bd_du_Palais
bd_du_Palais/35/
/35/etage
etage/4/appart/12/
/4/appart/12/Dupont_
Dupont_ Jean.txt
suffix
filename
path
File types
Executable Special cases in Unix
.exe STDIN
.app STDOUT
Unix requires « x » STDERR
Data
Text (.txt)
Music (.mp3)
Image (.jpg, .gif)
Movie (.mpg, .mov)
Binary (.bin)
Encryption / compression
Compression
Reducing the size of files
E.g., .mp3, .gz, .jpg, .zip
Encryption
Protecting your privacy
E.g., .pgp
Packing
Grouping the files
E.g., .tar
Programming Language
Programming Language A language to
communicate with the computer. Instructions
are building blocks of a programming language.
Program A set of instruction to perform a job.
Let x = 1000 and y = 729
Let z = x + y
Output z
Programming Languages
Low level (processor dependent)
Machine code, assembler
High level: structured, procedural
Fortran, C, Pascal
High level: object oriented
C++, Java, C#, Perl, Objective-
Objective-C
Scripting
Perl, Python , JavaScript
Applications of Computers (aka
programming)
Data Compression. Engineering (Mechanical,
Cryptography. Signal processing, Fluid
Physics simulations (Particle Dynamics ,
Physics, Condensed Matter Structures, Process
and Engineering ....)
Statistical Physics). Finance and Economics.
Computational Biology Learning and Pattern
(Mathematical Biology, System recognition.
Biology, Weather Forecasting.
Bioinformatics). Cognitive Science.
Human - Computer
Communication
A language that computers can understand.
Programming language.
The language should be very precise and without
ambiguity.
Amit is happy that he visited Lothal
Lothal..
I want good marks.
He kicked the bucket.
Sar par aasman gir gaya
gaya!!
What is a program?
The algorithm
Are you a
programmer?
Monopoly
Flowcharts
Turtle Graphics
Tips
Think about your Test the code
problem For all the possible
Create a flowchart functions or cases (if
possible)
Create the pseudocode Give it to users as a beta
Verify the memory used (if not possibe)
by your variables Sell it (if you work for
Write the code Microsoft©… ;- ;-)
Debug