 through some centres for questions and answers and discussion. You might have questions regarding the portion that I have covered earlier. You might have questions regarding the particular workshop projects. Please feel free to raise questions during this brief interaction. I would also like to submit that there are many of you who would have questions in mind but are not able to ask them. Just as yesterday I mentioned one of the friends, a participant from Sienkert Institute had written an elaborate email to the workshop support. I will suggest that most participants who have questions and who are unable to ask questions during this interaction should actually send their queries through email and will try to consolidate these and answer most of them if not all of them in the subsequent conversations. So now may I request my video team to go over to various centres. First we will go to the centres which might have a query. If there is no centre which has raised a query we will just go one by one as per the list that you have or there has been a request. Sir, I want to question that I use a picture element array for storing image information picture element array and after use Histograph value. So why we use Histograph value if only we use Histograph value then we still use the picture element array because in case if Histograph value is used still using then we use the picture element array because location is described in picture element array. So why we use both. Yes I understand first of all let us understand that the picture element array represents the actual picture. So if you want to see the picture either drawn digitally on a terminal or in an actual photograph what you have is always picture element values only. Histogram is merely a representation of some characteristic of that picture as we saw representation of the contrast characteristic and that is why we want to equalize the Histograms. When we say Histograms are equalized actually what we are doing is we are transforming the original pixel values into new pixel values. So the original image is one the new image which has enhanced contrast is another image which is a modified set of pixel value. So we are dealing with pixel values of the image only but in order to do the transformation we require a separate Histogram array to be calculated and the Histogram to be modified as per those Histogram values. We are going to jargaham is it. Sir I want to ask you the question whether it is possible whether it will be possible to conduct such type of project in first year for such used strength. I have conducted such projects for a class of 833 students and you will see some of the project reports as I said I will send to you. I would like to mention that fundamentally there is no difference between the students coming to IIT and students coming to your college just as fundamentally there is no difference between you teaching the subject at your college and I teaching at IIT. I will like to submit that here we are able to experiment learn new things benefit from that and establish that as a teaching practice. My suggestion would be give it a try and if it works make it formalized in subsequent attempts but one thing you please remember never underestimate the capability of your students both individually and as teams. In general I have found that a group of students are capable of doing far better work than I can do even after 40 years of experience in programming. Thank you. Let us go to the next institution. PRMIT Amaravati, they have a query. I am Sunil Gupta from Badnira. I want to ask question regarding workshop project. What could be the size of the project if a particular subject is going to be taught in two semesters and the team size is of four students and what could be the scope of the particular project? Typically I would expect a programming project to result in software of about 1000 to 1500 lines of code by each team if there is a not by each team but by 3 to 4 teams put together. We have had examples where about 10000 lines of code have been written by 5 teams working on a project. Now this will vary. There are certain teams which may have weak students or unenthusiastic students and they may together write something like 500 to 1000 lines of code. The important point that I am trying to make here is that through any lab exercise that we ordinarily give in our laboratories where students write 10 line, 20 line, 30 line, 40 line programs. Now that does not at all indicate to them what is the kind of real software that they will see. The project gives them an opportunity not individually to write 2000 lines but to collectively write 2000 lines and to solve a real world problem. So whether they are able to write exact 2000 lines or they are able to write only 500 lines it does not matter. Whether all their programs work correctly or do not work correctly it also really does not matter. It is the attempt to write some large software together and attempt to solve a larger problem which is I believe of great significance. So coming back to your specific query if you have this subject in two different semesters I think you should not decide the size of the project expected based on whether the subject is covered in one semester or two semesters. But you should consider what is the portion that is covered in each semester. Using that portion what real life problem they are able to solve. According to me if students work for about one and half months of a semester or half the semester and the problem is defined just before the middle semester, middle of the semester etc they will be typically able to individually put in about 30 to 40 hours of total work. 30 to 40 hours of total work put in by three teams of five members each is able to achieve substantial amount of contribution has been our experience over decades in IIT. And I submit that if you try it you will also find that the students will rise to the occasion. One problem is that all our students in the conventional education system are aware right now that they simply have to answer questions in a written test and they have to submit some preset assignments 8, 9, 10 assignments in the lab. There are cases for example where our students do not even write the assignment themselves but simply copy the assignments and submit. If they are required to do a project work they genuinely put in efforts and in the process learn a lot. We are going to government engineering college Trishur. I will do that at the end of this interaction. I will do that at the end of this interaction. I have a query regarding the fingerprint identification there is no exceptional case. What are the exceptional case of that fingerprint identification? If the fingerprint is having some trouble then what do you have to do? Yes actually I am a part of the national committee for this unique identification so I am aware of what they are trying to do. The cases that you mentioned are not by the way very rare exceptions. There are several cases for example consider Indians who are affected by leprosy. They simply may not have fingers. In such cases we may use their toes instead of hand fingers, the leg fingers. If nothing is available there will have to be some other special mechanism for such people. Let us go over to another centre COEP Pune. Good morning sir. I am Riyaz Jammadhar from AISMS IOIG. I have a couple of queries. First one is regarding workshop projects. So will we be assigned by IIT Bombay or can we have our own area time problem if we can. That is the first. Second is regarding that approach you have told for labs like that activity diary and all that you have given. If we adopt that approach the university may raise an objection and there will be mismatch in the examination approach and this activity or practice approach. So how can we tackle that? Good questions both of them. First of all IIT Bombay will not assign the projects. The teams will have to figure out projects for themselves. That freedom is given to the participants here. However later on when you go back and teach this course you may want for example to limit the choice from say 5 or 6 domains or 5 or 6 problems and that is because when you teach this course students will be asking you constantly on the problems that they face and you should be able to solve these problems either using your own expertise or the expertise of other colleagues. So I suppose that answers your question as far as this workshop is concerned. Of course here we are not talking about students but here we are talking about colleague teachers. You are all like me and therefore every team is perfectly capable of coming up with a problem definition in a domain of their choice. No issue on that. The idea here by the way is I do want different teams to come up with different problems. Remember what we said at the beginning all contributions made by and after this workshop by all of us will go into open source. Consequently all the projects that we collectively defined 983 of us or roughly about 200 teams or 150 teams all of them will be available to each one of us as a teacher. So it is in fact useful if every team takes up a different project. Of course the amount of effort that individual team members are able to put in after the workshop will depend upon their own busyness and schedule elsewhere and the quantitative and qualitative contributions could differ but it will not be unrealistic to say that out of 150 team efforts at least 50 team efforts will come out to be really good contributions in different domains. Now imagine that suppose I am teaching at Badnira or Amrita Puri and I have not won but 50 defined problems already in fact with a sample solution. Will it not be much easier for me to define some derivative team problems based on these 50 basic problems for my students to carry out. So this freedom is definitely available. The second question uncannily is more important because that question deals with the presumed compulsions of a university discipline. For example it was mentioned that if I ask for the activity diary and so on university may not approve it. Why are we so scared of what university will approve and university will not approve? If we are I would submit the following. Tell the students that this entire exercise will be outside the evaluation process of university parks and only those students who are interested in doing the course project can do that and they will meet only in the evening after the college hours. If the college objects they will meet under a tree outside of the road and they will discuss this and they will work this out and I as a teacher will help them develop a good team project. Please understand that the purpose here is to teach our students good team work in writing programs. Personally I do not believe that any university will ever object to doing this kind of experiment. My submission is that in every college syllabus and the university examination system that I have seen there are some marks available for internal evaluation. The internal evaluation marks and the evaluation process is not dictated by university. There may be certain guidelines given but certainly a college will have adequate autonomy to implement the individual evaluation or internal evaluation. My suggestion is start with this internal evaluation process. Some marks being allocated to this. Discuss this out within your own faculty colleagues with your college director and principal and I am 100 percent sure that this scheme will be approved. All that I can do is in case any one college has a problem please write to me. I will be glad to personally speak to that principal. If necessarily personally visit your college and talk to the principal and university vice chancellor to submit that such things should be permitted not only in this subject but many other subjects. I hope that answers your question. So be bold experiment certain things. I will tell you only one thing I have found this consistently as long as these experimentations are for the benefit of our students. Believe me no administration will seriously object. Let us go over to the next center. A C Amruta Puri has a query. Hello sir I am Sandhya from Amruta Puri. You mentioned that there is one slot per week for tutorials. Can you brief on how tutorials are conducted at IIT Bombay? Is it the usual practice or? Okay. How are tutorials handled in IIT Bombay? I have to admit a sad fact they are not handled at all. Tutorials at one time I used to teach this course about 25 years ago by the way and this course schedule was two lecture hours per week, two tutorial hours per week and two lab hours per week. The tutorials were conducted in different classes of tutorial batch size of 20 to 25 students. Each tutorial batch handled by a course associate or a teaching assistant. Unfortunately after the modified course that was approved by CNET tutorials were removed. Consequently no formal tutorials are conducted but the two hours that students spend in the lab apart from the lab assignment some kind of interaction happens with the teaching assistants and that is where some implicit tutorial gets conducted. Quite frankly I do not find that adequate. In fact the timetable and schedule at most of your colleges and universities is far superior because you allocate more lecture works and tutorial works. I am recommending to our CNET beginning next semester that this course structure should be revamped and two tutorial hours should be introduced where tutorials are conducted in different batches. I agree with you that such tutorials should be beneficial. Yes as a matter of fact the histogram computations have to be made using the original image file as input. But just remember that the image file could be 500 by 500, 1000 by 1200 by 200, 700 by 400 or whatever. The histogram is merely a single array of 256 elements. So yes we not only can but we must make use of the original image file without using the values in that image file. We will simply not be able to calculate the histogram. We will go over to the next center. We are going to Ph.G's Coimbatore is it okay. Hello Mr. Mahanakshmi. My query is about cumulative distribution function sir. Can you explain me some more points about the original? Cumulative distribution function as I mentioned nearly says how many pixels exist in that image which have a value less than equal to a certain value. Let me give another example. You would be familiar with percentile scores that are given in gate examination or similar examination. So when we say 96 percentile roughly it means that 96 percent students are below or at the level where you have got the marks. Percentile is nothing but a similar cumulative distribution function. In fact any cumulative distribution function definition that you pick up such as cumulative probability distribution function this definition is very similar. So I have one more question sir. Is there any tools for extracting that matrix from a grayscale image? Thank you. Sorry. Any tool for extracting a matrix from that grayscale image? Yes. The tool are image capturing devices. For example if you take a photograph there are scanners for example which will scan that photograph and convert it into a digital image. As a matter of fact the normal scanners convert a photograph either into a bitmap image or a JPEG image. Both JPEG and bitmap images are nothing but digital representation of that image. From JPEG or bitmap images for which the standard structure of the element values of that JPEG or bitmap are available it is possible to extract an image array of the kind that you mean. And by extraction I mean no further tool is required. So roughly you take a scanner take a photograph scan that photograph you will get a JPEG image. There are utilities available by which you can convert that JPEG image into a bitmap image. A bitmap image is nothing but something like the array that we describe. Of course if it is a color bitmap you will have three intensity independent intensity values associated with each pixel. If you scan the image as a black and white image you will almost directly get the bitmap image of the kind that we mentioned. That means you will get the values inside the array for the defined width and height of the picture. Let us go over to the next center. Periyar Maniyama University welcome. Yes. The question is how to fix the complexity of the project that we give to the students. A similar question was asked in a different way by another participant. Believe me it is indeed a hard problem. You cannot define the complexity. The right approach is to define an open-ended problem. A problem which cannot be solved by students. But expect the students to solve some part of it well, some part of it perhaps not so well. Do not worry if for in fact it may not be a bad idea just as I told all the batches here that if you really want to solve the problem of registration or problem of fingerprint comparison or problem even of fingerprint verification for an application all 800 students might end up writing software for about 5 years to develop the complete solution. So it is not possible for any batch to completely solve the problem. The beauty of a team effort is to understand that we are attempting a very large problem and do as much as we can do. So my suggestion is instead of defining the complexity to begin with just indicate the expectation that from a team of 5 people I would expect let us say a total of 1000 lines of debug code at the end of the project. That means each of the 5 people will have to write one or more programs amounting to about 200 lines. But it is not individual standalone programs they all must work together and that sufficiently teaches the students to participate in a group activity that has been my experience so far. So do not worry too much about complexity give very complex problems do not only ask them philosophical issues prove the existence of God for example that is not a solvable problem but other than that practically everything can be done. Let us go to the next institute Sona College Selam. Thank you very much. The first question that you observed there is no declaration I will submit that what we were demonstrating was not a formal computer program but merely the way to give instructions to Mr. Dumbo and therefore it was not written as per the rules of C or C++ programming language but it was written something like a pseudo code. The second question is a larger issue you are talking about what research can be done there is of course research in each of the activities that you mentioned multimodal representation of various biometric elements is a matter of has been a subject topic of great research as per as the particular project of unique identification is concerned we discussed all biometric possible characteristics that we can be used for capturing we zeroed on to fingerprints because a affordable tools and technologies and products exist by which this large exercise can be completed in an economic way and we also know that fingerprint biometric is adequate for high security requirements such as entry into let us say defense establishments or for such additional things these different agencies are free to use additional biometric parameters such as IV identification and so on. So please understand that fingerprint is being talked about only in the context of a important problem of giving unique idea to every Indian citizen the biometric does not end there there are many other issues the specific question also related to an interesting aspect what could be the research potential in this I will only mention that in each of the areas of biometric that you mentioned lot of research has been done and yet there is a tremendous scope for advancing that knowledge and technology further it is so in fact in most other domains that we know of I am very glad that somebody is mentioning a research problem although we are meeting here for discussing how to teach computer programming effectively it only proves my point that when we generally think we cannot avoid thinking of research and teaching together this is one example thank you very much and good luck okay let us go over to VNIT Nakpur good morning sir I really appreciate what you teach and I am really impressed I just want to ask you do we get a what kind of assignment you are going to give to your students can be able to see that list as a matter of fact as we speak all the information about the projects that our students have submitted are getting edited all of them will be released in open source and to the participants of this course we will do an early release of some of the sample projects that they have done hopefully by Monday in the moodle and in your centers you should receive some sample project implementations by some of the batches here okay sir I want to ask one more question if I give the what project to the group of the people at the time of evaluation of that particular project should I give about the equal marks to all the students because for the project the contribution of that those members will be a different but you said that at your case we are going to give the equal marks to all the students so what should be the base procedure for evaluation I don't think you paid attention to the complete description of the evaluation a project in IIT Bombay for the subject that I teach has 25 marks out of those 25 marks 15 marks are allocated which are same for every student so suppose that group project report gets 11 marks out of 15 then every student gets 11 marks but that is only part of the evaluation remaining 10 marks for the project are allocated based on the individual work which comes out of the peer review please remember that the project has 25 marks in IIT out of 25 marks 15 marks are commonly allocated 10 marks are completely based on the individual contribution and there have been students who have been given 0 marks out of 10 by their peers okay so we are going to go over to Vellore Institute Tamil Nadu very good point that you made the assignment that you will solve today in the lab has a sample program to calculate logarithm of a given value the logarithm is calculated by summing up areas under the curve and also using math dot h library what you will find interestingly in that particular sample program that has been given is that we have used a series of hash defines to define what you may call certain macros which expand a very simplistic function call in our program to print f and scan f as a result students do not have to use those things please examine what we submit today and then comment on it tomorrow back again I hope you will find this slightly more useful so that at least at the beginning time in the subject when students have to do input output without that they cannot write any program they do not have to learn about print f and scan f but they can use some simple macros to use that please look at the assignment that you will get in the laboratory today and we can have a discussion later let us go to MGM engineering college Nandair sir when we open image in C shall we have to shall we have the knowledge of that data file if it is in BMP or JPEG we should we suppose to have knowledge of that data files as well in order to get that those pixels are stored in R A you are absolutely right depending upon the format in which the image is image data is available you must have the necessary header file defined in fact when you read the image you will actually read it in the structure of that particular header file it is from that you will have to transfer values to your image array some of the projects that have been done here which use fingerprints we used a format called XPM format and we also use a format which is the standard bitmap format almost all the header files that you mention are available as standard header files in open source if you go to Wikipedia or if you go to image processing sites you will get these header files which you can include I mentioned this in the context of image but I would like to clarify that for practically every domain where computational problems are to be solved then similar header files representing different structures for those domains will be required they will either have to be defined by us or they will have to be used from wherever they are available particularly in case of images you are absolutely right we will these those header files fortunately all the header files and even conversion programs are easily available in open source let us go to Vijay T. I. Pune Hi yeah what is the advanced I am Boroli from Vijay T. I. Electrical Department what is the advantage of teaching computer programming subject for electrical and mechanical engineers because at present ready made tools are available in market it is better to teach ready made tools instead of computer instead of C C plus plus or Java language that is an interesting opinion what we find in IIT Bombay is that teachers from different disciplines including electrical engineering mechanical engineering insist that their students should know programming well I would like you to appreciate that while tools are available tools do not necessarily solve all the problems secondly any engineer solving a real life problem will have to solve multitude of issues not all the issues would be handled by one or more available tools invariably in the modern day an engineer is required to augment whatever tools are available by writing some programs of some kind or the other in fact writing programs using available tools is also an exercise I would like to submit that if people who have to use Matlab or Sylab for example they would do well to have some fundamental concepts about programming being very clear and that is the purpose why all universities across the country and in fact across the world insist that basic programming knowledge be available to students of all branches it is not that every student will be required to write 20,000 lines of code in one's life but it is that these fundamental principles will be useful even in properly utilizing whatever packages one uses and additionally be able to write more programs if one has to write there was just one center remaining so let me go over to that center Sir, I am Harithan, I am Harithan representing Terran Engineering College Narayananbhai I would like to ask as per your guidelines which you have given for projection on that I will give projects to my students it might possible students might come with some idea but in exception if we do not have resources to complete that project then in this case can IIT help us to solve that problem? Well IIT can possibly help and provide guidance in terms of any research problems that you or your colleagues may have but as far as first year students are concerned the projects which they do will have to be I am afraid handled at your college level only all that we can do is we can make available similar projects that have been done here they will be made available as a part of the open source contents which will release in addition to all the contributions that you people will make as participants in the workshop but I will repeat once again that if students have a difficulty and they are not able to complete the project successfully it is not at all important somehow all us teachers believe that every problem given must be successfully solved that is so illogical because in the real life that does not happen what we are teaching students is to attempt genuinely and seriously to solve a problem in the process is what they learn they may or may not be able to solve every problem successfully I do not think there is any need to worry about it what we have to ascertain as teachers of programming is whether while doing the project they have understood the concepts of programming and they have tried to apply the concepts of programming to the extent that they have understood the domain so please do not worry about what you call a hard successful completion of the project as a matter of fact there is nothing like a successful completion of any project in the world because when you complete the project successfully big or large you suddenly discover that there are 20 things which you would have done better so every project in fact is an open-ended project please do not worry about that let us quickly go over to the Nirma institute and then we will close the discussion for this session the question is how can we get pixel value from the image no better pixel value in form of matrix how we can get pixel value from the different images as I mentioned the different images will exist in the form of photographs you scan a photograph and when you scan a photograph the scanner will convert that image into a JPEG file or a bitmap file that file actually contains all the pixel data although it contains that data in a rather funny format defined by the header file for that particular format what you do is you take that file as input into a C program which contains an appropriately defined header file so when you read the image file the data will go and sit into that header file structure from which you can derive the pixel values I will try and see if I can send an illustrative example of a JPEG image being read into an image file over the next few days I think there is just one institution which is shouting at me saying we did not get a chance to ask a question so let us quickly go over to Anna University and then we will really close this session hello good morning sir it's a very nice attempt we are very actually we are fortunate to be with you here and I just would like to know if what are the other types of projects that you would do like you have mentioned about fingerprint authentication like that what are the other types of projects that you are doing in IIT Bombay well let me let me put it this way as in terms of research projects there are large number of research projects that are happening as a matter of fact I don't personally work in image processing my colleagues Professor Vikram Gadre, Shubhash Chaudhary and a lot of others do that work so in terms of research projects you will get an idea about the projects that are going on through what we call our website both of the IIT Bombay website and the department websites but I am afraid I will not be able to go into details of that question now so let me now close and go back to my slides I will just require three minutes okay okay one more question go ahead whether do the projects want to do in C level language or any other sorry C language or in any other languages the answer is very simple this course is about effective teaching and learning in C programming and therefore the workshop projects for this particular workshop have to be done in C programming language however if in your own college you have a composite first subject which is like IIT Bombay C and C++ you can use that please understand that we don't distinguish between a particular programming language and the other in general however when we are teaching students a particular subject then we are necessarily bound by whatever is the syllabus while in IIT we have complete freedom to decide that particular syllabus in most other colleges you are bound by the university syllabus so once again I will repeat that this workshop is essentially going to use C programming as the basis and therefore the workshop projects I am afraid will have to be done in C okay now we will really wind up and go over to my slides first during the workshop you are required to set up teams carry out preliminary work in consultation with center coordinators set up the teams and decide on the particular topic on which you would like to do the workshop project after the workshop complete both parts of the project the project consists of writing a team software for a problem that you choose and writing of questions and answers on the allocated topics on the second part I will comment later but when you complete both the parts this will entitle participants not only for IST certification but we have decided to do something more exciting we want each remote center to evaluate the project submissions and forward recommendations for the three top projects now these recommendations from each of the 22 centers will come to us and we will decide on a minimum norm on a global basis so we will examine the top entries submitted by each center based on this minimal norm for example if a center has very few participants we will not consider three top projects to be recognized but maybe only two if a center has multiple very large number of participants such as 60 or 70 we may consider even up to five top projects eventually we will consider these projects and depending upon this assessment and on the number of teams from a center we will take up to three teams from each centers which will be identified for an award and what we have in mind is to give cash awards to these teams in form of honorarium to all the winning teams the amounts roughly we have in mind although we are not finalized it I am discussing it with some of my colleagues here but we are talking about 10,000 rupees as the first prize 7000 rupees as the second prize and 5000 rupees as the third prize additionally we will be giving a token honorarium of 2000 rupees to each of the center coordinators for helping us in this assessment of these projects and last but not the least the best project from the team from all the centers will get a special award we have about 50,000 rupees as honorarium to be paid to that team in our mind I hope this will provide a small additional incentive to all my colleagues from various centers to do a really good job please remember our endeavor together is actually to create very useful material and very useful mindset for ourselves to teach programming better in the courses that we offer subsequently in our colleges thank you very much