 I got all this gyan from him by the way, last time when he gave this talk, that was in April, and I am teaching this course this year. So I tried to incorporate some of those things. I did not use turtle except for initial labs where people really had fun drawing turtles, but that was lab assignments. I explained some, made some problems, one of the problems where I had asked them to calculate histogram for an image. So I sort of told them what images are and what histogram is. And the notion of histogram equalization with some demonstration of images. And I was told by many students just like you got the feedback on graphics that they understood histogram computation better with those image examples. So basically the actual problem was given an array of digital image to calculate the histogram. So I showed them that the histogram is in the range of 0 to 255 for example and for black and white image you will have various values. So I gave them an example of an 8 pixel by 8 pixel image. Incidentally all the images are from Wikipedia. I do not know how many of you have tried to search on programming concepts on Wikipedia. So the best explained programming concepts are to be found on Wikipedia and that is complete open source knowledge. So at the beginning of this slide you will find just like many of my previous lectures they say several slides courtesy professor Ranade or several slides courtesy professor Soni. There are several slides courtesy Wikipedia. So this is an image each large square actually is a pixel here. And then I said these are the pixel values or the 8 by 8 things. Then I explained what would be the histogram and you calculate that. I explained that this histogram has the smallest value at 52 and the largest value at some 126, no sorry 154. Now if I were to stretch this histogram take it to 0 and take it to 255 perhaps the contrast will improve. Then I explained that if I once calculate this histogram I can calculate the cumulative distribution function and then there are some histogram equalization mechanisms. So these formulations are taken verbatim from Wiki because I did not have time to learn how to type these things in this slide. I simply copied the image and put it which is perfectly legal. Then I said after histogram equalization I explained to them that look what was 52 becomes 0 and what was some large value becomes now 255 and effectively the whole image is stretched. But the most important impact was when I showed them that this is how it will look like. And as a contrast I redrew the previous image and kept showing them by going up and down. So you can see very clearly the contrast improvement. Just for a good measure I took another image a grayscale picture which is actually a scene. I showed them the histogram and CDF how it is restricted in a small range Then when I equalize the histogram how does the histogram and cumulative function looks and then how the actual image looks. And again if you see this image which is the original and this image people actually clapped. In fact I have found that in 837 students unlike Prof. Anade who actually delivered the lectures twice to do smaller batches I am giving lectures in convocation halls. All 833 students sit at one time and there is no way for either the teacher or the students to indicate unhappiness or happiness. So what I have found out is that when students do not like one particular announcement they will just say and there will be uniform sound all across. And when they like something they simply clap. So there is a huge clapping here and then I explained that to do this all that you need to do is this is how you will calculate histogram this is how you will read the file and basically the histogram computation is just this crucial thing So the notion of associative array where you take the pixel value treat that as an index. The original problem which I had given I had given a restricted image which did not have pixels below some 24 and above something. So some people had actually wrongly defined an array to be of only that size and they were doing a variety of computations. Now these are actually simple concepts. The idea to use these kind of graphics I got from Prof. Anade's lecture. So thank you Prof. Anade. This is a great example. If we use algorithms before explaining or write a program for the particular problem will it be okay for that if we explain through algorithms kind of steps. Can you give me an example? Like suppose for the Fibonacci series or for any sorting methods if we go from the scratch of algorithm and then we try to tell the students to write a program in a syntax of like C language or C++ language will it be good for that or not to develop the programming skill in students. So there are several answers to your question. So say for example depends firstly depends on what course you are teaching. I recently encountered a course in Mumbai University Mathematics BSc Part 1 or something like that which was a course in algorithms but they would not write even one program. So if they can do a whole course without writing one program certainly in theory it is possible to explain an algorithm first definitely. So no harm at all. At this level however I suspect that you should get to programming with some regular frequency. I mean I find that just understanding all the programming constructs itself takes a long time and therefore if you sort of spend a long time on describing algorithms in an abstract language I would rather say try to write it try to make your program so simple that it looks like an algorithm itself. In an algorithms course people use say English like pseudo code. Now that pseudo code requires some level of maturity to understand. That is precisely the maturity which is lacking over here. I would also say that rather than talk about sorting which is interesting I would probably say talk about histograms because look there has to be a payoff for anything that you do. So after you do the histogram you have to apply it to a real picture and see that the contrast actually improves. That is really important. That is really important for the students. Otherwise it remains an abstract exercise. The fact that it is related to something is very important. So to do that you have to understand the algorithm you have to read the program and you have to execute it. All the three steps are important and in each step something exciting has to happen. Just like I mean if you want that clap you have to do that. But I mean the students clap for a really good reason. Actually I will tell you what I will further modify the answer. Suppose we decide to try it this way. You are trying to explain an algorithm and then follow it by program. But keep a constant visual on the faces of the students. If your algorithm does not excite them and you can feel it, please cut it short. Because although the algorithm will be very nice will be very important but if they are not paying attention to it only you are enjoying the algorithm. Our job is to make students enjoy the algorithm. So that is why there is no unique way of teaching programming. We used to have a saying when we were very young teachers I am talking about 1971-72 that if there are M teachers teaching programming then they would like to teach in N different ways and N is often greater than M because the same teacher has different views on teaching programming. And the rule number two is simpler. Irrespective of how a teacher teaches programming a student learns programming on one's own. I did not like the second rule though. But now if you combine the fact I think the teacher's job of course is to train the student in programming skills and give enough information skill knowledge syntax and so on. But I think the primary job is to motivate the student in believing that programming is important, useful and interesting. And it is towards that belief that we are trying to give different examples, different segments and whatever. So the generalized answer is yes if you feel that you can describe an algorithm followed by this but I like professor Ranade's observation that do not expand so much time in algorithm that very little time is spent in either constructing the program or enjoying the results of the programs particularly the program in relation to some real life. And in an introductory course it is really important to make it relate to real life examples. These days I think displaying images and producing sound is so easy. So we have to use that. Incidentally he mentioned salting. So this week's lab assignment in my course mid semester exams have been graded. So mid semester marks are there. I had used the string class so far that I avoided either the pointer or the care array concept for storing strings because null terminated string is a very artificial concept if you want to look at string as a data type you can do that, you can't concatenate string you can't do anything that string class permits. However you have to introduce these notions. So I have given them a text file entered by TAS in spreadsheets So we have a serial number, roll number, name batch number and marks. And then all of these are merged. Then I said I have exported this file into a CSV explaining comma separated values. And then I said this is your input. Now you read the input. In string arrays however you have to find out those delimiters commas and things like that. For which I have said character array. So take each line into a character array find out delimiters. Interesting problems like somebody's batch is missing, somebody's name is missing somebody's marks is missing, etc. And then finally they have to sort these in descending order of marks and print the top 10 performers. Then they have to find the average marks per batch I have 40 batches, lab batches The course project is going to be done one lab batch, one project. 20 to 25 students will do one project. So there is going to be a competition. Now when they find lab batch averages they will suddenly realize my lab is better than others or my lab is worse and accordingly they will decide their strategy on doing projects. So this way if you can whatever little way, this is just one way whatever little way you can keep their involvement in the progress of the course I think that is the gist of what Prasad Araday is saying that ensure that they remain involved in whatever you do. Am I right? Absolutely. Better than I have said. I am Sangita, professor of computer science department Amrata school of engineering Bangalore Actually I have a background in maths that's why I find that when you say that you start teaching triangles or circles, students identify because there is a well defined logic there. So what we do is we decouple the logical thinking from the syntax for some time. So they feel that their thinking logically is more important in programming than worrying about the syntax. We are not telling don't tell about int or don't tell about repeat all that. So we are making the syntax simpler. So in that it looks that if a good teacher has brought out a set of well defined problems as you are telling focus through a problem towards a programming construct so if at the end of this workshop we can come up with say 25 set of well defined problems which cover all the programming constructs. And each of these problems can be decomposed into well defined tasks with a well defined logic. Most of the teachers in local colleges may not have so much of creative thinking then we can make that task easier. If we can bring out such type of problems because expecting that all the teachers would get this type of creative thinking is too much to ask for. I am sure all teachers will be capable of doing it given enough time but I understand the spirit with which you are asking this question. Prof. Phatak pointed out the home page of our courses. So last several years of courses have been archived. You will find material for every lecture and to the extent I have been successful in putting into action whatever I was preaching I think you will find my material there and you are certainly welcome to use it but I think the suggestion implicit is absolutely right. I think if we can find good real life examples with which to begin every lecture it will be very nice and it does require a certain amount of thinking Of course there should be flexibility but if you would have standardized to some extent then probably you would reach out to as it is a very fundamental course most of the students find it difficult. So there is also the additional issue there that some students may not be too well versed in math so we might need a different set of examples for a different set of students so all that really needs to be thought about. But as you said most of the things would come from the 12 standard level most of the things generally come from there but they don't necessarily they don't necessarily Sangeetha will be surprised how varied the background of students could be in my course apart from all first year BTECs for whom the course is compulsory there are MSC students who also take this course MSC maths is okay MSC geology they have not done this maths 30 years ago, 25 years ago I was quite surprised to see an answer book which actually it had asked for multiplication of two matrices the answer written was who is a matrix please ask questions which we can understand that was my first realization that there are people who may never have dealt with matrices I'll tell you another problem that I face here I am sure most of you would be facing in your colleges because the problem is more acuity phony when you have 800 students typically 10% students would have done actual programming in C, C++, Java in their 11, 12 standard there would be 10% students who would have never seen a computer so the diversity in a programming course is much more than the diversity in physics chemistry maths course that you will endorse there is an additional problem there are several students who cannot understand clearly lectures given in English I have seen in my Bharat Yatra when I had gone the conversation between the teachers and students outside the lecturing the question answers often happen in native language in Maharashtra students ask questions in Marathi in Tamil Nadu they will ask in Tamil in Urisa they will ask in Uriya and the teachers also answer because that is how they understand the students are smart in about three to four weeks time they pick up to understand English but they are still not capable of asking questions now when they don't ask questions actually we are denying them learning because half the learning is because the questions are asked because you are asking question not to the teacher really you are asking that to yourself how do you encourage that so one of the if you have read my theme paper which I had circulated to all the participants the action point in this collaborative activity when we realize the national mission is that all participating teachers who will get all the lectures of the final workshop all of that is going to be released in open source anyway they are supposed to sit at their own place sit with the webcap as student one or two students will give them the tools and what they are supposed to do is for every lecture which has been prepared the students will ask some questions in the native language of that place and teacher will respond in native language of that place and the teacher will prepare English transcript of the conversation this entire video clip along with the English transcript will be added to that lecture as a part of the open source material I personally believe that many students will benefit from that similarly a small background in fundamental mathematical notions as a revision is really likely to be useful as a supplement to this course where people who do not have these simple concepts sometimes or they have forgotten they could visualize even if we repeat that concept I feel it helps because strengthening that basic maths is as well important so it gets a dual aspect problem process Sunita is time this subject is one subject out of the six subjects that students have to do and another problem which our colleges face which we don't face here is the non availability of competent teaching assistants you see when I teach a 800 student course I would have died if I was teaching it anywhere else I have a battery of 72 teaching assistants 60 first year mtech students and 12 second year mtech students and you can realize the mtech students are probably get toppers from wherever they are they are as good as teachers and we have of course to organize them so that work is a huge work but once you do that work work that they are able to do handling labs, doing the entire evaluation all grading that's a great advantage we don't have that advantage in other colleges so we have to think of not only these sets as you mentioned these 20 or 30 large problems which cover everything but I would go to the extent of saying that elaborately designed question banks with questions and answers readily available should be accessible to students where teachers can choose randomly that is also part of the part of the theme I am Prakul Latha, I am working in KJ Somaya college in Vidya Vihar sir I am feeling getting a difficulty in conveying to the students like as you said it is a diversified class in the knowledge level and many of them are having that occasional courses taken in 11th and 12th and many are not taking that that is one problem and the other problem is like whenever I am explaining the concepts half of the class will be knowing that and they won't like it is already known what next and half of the class is unable to follow what I am teaching at that time so I had the same problem the way I have solved it is I announced extra lectures on Saturday evenings and Sunday evenings so the extra lectures for those people were absolutely no background one day I would take an extra lecture in Hindi there were five students I think who did not understand Hindi so from amongst my tears I found some Malayalam speaking people and my friend who was the sisadmin here Karthikeyan he helped two students by speaking to them in Tamil these are not trivial issues they are hard problems because that student cannot understand anything that you speak English or Hindi but there is no shortcut to it to the better students you have to keep them challenged so you give them harder problems so for example a student who has calculated this histogram very easily and done histogram equalization I will say now you try to do that in real time that means as the image is read how quickly can you do that equalization by telling him that modern cameras can be made in hardware and those who are still more interested I will ask them to think of how hardware circuits would be designed introducing him probably to field programmable gate arrays even before he has understood the more details because many people do not only programming or computers but they also do hardware or electronics in their 11th and 12th so there is no limit up to which you can drive people what is important is of course we kept as much open ended as possible for the top performers without letting the lower end people fall behind because there is a huge confidence crisis what is true about your colleges and our colleges is that the students coming to engineering are in general amongst the better performers in their schools because they have got so many marks in particularly if they get into computer science or IT mechanical wherever engineering and mission means better performing students so if you see most of the students come to us when they have done well in their schools now for the first time they get graded and suddenly people who have never failed in their lives they are failing in applied mechanics they are failing here you would have faced this psychological problem and it is very important to keep their confidence so even the question paper I will share with you my mid-sem paper for example there are first two questions where people are wondering why they are there there is one student who asked me that one particular question he says took me 40 minutes to solve that was 9 marks and the first two questions which were also 9 marks did not take more than 15 minutes together he said is that fair I said it may not appear fair to you but it was fair for them who could barely understand the why I left looping structures and I said in my course marks will be non-linear the better you are the harder you will have to struggle to become slightly better and I told him that is how life is actually he was convinced because that is how life is real so it is not an easy job and the students are like they are asking for the Mumbai University they follow the pattern and they are like these kinds of problems whatever are asked in the question paper usually that one they want first so actually my response to your first question really was that there are 50% students who have not seen the material and there are 50% students who think they have seen the material they actually need not have seen the material like my experience was like they have understood the program directly the logic was not understood they know the syntax when we are writing the code they know it but if I want to change something they will not be able to solve that so in fact if you give them something like this histogram problem I think probably 60 to 70% of the people who think that they understand it probably will not be able to do and of the remaining 30 who will actually be able to do because probably for the first time they are seeing something that they know being put to some really exciting use so I think this brings back the argument that you have to have exciting uses for whatever you do for your second question that's a very important question by the way they should affect all of us that independent of how you want to teach programming students are interested in what is asked in the university system this is precisely the reason again if you recall I have mentioned it in my theme paper that why IIT courses are not being adopted very simple the questions that are asked in the IIT courses are not asked in the university exam see if I am a student in some university I am least interested in this course however great knowledge there may be and if as a student I am not interested as it my teacher you cannot be interested because I will not attend your classes I will go to a coaching class where he tells me question 3a how to solve it 3b how to solve it etc my answer to that this is a standard this is a dilemma this is a country wide dilemma what we would like to do we would like students and teachers to think about programming in the terms that professor Ranade has described making it so elegantly enjoyable we can't reach that state in zero time we can't simply say shut off present thing and go over there we can't do that on the other hand if we cater only to the question answers of the type which are raised in the current university exams which are syllabus bound things are never going to change in this national mission what we propose is to give a blend of both to all the teachers and through them to all the students because the learning teaching material plus the question banks everything everything is going to be made open source it is possible to students teachers everywhere the idea here is when we run the workshop we will try to run a portion of it giving the glimpse of how the course is taught in IIT then we will also say however this course is taught and learned in this fashion in various universities for which you are the people who are going to help us what is the syllabus what is the question paper you remember we requested you to bring that material all of us will know what kind of questions are asked in Karnataka University in Bhagalpur University and these patterns we will cater to but what we will try to subtly hint is that while students and teachers may concentrate on those portions of the open source material that we create they will be encouraged to move over to the larger issues and perhaps not always do that but those who wish to will have access to that material today imagine the best students in your class then no different no worse than students who come to IIT is just because limited number of seats they cannot get into IIT they go everywhere what is their fate are they not suffering because the particular university or college insists that you give exam like this you write programs like this that means you don't learn more than this shouldn't we attempt to give something to them as well because if anything they are likely to be the change agent for this nation so the subtle idea is that while we cater to everyone and we will provide question bags with questions and answers of the type which are asked in colleges and universities but we will additionally provide something else the important thing is how do we indicate a clever but clear way of stepping for those who are interested to move from here to here and how do we enthuse our teachers to intern enthuse their students to follow that clever path to go up that is going to be the theme of this workshop sir one more last question I am having yes please and for this Mumbai university has revised the syllabus since last 3 years and then in that one they have given like the introduction for C and then C++ as a language and then the object oriented features of C++ like the procedure oriented and object oriented and in the semester hardly we get to take like its 3 hours per week as per the schema given and then hardly we are able to take some 30 lectures in a semester and within that stipulated time it's like very difficult to how to go about to cater to all the parts so let me ask a very naive question perhaps my question really is very is not correct but isn't there any room for you to convey to Mumbai university that this cannot be done they should be different isn't there any room don't know actually sir no but I mean I think I will strongly request you to explore very pertinent question you know this is a systemic problem with all of us as Indians this is a societal problem we do crib about things which are wrong but we rarely take the initiative to sit down and write about it and pursue it now that takes extra time which we rarely have but if nobody does it the Mumbai university leadership will probably be believing as we speak that there is the best syllabus in the world there is the best pattern most of us believe here that syllabus represents past the syllabus is only based on the human knowledge as it existed when the syllabus was framed whereas we are training our students for future there is not going to be a single problem that students will face in real life which can be guaranteed broken down into portions of syllabus which you have studied had that been so every graduate would have solved any problem which means what that is why what is good about the system is while there is a framed syllabus every teacher who teaches the course has flexibility to introduce new things this flexibility does not exist in other colleges but I will ask you this question suppose it does not provide you with this flexibility in the standard pattern have you tried to create this flexibility by offering that we will have an extra lecture on Saturday just to discuss difficult programming problem the initiative has to be taken by teacher I tell you my experiences while moving across the country I came across many such people who took such initiative there is one particular person I remember anybody from Orissa here there is a college in Orissa called Bahrampur place where I always used to ask this question to teachers that what additional things do you do and one teacher told me sheepishly that he runs a lab on Sunday he is an electronics teacher he got the information and he told me that you have to attend to that the information you have to take the information and he told me to ask the teacher that I am a designer and I have to take the information I came to the city I started school in Alhambra So the teacher if I go to my director of principal or whatever, and I said please permit me to conduct extra classes for 2 hours on every Sunday. And you may not find 60-80 students in just there but I can guarantee you that you will find 10 students. And first when you start this there will be 10 students, next year there will be 20 students. It will stabilize some. Looking at you, some other teachers may also start working. That is what improvement in learning teaching is.