130 likes | 145 Views
Come learn the fundamentals of computing at ESC101N with Instructor Mainak Chaudhuri. This course covers computer concepts and problem-solving using Java. Join us for lectures, labs, tutorials, and more!
E N D
WELCOME To ESC101N:Fundamentals of Computing Instructor: Mainak Chaudhuri mainakc@cse.iitk.ac.in
Agenda • Administrivia • What this course is not about • Anatomy of a computer • This week’s lab
Administrivia • Lecture hours • Monday, Wednesday, Thursday: 8-9am, L7 • Come to class in time: we will start with announcements • Labs • 10am-1pm, 12 lab sessions • Monday: B5-B6, Tuesday: B7-B8, Wednesday: B9-B10, Thursday: B1-B2, Friday: B3-B4 • There will be lab this week • Tutorial • Tuesday 8-9am, Tutorial Block 101-110 • No tutorial this week
Administrivia • Grading [this is the sad part] • Exam: 15+15+30 • One compulsory lab test: 10 • Project or another lab test (your choice): 20 • Weekly lab sessions: 10 • Surprise quizzes: 10 (this is extra) • Held in tutorial sessions • [You should be able to prove that these do not remain a matter of surprise any more once I have made this announcement]
Administrivia • There will be a course web page with all info • Temporarily: www.cse.iitk.ac.in/~mainakc/esc101/notes.html • Text book • Nothing specific: your choice • Suggestion: “Java Elements: Principles of Programming in Java” by Bailey and Bailey • More references are on the webpage • Visit past course sites: www.iitk.ac.in/esc101
What this course is not about • This is not a course on programming • You will learn how to solve problems with computers: especially the ones that you cannot solve with paper and pencil quickly • The greater part of the lectures will be devoted to the concepts involved in developing a computer algorithm • Sequence of steps that solve a problem • Java will be used as a vehicle to demonstrate the concepts • Do not expect to become an expert in Java after taking this course
Anatomy of a computer • What you see • A monitor, a keyboard, a mouse, a printer … • Input/Output devices • Through these you ask the computer to do something and the computer tells you the results • Need a way to convey your commands to the computer (it is really a stupid device which cannot do anything on its own) • Internally • A central processing unit and a scratchpad (often called main memory) accomplish the job
Anatomy of a computer • Central processing unit does not understand English, not even Java • It only understands two symbols: 0 and 1 • These are called bits (short for binary digits) • You encode your algorithm into a high-level language called Java • This is called a program • This is harder to understand than English, but easier to understand than a 0-1 encoding • How do I encode a program in 0-1? This is used only for storing the program in main memory
Anatomy of a computer • A friend of yours called compiler translates the program into a binary encoding called an object program • This is almost understandable to the central processing unit (often called a microprocessor) • Another friend of yours called a linker adds something more to an object program to convert it to an executable • This is understandable to the CPU • But somehow it needs to get started executing
Anatomy of a computer • A big boss called operating system loads the executable in main memory and hands over the control to the CPU • Now the CPU starts executing your program (essentially the binary executable) • Once in a while it prints something on the monitor and you appreciate that • Notice that it is not doing anything on its own, only doing whatever you have asked it to do • At some point the CPU completes the execution and you have all the results
A simple program • Let’s write a program in English (almost) • Want to add five numbers a, b, c, d, e and print the result on monitor print (monitor, a+b+c+d+e) • print is used as a function which takes two arguments: where to print and what to print • A binary translation of this could convert each character i.e. p, r, i, n, t, (, m, … into a binary string e.g., p is the 16th alphabet, so represent it as 16 zeros; put a 1 to mark the end of a character • Now I can design a CPU which can understand this translation and execute my program (caution: this is just an example)
This week’s lab • Learn to use the UNIX environment • How to create a file (this where you store your programs) • How to create and navigate through directory (this where you store your files) • How to copy files from one directory to another • And more: www.iitk.ac.in/esc101/linux.pdf • Lab is upstairs in CC: I will be present at the front door to lead you