CS 101 Computer Programming and Utilization Puru with several CS101 TAs and CSE staff Course webpage: http://www.cse.iitb.ac.in/~cs101/ Lecture 1: Introduction Clip art and quote credits: Various sources found through Google Image Search
about these slides • based on Chapter 1 of the book – An Introduction to Programming through C++ by Prof. Abhiram Ranade (Tata McGraw Hill, 2014) • original slides by Abhiram Ranade – updates and contributions by Varsha Apte, Uday Khedker, Sunita Sarawagi, Umesh Bellur, Om Damani, Ganesh Ramakrishnan 7/30/19 3 Autumn 2019 CS101@CSE IIT Bombay
some questions • why a computer? • what is a computer? • what is programming? 7/30/19 4 Autumn 2019 CS101@CSE IIT Bombay
why computer? • yet another option on the human-machine axis • automation for doing work – efficiently, quickly, new discoveries/explanations etc. • the computer – a machine in the automation world that has influenced almost all aspects of our existence – has some properties unique/different from other machines 7/30/19 6 Autumn 2019 CS101@CSE IIT Bombay
what is unique about a computer? vs. 7/30/19 7 Autumn 2019 CS101@CSE IIT Bombay
what is a computer? • computer: a machine that can do (specified) work – … that can compute • compute : perform (elaborate) calculations – combination of mathematical and logical operations • a computer – is an electronic device with complex circuitry – is a programmable device 7/30/19 8 Autumn 2019 CS101@CSE IIT Bombay
a computer can do many things Help book and manage tickets Store and search documents Weather prediction Help design physical systems: say water network
all of us have already used a computer! – Calculator – ATM – Smartphone (is a computer) 7/30/19 10 Autumn 2019 CS101@CSE IIT Bombay
how to do work with a computer? • tell it do work! • what work? and how to specify? what work => logic, calculations, sequence etc. how to specify => write a program using a programming language • this course: from users to programmers! 7/30/19 11 Autumn 2019 CS101@CSE IIT Bombay
CS101 assessment/grading • Midterm exam: ~20% • 2 Quizzes: ~10% each • Final exam: ~30% • Lab sessions – Lab tests: ~20% weightage – Lab attendance: ~10% weightage • Mandatory to attend N-1 out of N labs • Every lab subsequently missed will cost 2% 7/30/19 12 Autumn 2019 CS101@CSE IIT Bombay
CS101 schedule/logistics https://www.cse.iitb.ac.in/~cs101/ • Lecture slots (Section S1) Slot 11 Tuesdays 3:30 PM – 5:00 PM & Fridays 3:30 PM – 5:00 PM (Section S2) Slot 5 Wed 9:30 AM – 11:00 AM & Fridays 9:30 AM – 11:00 AM • Lab sessions Tuesdays, Wednesdays and Thursdays 8 PM until 11 PM in SL1, SL2 and Basement lab (newCSE building) • Slides and videos on www.cse.iitb.ac.in/~cs101 and http://bodhitree2019.cse.iitb.ac.in 7/30/19 13 Autumn 2019 CS101@CSE IIT Bombay
The TA tree Bodhitree/Web site CTA Lab scheduling STA STA STA JTAs JTAs JTAs Thu lab. Tue lab. Wed lab. batch batch batch Do not use personal email 7/30/19 Autumn 2019 CS101@CSE IIT Bombay 14
additional help for CS101 • do not hesitate in contacting us if are facing problem due to English • आप अंग्ऱेजी क े कारण समस्रा का सामना कर रहे हैः तो हमसे संपक रॎ करने मेः संकोच न करेः • there will be one Teaching Assistant for every ~12 students – Help and support can provided in other languages 7/30/19 15 Autumn 2019 CS101@CSE IIT Bombay
7/30/19 16 Autumn 2019 CS101@CSE IIT Bombay
let’s start programming! • what is a program? – logic/concept/idea/calculations … – sequence of instructions (that a computer can understand) that capture the logic • we already do this … – which route to take to reach LA001? – what time to wake up for class? – how to book an ola/uber ride? – how to prepare for an exam? – … 7/30/19 17 Autumn 2019 CS101@CSE IIT Bombay
programs • program = a precise description of the calculations we want the computer to perform • by feeding different programs to a computer you can make it do different calculations • this course tells you how to construct (“write”) programs • special notation is to be used to write programs: “Programming Language”(C++ for this course) 7/30/19 18 Autumn 2019 CS101@CSE IIT Bombay
goal for today • write some small programs using C++ programming language • the programs will draw pictures on the screen • we “drive” a “turtle” on the screen! • Turtle has a pen, so it draws as it moves • drawing pictures may seem be fun, but if you master it, you have mastered a lot of programming • will use simplecpp package developed by Prof. Abhiram Ranade, based on Logo 7/30/19 19 Autumn 2019 CS101@CSE IIT Bombay
programming the turtle to draw instructions the turtle understands • forward (x): Move forward x pixels – E.g. forward(50) moves the turtle forward 50 pixels • right (x): turn right by x degrees • left(x): turn left by x degrees • penUp() – Will not draw while moving • penDown() – Will draw while moving 7/30/19 20 Autumn 2019 CS101@CSE IIT Bombay
programming a turtle to draw a square • forward, right, left, penUp, penDown • With these instructions, make the turtle move in such a way that we will draw a square of length 200 • What facts do we need to know before we can program? • Note: By default, in the beginning, the turtle faces towards the east, and the pen is down 7/30/19 21 Autumn 2019 CS101@CSE IIT Bombay
The square drawing program #include <simplecpp> main_program { turtleSim(); forward(200); right(90); forward(200); right (90); forward(200); right(90); forward(200); }
The square drawing program Some magic abracadabra: ignore the program will use the #include <simplecpp> simplecpp package. Your commands within these braces {..}. main_program { turtleSim(); Start the turtle simulator (open a window) forward(200); right(90); Move forward 200 units forward(200); right (90); forward(200); right(90); Turn right 90 degrees forward(200); } Program exits
General Ideas #include<simplecpp> Commands or statements main_program{ terminated by semicolon ";" turtleSim(); forward(200); right(90); This sequence of commands in C++ is the program forward(200); right(90); forward(200); right(90); Some commands need forward(200); additional information called arguments wait(10); • 90 is the argument to the command right } • 200 is the argument to the command forward
General Ideas (contd) #include<simplecpp> main_program{ Commands are turtleSim(); generally executed forward(200); from top to bottom, left right(90); to right. forward(200); right(90); forward(200); right(90); forward(200); wait(10); }
how to draw an octagon? 7/30/19 26 Autumn 2019 CS101@CSE IIT Bombay
how to draw an octagon? #include <simplecpp> main_program{ turtleSim(); forward(100); right(45); • commands seem forward(100); right(45); quite repetitive? forward(100); right(45); forward(100); right(45); • there is a better way! forward(100); right(45); forward(100); right(45); forward(100); right(45); forward(100); right(45); wait(10); } 7/30/19 27 Autumn 2019 CS101@CSE IIT Bombay
A Better Way repeat (n) { #include <simplecpp> some commands main_program{ } turtleSim(); repeat(8){ The instructions within {...} are forward(100); repeated n times right(45); Each round of execution is } called an iteration }
How to Draw a Polygon? #include <simplecpp> main_program{ turtleSim(); repeat(8){ forward(100); right(45); } } 7/30/19 Autumn 2019 CS101@CSE IIT 29 Bombay
How to Draw a Polygon? #include <simplecpp> #include <simplecpp> main_program{ main_program{ turtleSim(); turtleSim(); repeat(8){ repeat( num_sides ){ forward(10); forward(10); right(45); right( 360.0/num_sides ); } } } } 7/30/19 30 Autumn 2019 CS101@CSE IIT Bombay
How to Draw a Polygon? #include <simplecpp> main_program{ turtleSim(); Tell the computer: Reserve space in your memory where I can store an integer (int). I will refer to it by the int num_sides ; name num_sides repeat(num_sides){ forward(10); We need some magic so that num_sides can have the right right(360.0/num_sides); value } } Divide the number 360 by the number stored in the space named num_sides and pass the result as an argument to this command 7/30/19 31 Autumn 2019 CS101@CSE IIT Bombay
Explanation #include <simplecpp> main_program{ turtleSim(); Print the sentence within the quotes on the screen cout è “Console out” (display) int num_sides; cout << “ No. of sides? ” ; cin >> num_sides; Read the number that the user types and store it into the space in memory named num_sides repeat(num_sides) { cin ç “Console in” (keyboard) forward(200); right(360.0/num_sides); } Use the integer stored in the space in memory which is named } num_sides
Recommend
More recommend