 While the title of this particular session is common syllabus for computer programming and the purpose and objective is to evolve the common syllabus for the 15 day workshop that we shall conduct for teachers. But let me tell you that even now we have no very clearly defined common syllabus. Some ideas have emerged from the April workshop and I want to utilize this interaction to further develop the theme. So I will be explaining the way the programming course runs in IIT giving you some samples and then based on the previous inputs that we have received plus the inputs that you shall all be giving over the next set of presentations we shall evolve the final setup. So in the action agenda point where we have a session on the last day I think we shall complete this. But I want you to help me in this session to evolve some of the alternative ideas on how we could define the common syllabus. So this is the IIT syllabus. Look at the way the IIT syllabus reads. This course provides an introduction to problem solving with computers using a modern language such as Java or C stroke C++. It does not even prescribe the programming language to be used where we do genuinely believe that programming languages are incidental. It is the programming concepts which are more important. Topics covered will include utilization that is developer fundamentals such as editor, integrated programming environment, unique shell, modules, libraries, the environment with which people develop programs. Programming features such as machine representation, primitive types, arrays and records, objects, expressions, control statements, iteration, procedures, functions and basic I.O. Practically everything that a computer programming language permits us to do but absolutely stated in nutshell in bullets and applications, sample problems in engineering, science, text processing and numerical methods. That is it. This is the syllabus. I have seen some syllabi of the universities which are very elaborate. You will notice first of all the name of the course. By the way we call each individual subject as a course in IIT. For most of the university the nomenclature is different. The course is either an MCA course or BE course or something and there are subjects or papers within this course. In our case the B take or M take or MSCR programs and each program has several courses. This could be confusing but I suggest that we retain the name subject as far as the larger effort of our end is concerned because that is what people are more familiar with. However, since we shall be referring to perpetually for the course websites here and the organization here, it is important to make that distinction so somehow we should perhaps elaborate this distinction in our write up that whenever you are looking at IIT website understand that course is a subject and your course is a program and your subject is a course. The most important thing is that the syllabus has no further bifurcation in terms of modules assigned or lectures or lab hours for each module, evaluation pattern, etc. I believe that most of you have a fairly well defined pattern that this portion 6 marks, this portion 5 marks, this portion so many hours, this portion so many total hours, etc., etc. Frankly the IIT system does not believe that a good education can be imparted to students in a straight jacketed fashion. Of course, there is a huge freedom to every faculty member. For example, every faculty member teaching the subject as freedom to decide on all of these things. The difference in IIT system is that if I am teaching a course, I am completely responsible and accountable for that course with minimum stipulation by anybody else. Synet stipulates such a bare minimum syllabus to be defined which the departmental committees and issued committees approve. After that, what should be the break up of evaluation, how many quizzes I should conduct, how many marks I should give to the examinations, etc., is entirely left to me as a teacher. Now that privilege unfortunately is not available for I would believe almost 99% of our teachers except perhaps a few NITs which may follow these systems. I do not know, we have friends from Surat and Suratkal. Can you? Like here. But then there are what, 17 NITs and there may be another 25 or 30 individual colleges which also have similar freedom. Those institutions which are autonomous perhaps would be able to give this kind of freedom. What is the situation in Amruta for example? Similar to this. The conduct of CS 101 that is the name of the subject here that we usually introduce the subject and the intended coverage in an introductory lecture and announce the evaluation scheme. So the evaluation scheme is completely dependent on the individual teacher who is teaching that course. A course website is maintained. In our case it is tradition to maintain the subject website on a growing basis. So we shall see this course website. This will have resources which will in turn have the course websites of the previous instructors. So there is an accumulated sort of wisdom or information available from all the courses. I would like to suggest that this is very easily doable. But since we do not put priority in doing this, we generally end up not doing it. But we are depriving a large number of students from easy access to useful material. We heavily use Moodle. I understand some of you use Moodle. It is a learning management system. It is not really a content management system. It is a learning management system or course management system. There is a session on many of these utilities which Professor Kandan Mowgli is going to lead and we will have some example usage of the Moodle. But for our course, for our subject rather December workshop, we propose to use Moodle very heavily. We are working out some extensions to the conventional Moodle so that we can use it in a distributed fashion. But for this workshop in December, I expect a Moodle to be set up in each remote center and that Moodle to be synchronized with the sort of master Moodle at the hub which is IIT Bomb. So anything that is updated onto the main Moodle should get updated onto other regional Moodles and anything that is updated on the regional Moodle should get updated here. Short of manual work today, there is no automatic mechanism to do that even in Moodle. We are trying to do that extension here as a software development activity. We do not know how long it will take. So this is our Moodle reference. Unfortunately, this Moodle cannot be connected into except through an LDAP authentication and LDAP authentication requires you to be either an employee or a student of IIT Bomb. The second thing that got mentioned yesterday itself is we have a large number of post graduate students who work as TAs. So effectively, they handle all the labs, they help in setting questions, they complete all grading and all evaluation and they maintain all records. So you can see the tremendous freedom that a teacher has on concentrating, on teaching, on setting examples. Of course, the teacher is ultimately responsible for the final question papers that go out. So usually, a lot of people give their sample questions and a teacher sits with them over a period of 2 or 3 hours before the mid-same or before any quiz or something like that to finalize what. Additionally, lab assignments which are suggested by the teaching assistants, every week the teacher sits with the TAs and decides on the lab assignment for the next week. So this is the tradition that we have been following for a long time. We also have to think as to what should be done in situations where in the colleges there are either none or very few post graduate students available to work as TAs. I believe many colleges, usually the teacher instructor in charge plus a few other teachers and others who are assigned for that course will have to do all of this. Consequently, it should be our endeavor to define a process by which this can be done by them, probably utilizing certain structures, certain contents which we give them, which they can use perhaps directly based on our own background. Here is the evaluation outline for the current CS 101. Quizzes have 10 percent weightage, assignments have 10 percent weightage, course project has 30 percent weightage, mid-semester examination has 20 percent weightage and end-semester examination has 30 percent weight. So the two written examinations of 2 hours and 3 hours each have only 50 percent weightage. In fact, I am contemplating based on the feedback that I have received to reduce this further. This option unfortunately is not available for most of the universities. I believe if there is a 100 mark paper or 80 mark paper or whatever, then well that is it and that is where the students get evaluated. Am I right in assuming that? Yes. The students have announced the minimum passing grade. Since we have relative grading, we do not give absolute marks. So we announce at the outset that anybody who gets so many percentage of marks, some people pick it at 50, I pick it at 40 because of the diversity of the students. Because it is a relative grading, students who have done some programming in their 10th, 11th standard will get benefit over others in relative terms. So I reduce it from 50 to 40. But anybody getting less than 40 percent definitely fail. And anybody getting more than 40 percent always pass. This is the meaning of this. So these announcements are quite important because they constitute the sort of direction which the students will take. As you know, students are mostly motivated by marks and assignments. I am Srinivas of SRM University. When we say that, I mean a system follows relative grading. Yes. So, we fix the minimum passing marks. Yes. For particularly, in fact, a teacher must fix the passing marks and the A grade marks. That is people who get maximum A grade. Then the in-between grades are advised to be set by the instructor based on the break points that one gets in a course which has anywhere between 5 to 50 students. And for large courses such as this one with 853 students, you will never find a break point. There will be people at half mark, quarter mark and so on. It is like joint entrance exam grading. So there you have to be merciless. Half mark difference is half mark difference, where you draw a line. So the suggested mechanism is a straight line interpolation. That is, I fix the lowest marks. I fix the highest marks. So this is actually a very simple mechanism. So these are marks and these are grades. And let us say I fix the minimum mark as let us say 40 as I have done here. This is the passing point. So anybody who is below this line will fail. This is my DD grade. I also fix people who should get AA, which will typically in this course will be something like 90 plus, whatever it is, 91, 92, 93. In fact, the way we do it is at the higher end, usually you will have a break point. Usually you will have a break point, not at the lower end. Once I fix this, so this is 90, let us say. Then I am supposed to draw a straight line. No discretion. I cannot use a discretion and simply divide this into as many intervals as is required to give next grades, CD, CC, BC, BB, etc. There is an exceptional grade in IIT, which is called AP. This is expected to be given to very, very few people such as not more than 1 percent. But 1 percent of 833 students is 8 people. This is done at the discretion based on how people are located in this ring. This is handy because there are situations when in a batch there is somebody who is so extraordinary that he gets 100 marks and everybody else gets 80, 85, 90 or something like that. Now if you fix 99 as A grade, then he will only get A grade and everybody else will get lower grades. So AP grade was introduced. But these are minor details, important, therefore I thought I would share with you. Now once I draw the straight line, it does not matter where this line gets wrong. Anybody below this will get CC, anybody above this will get BC. And if there is a lot of hard work among students, Aadhe mark se grade gaya. So jindagi mein Aadhe mark se jaata hai, toh I typically tell him ki Aadhe minute se train gaya. A train doesn't wait for you, I mean the life is not fair and anytime you draw a line there will be some people below the line, some people above the line and we know and they know that there is hardly any distinction between people in that conglomerate, above or below line. But well that's what life is. Anyway the point here was to stress that we have this evaluation. Now why this is important is because many times in our teaching, in our lab assignments, this evaluation is reflected. Just as in your teaching the evaluation pattern will be reflected. So suppose something is assigned say 5 marks and something else is assigned 20 marks, you are likely to spend much more time on the 20 mark thing, then on the 5 mark thing. That is natural and that I believe we must factor in when we define our common syllabus and the material. I have modified the evaluation of the current CS101 and this is the modified evaluation. I have not even announced the modified evaluation to people yet. I have held informal discussions with them but this is something which will interest you so I thought I will share this with you. The assignments which were for 10 marks, these are the lab assignments. We just announced that the last lab assignment will be whatever they are doing in the current lab subsequently there will be no separate lab assignment. They can use lab for practice and for project work etc. So I am reducing 5 percent marks from the conventional assignment. The course project which was 30 percent, it will be reduced to 25 and 5 marks will be for something else which I will mention. Incidentally going back our course projects are always team projects. Usually people are left to form their own teams of 3 to 4 people and they solve a sizeable programming problem. We generally find that on an average about 300 to 500 lines of code is written by a team for the project. This time I have designed a larger project. Each lab batch which consists of about 20 to 25 students, we have such 40 lab batches, 4-0 because there are 837 students. Each lab batch will do one project because I wanted to give them a glimpse of the real world software where real world software is never done by either one person or even by two or three persons. So if you really want large professional grade software what are the involved things amongst other things, programming is of course the root. But management of the team itself, management of the attendant documentation, management of the attendant testing, these things never get stressed in a first course. So through the project I am trying to stress these. So this is the way in which the project will be done by the team. Now coming to this, the 10 percent marks these additional plus 5 and plus 5 are set aside for setting quiz and exam questions along with the answers. So each team of 5 people will be setting up a quiz question with the correct answer, with the wrong answers, with the reasons for correct answer and wrong answer and with mention of which theme is being elaborated and mentioning which idea is learned by people when they attempt this quiz. This is an important concept I would like to share with you. Most of you would be aware of it intuitively. Some of you would be aware of it explicitly. That every quiz, every exam question, every project, every assignment, any evaluation must necessarily be an additional learning experience for the student. So if a student does not learn something new out of a question, we have failed in our duty to set that question. Because evaluation is not merely to find out what is the preparation of that student but also to kindle that student's should I say curiosity to learn something. It may be a small amount, it may be a big amount. That is why you will find that in IIT system, it is considered unthinkable that some questions are repeated because if a question has already been seen by people, there is no new learning involved. And most often the evaluation will be limited to that student's ability to omit whatever that student has mugged up rather than thinking. So both ways it is bad. Our joint entrance exam we are conducting for what, 50 years now? Not a single question has been repeated in 50 years. In my own question paper, if I repeat a question from any previous exam, it is considered by my own colleagues and peers as something of a very shameful activity. Now this unfortunately is in stark contrast to what obtains in the real world. I would submit that all of us should try to change this. It is impossible to change this completely because if you see most of you come from better institutions but you would have seen institutions around you. There are people who are so busy in just teaching, lecturing classes, setting up labs and doing that, they have no time to think. If they can read the course material itself, it will be a great thing. How many teachers today are able to write programs on their own to set examples? Many teachers will be forced to pick up some program segment from a book or something and use it as teaching. Given this time we have to provide them help. And that is why I have conceived of creating a large question bank. And what do I mean by large? Something like 5,000 quiz questions and something like 1,000 questions of programming type. Now if you repeat one of them it does not matter because no human being can read all thousand questions. And we can excite our teachers to say take this question but make some small modification. Test your program answer because the actual answer is given and then give a variation. Do you agree that this is possible and this is feasible? So this is what we propose to do. As a starting point I am asking students themselves to set questions. This comes out of the fact that they found some of the questions tough, some of the questions taking long time, some of the questions doing this etc etc. And I said do you know how difficult it is to set question papers. Some students said no sir it is not very difficult, it is a matter of a small time. So I said alright I will give you 5 marks, you set up a question. So I have these 40 lab teams. Each lab team comprising 20 to 25 students are supposed to give a question and possible multiple alternative answers to that question as a submission for 5 marks. There are 5 teams in that batch. So each team should give one alternative answer to that question. Somebody should think of that question. The question should again do the same thing. It should stipulate what programming themes because it will not be a single theme. So what programming themes does this question test? It could be a multiplicity of array manipulation, floating point numbers, characters, string, whatever. And they will give that question. They will give the model answer. They will give multiple alternate answers. They will give answers which not very good students may be writing which may have only partial correctness because the students are doing it. They will do exactly what they would ordinarily. I expect to get a lot of useful things from this. And I would in fact strongly suggest that giving such an assignment to students is useful in two different ways. One, they get to see our side of the story. That is not easy to set good question. And two, they will understand that when they make mistakes, if they lose marks, that is correct. Similarly for quiz questions, these 5 marks are for quiz questions. Every team of 4 or 5 people that we are setting aside. And there are 200 such teams. So every team will be required to give a quiz question which will be a short multiple choice question or a short answer, single answer type of question. And again they will do the same thing. They will define the theme. This time the theme will be a single programming concept where the quizzes are typically to be asked during the conduct of the lectures. I will give you an example. And they will say this quiz question give the right answer, wrong answers, etc. So this is the CS 101 pattern. Why I am mentioning this elaborately is that if you consider useful, we might retain some of these aspects in whatever material we prepare. After all we do not expect our material to be used exactly as it is by anyone. But if we have sufficient material, including of the kind which people ordinarily use, but plus these additional things, then some people may be enthused to use partly this, partly that, etc. That is the idea. You please explain how the quizzes are being conducted. Is it monitored by the teacher? Which one? These are evaluations? The quizzes, quiz evaluation. Ah, quizzes with evaluation. We have in our evaluation syllabus, we have a slot assigned for mid semester, a slot assigned for end semester, and a slot assigned for quizzes. So there is one hour slot for quiz one and one hour slot for quiz two. That quiz one is actually conducted as a regular paper. Evaluations of course done by the TAs. It may contain many questions. We have the quiz one paper, which I will get it uploaded on to the, I think it should be uploaded on the moodle, because in my lecture, subsequent to quiz and mid sem, I analyze the question paper. That itself is a sort of new learning. So it is similar to a written exam? Yes. So they have to answer quiz all through a written exam. But I will tell you subsequently what I am planning to do from 15th October onwards to conduct online quizzes. Because even these quizzes, which are 10 percent marks here, we have conducted only one quiz, which is 50 percent of the evaluation. So they will get marks out of five on that written paper. The remaining five marks will come out of online quizzes that are asked during the lecture and answered by the students and the answers recorded without disturbing the class time. I will tell you the innovation we are trying to do. In fact, you will have a demonstration of that new gadget, which we have designed and developed here. I think day after tomorrow they are planning that. Excuse me, sir. Yeah. So how do you evaluate the course project? You have four to five members in a team, right? Yes. How is the evaluation done for the project? Okay. Originally the course project is evaluated by the lab TA. Each lab of lab batch of 25 people has assigned the lab TA. So that lab TA is actually representative of the teacher for those 25 people. Additionally, four such teams have one senior TA. So usually each lab TA is supposed to conduct vivaas for the teams of his lab batch to assign marks for the project. Sorry. Oh, it is at the end of the project. When they submit the project, but the students are required to maintain the continuous development record by filing weekly reports. And we can cross check that we use the RCS revision control system. So your code, for example, you have to keep submitting the code on a regular basis. If your code miraculously appears on the last day of the project, you get zero marks. Very simple. Any copying of any kind is announced to get a fail grade with repeat guaranteed. Like, suppose among the four students only one student is doing the project. That is what is to be found during the viva. So the project evaluation is a good point that you mentioned. So let me tell you what we, at least what I propose to do for the project evaluation here. Let us say the project has 25 marks here. This is for the lab batch. There are five teams. Team one, team two, team three, team four, team five. And each team in turn has up to four students. The way this is evaluated is out of these 25 marks, 10 marks are for the project report. So every student gets the same mark. Suppose the project report is evaluated as 8 out of 10 or 7 out of 10. Then every student get these seven marks. This is the concept that if you are a part of the group, then whatever good or bad things the group does, you get the same thing. Out of the remaining 15 marks, five marks are given to each team out of five that is. That means this team may receive three marks, this may receive four, this may receive three, this may receive five. All teams may receive five. Who decides these marks? Each team has a team leader. And the five team leaders constitute the leadership of the batch. And they elect a batch coordinator. So these marks are decided by batch coordinator plus team leaders. And plus the lab TA working as an observer. He has only an observer status. I will explain because this mechanism that I will elaborate here is also the mechanism used to assign the 10 marks for each individual student. Ordinarily these 10 marks used to be given during the Viva type. Now you can realize that a teacher cannot participate in Viva for each individual student. If you do that, you will not be spending more than two minutes or three minutes on that Viva. And I contend that it is impossible to correctly estimate the student's participation in the project in three months. At the most, you can find out extreme cases. That means somebody who has done no work and trying to bluff his way through, you can find it. Yet I have consistently found some very smart Alex who have not done any work. But they have just understood what the project is all about. And they pose as if they know everything and they have done everything. You would have come across many such things. For last few years, for a postgraduate course, I have been doing this evaluation in a completely different way. And I have perfected that technique. This is the self evaluation by peers. And I propose to use this for first year students this time. What is the self evaluation by peers? The 20 people sit together in a small meeting and each one is allocated on the scale of 10 marks by himself or herself first, modulated by the peers. Now imagine if I have not done any work, but I claim in that group, The teacher may not know, but my colleagues know. They will tell you, you should get zero, then I will negotiate. And most probably I will get two marks or three marks. Believe me, if you consider this, we have never tried this kind of thing. But you consider this, that a group peer evaluation is likely to be much closer to the truth than any Viva based evaluation that you can do on an average. There will be exceptions. This is what I have tried in my postgraduate elective course on modern information systems, which has about 120 to 150 students. With the proviso, this is the following proviso, which is important. The proviso is that the teacher at his discretion will select any two students from a batch after this evaluation is submitted. And will conduct a detailed Viva to determine whether that student should get as many marks as been stipulated by the, if the variation of the teacher's observation and your own marks is more than plus minus two, then the entire batch will get that effect of plus minus X in all their marks. In short, if a student has been given seven marks out of ten, and if on such a determination the student should get only three marks out of ten, then every student in that batch four marks are reduced. You get the point. And this has to be done meticulously. In actual practice, you never have to do it. I have been announcing this for the postgraduate students. I have been conducting such sample Viva. There have been one or two cases. Invariably, what happens is the moment sample is selected, the team coordinators rush to you saying that, sir, there is an error in our evaluation. And we would like to resubmit this evaluation. And you quietly accept it and go ahead. But I will tell you one thing. I have found over the last five years I have been using this mechanism. And earlier I have been conducting Viva's for the students themselves. I will tell you that on an average the marks returned by the students themselves on their own evaluation are far more accurate than what we can ever find out as teachers. Please reflect upon it. This has never been attempted because psychologically we have been trained to think that it is the teachers who evaluate. Therefore, we are actually depriving our students of an extremely important concept in life, self-evaluation or evaluation by peers. Notice that in their life they will be evaluated by their peers, not by their teachers or by themselves. Isn't it a wonderful thing to introduce this notion while they are studying? I am going to recommend this very strongly at least as an experiment, if not for the whole evaluation, for some percentage of internal marks that are available to the teachers. Let people experiment. There will of course be some differences. My simple contention is that the existing system of Viva-based evaluation is definitely not working ideally, is not able to get exact evaluation of this too. So if this also has problems initially, it is better to resolve the problems. In any case, IIT Bombay thankfully gives me the freedom to do anything I want, as long as I endorse that this is my evaluation. That's the end of it. Now, autonomous institutions would have this freedom, but it is a very bold step. I have been doing it for the last five years and the IIT has never said something wrong in it. In fact, I have been asked to make a presentation to the senate and the faculty meeting on this scheme after I conducted for CS 101, because some people are worried about what will happen to the first year students. Are they matured enough, etc., etc.? Anyway, we will think about it. Excuse me, sir. Sir, it's an excellent system to have TAS for evaluation, because normally we find it very difficult to do the project evaluation conducting Viva, etc., because we have a main faculty and three supporting faculty members for doing the entire job. So what is the criteria for selecting TAS? Since they are regular MTECH students, how do you select the students? Frankly, for my course, I don't have much choice. We have about 84 MTECH students joining CSC department every year. And I need about 60 of them. So we just go by the roll number. Roll number 1 to 40 or something are routinely assigned to CS 101. And then the last 20 roll numbers. So how is it feasible for them since they have regular classes? For CS 101, which is in slot 4, no MTECH course is offered in slot 4. And I would suggest that any service course of this nature, whether it is mechanical applied mechanics or whatever, wherever you need TAS, that department must be told not to run a course in that slot for MTECH. Otherwise you can't function. You can't function. In any case, if you want to function in spite of that, then the best thing is to let the students evaluate themselves. Or best thing is to have greater weightage to quizzes and things like that. These are very practical problems. And I am glad you raised them because this is also we will have to address in our content creation. Thank you, sir. Sir, for project in a group of 4 to 5 students, how many line of code is expected? Okay, that's the point. We do not know that because these 5 students are not going to do a simple project. For us, the entire lab batch is doing a project. That project is divided into 5 parts for the 5 teams to handle. But I would expect since an individual student is capable of writing anywhere between 100 to 300 lines of code, 5 students should be able to turn in anywhere between 500 to 1500 lines of code. But it does not happen that way. When the team increases, the per person productivity of debug code reduces, as is well known from the software engineering principles. Frankly, it is not the amount of lines of code that I expect them to produce, but good well tested code to the theme of the project. And please note that these are not senior students who are already aware of software design and so on. So the teacher has to help by giving a fairly well idea of breaking up this project into teams and so on. So that means a lot of work will have to be done ahead of time to decide on the course projects. The typical time required is about one month of work which should be done during the summer vacation. I could not do one month of work. I have done only about 15 days of work because I was not free in this summer vacation. So right now I am slogging in the late nights along with the TAs to decide on the projects. But that work has to be done because you see if I have something like 30 percent weightage, then there has to be sufficient effort. Let us not kid ourselves by the way. If students spend x hours on this entire course, then a teacher must spend anywhere between 3x to 5x hours. Otherwise we cannot do justice to this. The sad part is many teachers do not get that kind of free time in their institutions. And that is the reason why we are saying if you can spend only x hours or 2x hours, not 5x hours, here is a material available. Choose from this material and use it without spending much of your time in it. That is the purpose of it. So let us go ahead. I was talking about pace of CS 1-1. We have only 2 lecture hours per week and 2 lab hours. The labs run Monday through Friday, 6.30 to 10.30 in the night because we do not have computing facilities. We have about 100 computers in a lab. So 100 students of 2 batches, 6.30 to 8.30 Monday. 100 students of next 2 batches, 8.30 to 10.30 on Monday. Same similar batches on 4 batches on Tuesday etc. So there are 5 days and 8 batches per day we cover 40 batches. The batch division is made much simpler in my course. Usually the issued allocates batches. But those batches are built around computer science students, electrical students, 2 tutorial divisions for this etc. In a programming course you will agree that we must mix and match. So my batches are decided simply by the last digit of your roll number. If your roll number is 0, your batch is 0. Roll number is 1, your batch is 1. Then each batch 0, 1, 2, 3, 4, up to 9 is further divided into A, B, C, D. So that makes approximate and then of course there are changes because some students have a national sports organization participation on Wednesday evening when they can't come for the lab. So they have to be shifted to Thursday afternoon. There are a lot of logistics which the TAs handle. There is an extra lecture slot is provided because each course of 6 credits ordinarily has 3 lecture hours in our timetable. So we have Monday, Tuesday as regular lecture hours and Thursday as an extra lecture. Usually I take that extra lecture initially because there are some chutis on some days and so on like we are consecutive Mondays as holidays this semester and we are this one week of swine flu chutti. So all of that gets accommodated but I will stop taking Thursday lectures from next week on Wednesday. The point is the pace of the course therefore is fairly fast in IIT. Usually you would have at least 3 lectures per hour, 3 regular lectures and I do not know whether the lab it is 3 hour lab or 2 hour lab. Additionally you might have a tutorial hour. We don't have that luxury for this course. We are in fact suggesting that we should introduce a 2 hour tutorial which will increase the credits of the course therefore synnet is not ready. I have I will just quickly go through the sample lecture session the first lecture. There all the lectures slides as I mentioned are available in the course slide course site. I will just show you the course website but I will request you to look at the course website in your free time. The course website is visible all across the country. Here is the overview of the lecture. This is the first introductory lecture where I compare our computer with one Mr. Dumbo. He is basically a fellow who has no intelligence in the conventional sense. I describe the Dumbo's memory. I describe how Dumbo interacts with us. I describe a simple model of Dumbo's computing. I comment on instructions and their execution and I comment on the stored program concept. This is all covered in one lecture. So, here are some slides. We will quickly look at these. So, I define a buddhuram computer Mr. Dumbo. Incidentally, I am now trying to get animation to this caricature. This Dumbo was conceived. This was my drawing, not very good. This is a drawing of a professional animator who actually participates in this national mission as well as his wife who is also an animator. So, she has some ideas of animation. So, this is her Mr. Dumbo. You can recognize him as a computer. This fellow looks more like a joker. So, I like this and this is what I have used subsequently. I have said that our Dumbo has many assistants. So, I call them different names. For example, I have an operating system Dumbo which we will call the main Dumbo. Then I have a compiler Dumbo. Then I have whatever, whatever. So, I have an input-output handling Dumbo, a hardware Dumbo, etcetera, etcetera. These are all people who together solve my problems. He is the theme. Then I state the characteristics. Dumbo cannot do anything on his own but can execute given instructions correctly. He can do arithmetic operations, logical comparisons, manipulate strings, etcetera. Essentially, he can operate upon and manipulate values and produce resultant values. He can compute. Therefore, we call him a computer. This is the simplest explanation I have found for Dumbo. I then state that Dumbo cannot remember anything in his head. So, he requires memory for even the smallest thing. Then I declare that Dumbo's memory is equivalent to a cupboard which has drawers and each drawer is called a memory location and each drawer location is uniquely named by A, B, C, whatever, whatever. So, this is Dumbo's memory. Then we say that each drawer contains some value. For example, it could contain a number or it could contain a string. So, Dumbo's memory location B contains this. Location F contains run. Subsequently, I tie up these names with pointers saying pointers are the locations to these drawers. I have found out that such simple graphics tends to explain things much more clearly than just textual words describing memory locations. More importantly, observe that we are not talking about binary number system, address space, etc., etc., at all. Now, that is something where we need to modify the syllabus and the teaching style in most engineering colleges because traditionally, you start with number representation. Now, if I am teaching higher level language programming, I don't need to know how the machine represents numbers internally. I am learning to drive a car. You are starting by telling me the internal combustion engine and its working. It is, I think, patently stupid. We take away a huge chunk of learning ability of the student by doing that. And that is not my opinion alone. There is an opinion shared by many and many of you will implicitly agree. There is perhaps a wrong way to do it anyway. But this is what we do here. Then we define each location can contain only one value, not multiple values. The values in locations are normally unknown, which could be either not defined by us called undefined. How does a desired value get into a location? Either we supply a value which Dumbo stores there or Dumbo calculates and puts a value. Essentially, making it clear that either an input operation or a computation and assignment operation is the only thing which can change the value in the memory location. This will later on clarify to them how initialization of variables is important. We define an IO by showing a simple model of a cart and this is the IO bus which the Dumbo carries externally supplied values into the memory location. So, we say we call it a data bus or something. Again, trying to introduce nomenclature which is similar to the computer nomenclature but without getting inside the computer. But Dumbo does anything only if so instructed. So, we have to instruct the Dumbo even to take a value. We say C in greater, greater b. Now, this is the notation that I use from C plus plus. Why C in? Why not input? Why not read? Why not get? Why do you use greater, greater? So, before the student raises these questions, we raise these questions and we tell him yes, you can say read, you can say input and we will say that many times when people describe their algorithms in an informal style, they use these words. However, in any language, including a programming language, somebody has said some convention which everybody else has to follow. So, it is an important point to make here that these conventions which we incidentally call syntax are to be introduced as if we have unfortunate thing, we have to live with it but we must understand the meaning. This is the only way to justify a syntax that we have to get used to it because without it, others will not understand what we are saying and the example to be given is natural language. So, why do I put a comma there? Why do I put a full stop here? The example we give is we write a long sentence without punctuation marks, nobody will understand the meaning. So, it is important and therefore, we have to follow this. Then we say the action in response to such an instruction will be that Dumbo will collect a value, take it to memory cupboard and stored in that location. Important point, the earlier value will be over it. Similarly, we say output. So, we can say see out this, see out this. Dumbo will copy values from his memory locations and present these two as the values in locations are understood. Very simply stated but input and output is completely understood by people and we define an additional useful features such as see out of a string and so on. So, we try out Dumbo's input output. We say see out give value for b, see in greater greater b and Dumbo is shown to carry a value 437 which goes into the b. Observe that in the previous example the drawer was shown to contain 437. It is just trying to say this. Here is a small joke, f is a string. So, we say run a day. Then we say is Dumbo taking in professor run a day himself? Of course not. He is taking the name. So, we say that what Dumbo carries is actually a string but what we type in is the name run a day. So what Dumbo is carrying is a string. We are trying to give him a subtle hint that such values are to be distinguished from numerical values without going into further details. We shall soon have animation for most of these things hopefully before the December course. Now Dumbo is computing. We say if these two numbers a and b are stored in the two drawers say a has 35, b has 12. I forgot to open up the drawer a because when I opened up the drawer b, b was not visible. My limitation of drawing a professional will do a better job. The point that I am making here is that addition is not as trivial as it seems. Dumbo will have to access memory location, take the values into the registers, calculate the sum and store the register values back in memory location. Typically what you would try to explain when you explain the intrinsic operations of a digital computer but instead of doing that I use a model where we say the Dumbo has to do a plus b and assign it to some Dumbo starts thinking and what will Dumbo? So Dumbo will use his assistants called junior Dumbo. So Dumbo junior uses rough sheets or registers. Excess the location a and copy the value 35 into a register. Excess the location b, copy the value 12 into another register. Add the two values to get 47, store the result value back in location sum. This explanation is found meaningful provided you also have a diagram. The diagram is missing in my, oh no it is here. So I show him a table that this is how the junior Dumbo will actually copy these values, do this and put the result back. This helps in explaining that any arithmetic operation and assignment will take some time. It is not a zero time trivial activity and that Dumbo cannot do anything directly on to the memory location that there is something else. Later on when you explain the central processing unit and memory this thing comes in handy. And of course we say a and b continue to hold the same values, the location sum will contain this etc. Then we say how do we give instructions? So we say most machines take our one instruction at a time and execute it. The example that typically we give is a switch. You put it in a down position, lamp will light, put it in the up position, lamp will be off. But I am giving an instruction actually real time online and only when I give a instruction the machine follows it. Dumbo is special because he can actually store instructions and therefore we call it a stored program machine. And where does the Dumbo stores? We say in the same memory and we say logically Dumbo partitions is covered into two parts. In one part he stores our data values and the other part he stores our instructions. So we call it instruction space and data space. That is it. Then I give an example of a complete program. Include IO stream using name space. This program takes two integer numbers as input and calculate the sum. Int main, this, this, this. Now this is a complete program. This is the first time they are seeing a program. So they will have natural questions. So I tell them that at the moment ignore all of these. Just concentrate on this, this, this and this. Because these are the instructions which we have actually explained just now and they can understand. But we expose them to this. So they become familiar with what nonsense is being written. As Professor Radhade said, int main. I mean it appears very stupid for some time. But a program main is more meaningful. I missed out on that hash define that he uses. Perhaps we will use that in our material that we create. This is important for the first time. Once people know programming they can figure out everything. But initially the exposure should be limited like this. I have another program which says convert temperature from degree centigrade to degree Fahrenheit. Then again I say ignore float. But just understand that the values that we are dealing with in the previous example where integer as you might have guessed by this word int. But when you convert or centigrade to Fahrenheit, etc., you will deal with fractional numbers. And the way Dumbo handles fractional numbers is by recognizing them as float which stands for floating point. Now there is no floating point in the values that we give. So we will explain this later. Just introducing. So for that time being please understand that fractional numbers are to be represented by calling them float. Then I give this example. Then I conduct a quiz. This quiz is conducted online. So approximately how many different programming languages have been defined so far by the computer scientists? There is of course guess work. Nothing has been talked about. About 5 there are I will tell you the result of my quiz because this was conducted by people raising their hands. So there is no record of the quiz but you can sense that. About 20 people said about 5. About 500 people said 6 to 20. Majority of the class said 6 to 20. Almost all the remaining people said 21 to 100. Nobody gave the right answer more than 100. Unfortunately many of our teachers are unaware of the history of development of programming languages. There are some very beautiful books available but there are more than 600 programming languages that exist in this world. People generally know only the well-known things. It is exactly like this. How many languages are spoken in this country? Invariably people will say 17, 20 and then say there are many dialects. But if you say including dialects give me the count of number of human languages spoken in this country. Nobody has an answer. Probably more than 3000 we do not know. Now about computers where we can be very precise. This question actually sets people thinking that while I may be learning C++ in this course or Java or whatever that is not the end of the matter. This is also important from another perspective. Students and unfortunately many teachers believe that the subject they are teaching is C programming or C++ programming or Java programming. It is important to impress upon both teachers and students that what they are teaching and what students are learning is programming and the programming language used is incidental to the whole effort. That is why you will find IIT syllabus does not say this programming. It says programming principles using a language like Java or C stroke C++. This is another quiz which I conducted. The symbol backslash n in the instruction C out F less, less backslash n will produce the following additional output. Again they are practically guessing. Backslash n nothing visible and end of line is inserted. I cannot guess. The right answer to this is I cannot guess except that those who have done programming earlier in their lives they can guess nothing visible and end of lines. I immediately got to know that about 135 students in my course already had done programming. Extremely important feedback intuitively available. The counting incidentally is not done by me explicitly but I keep the people to raise their hands and my tears count the hands. Now this is a lacuna. I would like to count that automatically. We will speak about the gadget that we have designed and we shall be using it for the December workshop. All the teachers who attend courses at your players will have that gadget in their hand. They will be answering, okay let me just spend one minute on describing that. Have all of you seen a program called Kaun Banega Karodpati? So when the Amitabh Bachchan conducts audience poll in the contestant request for an audience poll, he says, okay audience your time starts now and within 30 seconds you will notice that every member of the audience has a gadget and that fellow clicks A, B, C or D. What is shown there is not individual responses but collective responses. So there are 100 audience or whatever it says 20 percent said A, 70 percent said B, 10 percent said C, etc. And that is supposed to be an help to that person. Here we wanted to use these gadgets to capture individual response from every individual student. These gadgets incidentally are called clickers and I decided when I got this course aside, one question I was asked is how do you make sure that people do not sleep in your class? My answer was that I can actually guarantee that some people will sleep because even when I am teaching a class of 30 I have found some students sleeping. So they said that we are not worried about some students sleeping but increasing number of students sleeping because the class is large. So I said if I conduct quizzes every lecture then people will not sleep. And to that my friends answered that unless you can record those quizzes and assign marks because every student lets face it whether IIT or your college. If you say there is some activity for which half a mark is there student will be willing to run 100 meters to get that half mark. You agree with that? So if you can ensure that the student response is actually collected and marks are awarded and that the quiz can be conducted at any point in time in a lecture, student is far more likely to be alert in the lecture and also student is far more likely to attend the lecture in the first place. Now how do you make sure? If you conduct a normal quiz it takes about 20 minutes to conduct a quiz minimum. Even if you are asking one question because 10 minutes to circulate papers, 2 minutes for that student to write the answer and 10 minutes to collect back them. It is an impossible thing. I want to conduct at least 3 quizzes per lecture. So I went after this clicker. When I discovered I found out actually that these clickers were very well known in United States and they are being used typically by physics teachers in junior colleges to conduct online quizzes for 30, 40, 50 students. A colleague of mine retired professor Kutchakar was our deputy director of chemical engineering professor mentioned to me in one event when he met here that he actually used these clickers for a class of about 60 students in the petroleum university in Galdinagar or something like that for some course. And then he sent me the company which had supplied some Florida company and the original manufacturers etcetera. Each cost 30 dollars. 30 dollars is 1500 rupees per gadget. I thought the cost was more but still I call that supplier here. My colleague Professor Sahana Murthy who will be I think having a session with you later told me that when she was doing her PhD and post doc in US in education technology she found these clickers to be extremely popular amongst junior college teacher. So she endorsed my idea. I called that fellow and that fellow said one unit will cost 2500 rupees. I was very upset. I said dollar is 50 rupees. He says no sir when you import dollar is not 50 rupees. We have lot of hassles plus custom duty this that and so the cost will be 2500 rupees plus taxes. And I thought this was too much after all our economic scares neither the students nor the teachers nor the institutions can afford this. I had set up a lab called affordable solutions lab to develop solutions which are preferably one tenth of the cost of available solutions which may not perform as well but which will meet the minimum requirement of the function site. So to this lab I gave this challenge saying 2550 rupees. They work for about 10 days came back saying it is impossible because they have estimated the bill of material. You require basically a radio RF radio frequency transmitter receiver and a let us say a microprocessor core and of course the associated things etcetera. They did a bill of material including coca for that and whatever and they said it will cost at least 500 to 800 rupees. But since 500 to 800 rupees is one third or one fourth of that original price I said we will develop it. In the summer I got summer interns from national institutes and so on. I selected a large number of them. Ten of them I gave them this work of developing a prototype. And those people have done an excellent work. They developed a prototype. They showed it working. They showed it working in the Convocation Hall. They used a slightly high end chip. Subsequently I have actually selected people under this mission, programmers and hardware engineers who have been developing it. We have found out a manufacturer. We actually did a indent called some three or four people who manufacture such things and selected the final prices coming to about 560 rupees plus taxes. Totally is less than 700 which means almost at one fourth price. Now this entire design of the hardware including the PCB design, embedded software and the back end software to connect these clickers to a receiver and the machine. All of this we are going to release in open source. We want people to manufacture these things and my ambition is some great manufacturer makes these and sells these to fairings at $20 a piece in their own country. That will be a real achievement. But that is a separate matter. I have ordered 1000 pieces to be made. They were supposed to be delivered last week but there have been delays as you know in all kinds of manufacturing logistics. We will get these 1000 pieces only by 8th of October. But we are getting about 20 pieces or 15 pieces by tonight. Then they will have to do the uploading of that embedded software. They are still developing because nothing has been tested. The first pieces are coming but hopefully they will work. As I said it is the impossible which takes us some time. So I have given them time till day after tomorrow when we will demonstrate this to you. Now you can imagine if this quiz is given to the students and I say your time starts now and everybody has a clicker and he presses A, B or C and I guarantee that his answer is collected here and he or she gets one mark for that quiz or zero marks depending upon the answer. Do you agree that alertness will increase? Do you agree similarly that if you have 30 or 40 teachers from surrounding colleges who come to your respective centres and I conduct a quiz like that on a visa. Their alertness is also likely to be increased. The only difference is that each of your centres will have to have a small setup which will have the receiver. Your receiver will collect responses from them. You see the question is getting transmitted through visa. They all can see this question. But their answers I cannot see because their RF packet cannot reach me but their RF packet will reach you. And we are developing software as we speak to further extend the back end whereby the data which is collected from 30 or 35 existing people will be put into a file and the file will be FTP. And when I do the file transfer here I will collect the files from all the 35 locations. All that will happen while I am explaining the quiz answers to them perhaps after the quiz conduct is over. And at the end I should be able to within 2 minutes I should be able to show a display like Amitabh Bachchan used to show that totally out of 1000 teachers 700 teachers got the correct answer. 300 teachers got or 100 teachers got this wrong, 20 teachers got this wrong etc. And then if I am sadistic I can say teachers from Jharsuguda have the lowest score but if I am positive I will say Koyam 2 teachers have the highest average. All of that can be done instantly. And of course this should be a good help. You see this is how technology can be used to help us. We want to conduct evaluation but we cannot because physically it is impossible. Why not use this technology? In United States now students are being asked to buy clickers from either this or that or that manufacturer on their own. Look at engineering students. I do not know what the fee is but typically it is in the range of 20,000 to 30,000 rupees per year. Is it not possible for students to invest in 500 rupees? Is it not possible to institution to invest in clickers per year basis for 4 years? Every student could have a clicker of this size. Now this is I believe an important thing. Let us see how we work on it. The point of this exercise is that in one lecture itself you can see the progress that has been made. At the end of this lecture they can actually attend a lab class where in the second lecture I tell them there are two lectures before the labs begin in one week. In the second lecture all the lectures by the way are on the website.