I will start this discussion on the team projects. Many of my colleagues and I personally believe, as I mentioned at the beginning of the first session, that the course projects are extremely useful. They are useful because the students, when they do the course projects, they actually learn not just programming, but good programming practices and ability to develop large programs to handle fairly complex solutions, end to end solutions. I will describe the team projects as we handle them in IIT. I am very sure that at least 20 percent of colleague teachers assembled today would have something similar and just as I am comparing notes with them, I would be glad to receive small write-ups if they conduct similar projects, but they have some different way of doing it. Who knows? It might be better than what we do, but all the other colleagues who teach programming in the conventional way, where students are just required to do their weekly labs and submit a program just in the lab and that is the end of it or maybe they have some practical examination at the end, which is, believe me, quite artificial in terms of evaluating the student's knowledge of programming, unless the student has written large program. All such colleagues might seriously consider going back and introducing the notion of a course project.  We usually give a very brief introduction to software engineering to the students. Then we describe what activities are to be carried out in the project, what is the reporting process, what are the deadlines and then we describe the project evaluation. All this is actually given in a lecture with almost one full hour spent on describing this, including the basics of software engineering. We all believe that this is an important component of learning computer program. So, here we go. The objective of team projects is to train students to collaboratively develop many programs. Collaboration is often key. Not only collaboration results in something substantial as output, but each member of the collaborating team actually gains a very rich experience, something which one cannot gain by working alone, something which can be gained only when you work in teams. The teams typically for students can be of three to four people with a team leader. Sometimes there is a larger group which comprises of two or three teams and one of the team leaders becomes the group coordinator. Now, the problem that we choose could be absolutely any reasonably large size problem often open ended. That means the problem is never completely solved. There is a larger dimension of the problem and we are telling our batches or groups of students, please solve this portion of this problem and then go as much as you can. The problem as I said could be a computer game. Students often prefer some graphics being involved and believe me in spite of our hate to easy windows or QT or any graphical tool because we are very uncomfortable wasting people's time saying this is not a graphics course. Almost 90 percent students prefer to do a course project which involves graphic. The point is they are actually not learning graphics or they are not programming graphics. They are actually using graphic utilities to write programs to solve a broader problem. The problem could be that of a simulation. The problem could be a simple data processing application such as building a library system or a hospital system or the class attendance system and so on. We believe that for a team the effort involved should be equivalent to 500 to 1000 lines of code and if there are multiple teams the effort should involve something larger. By the way it is not uncommon in IIT and in few other institutes as non IIT institutions that I know where some groups of students have written as many as 5000 to 7000 lines of code and good quality code very well tested and documented code. So you see it is possible to see our first year fresh kids emerge towards the end of the semester almost as top class professional programmer and of course others who are not as a complains still benefit and they become better programmers than what they would have become through such team effort. The stipulation is that no matter whether a student is weak or strong in the team each member must write at least one program. The typical duration of our course projects is about two months. The starting point is about one week before the mid semester examination and the end point is about one week before the end examination begins. So it is roughly two months give or take one week. Now before the team projects begin we arrange a lecture on basic principles of software engineering. Please remember software engineering is not a required course to be understood fully by students of first year. Some of them such as students of computer science and IIT will eventually do a formal course in software engineering. But we believe that some fundamental principles and disciplines of software engineering are good to be known by any student who does any programming ever. In fact these fundamental principles and these disciplines help in making that student a better programmer even in the very first year. We do tell them about analysis SRS and the software engineering step. More importantly our students are required to maintain weekly diaries which record whatever activities they are doing how much time they have spent in one week in terms of hours and minutes. I will show you an example. Our T.S. act as mentors and supervisors. There is a two stage assessment. In first stage there is a report which is assessed for 5 marks. In second stage there is a final report assessed for 5 marks. The individual work assessment is done for 10 marks and now this is the most interesting part. This is a part which not many of my colleagues have tried but I have attempted it successfully namely that these 10 marks are awarded by students to themselves but through a rigorous peer review process. I will spend some time in describing this because this has told me actually that if you trust your students to behave ethically they actually do. Provided you give them responsibility, accountability and authority. The authority is you give your own marks. The responsibility is you will not cheat either yourself or the system. So I will show you how we have done that. It was a very exciting part when I did it first time. This was the second time when I did it and the results were much better because I refined some aspects there. So here are the set of slides which we used to tell our first year student some basic principles of software engineering. Of course all of you would be aware of software engineering principles. The reason I have included these slides here is merely to tell you the kind of brief concepts that we cover in this single lecture. The entire lecture is not devoted to software engineering. It also includes description of project evaluation process and so on so forth. So we talk to them about principles of software engineering. For example, we tell them what is the role of software. We tell them that there are classifications like system software, operating system, there are things like four generation languages, there are tools to build software and so on. Then we tell them about application software which determines business functionality and we give a series of examples. Students information system, railway reservation system, simulator, equation solvers, games. We tell them about embedded software and by the way many of us believe that the embedded software is increasingly becoming an extremely important and critical activity where larger and larger number of professionals are engaged and they will continue to be so engaged. So we typically spend one more slide in giving examples of what embedded systems are and it is students in fact find it very interesting. For example, during the project time when I was giving this talk earlier I had discussed that simple histogram equalization problem in the class and when I was describing the embedded system and I said every digital gadget has programs in it and that one student suddenly asked, so sir do you mean to say that my digital camera is capable of doing histogram equalization. He was actually just saying this as a joke. The fact of life is most modern digital cameras actually have embedded software which does on the fly histogram equalization and much more. So that is the power of the embedded system and students find this small discussion very interesting and meaningful. Anyway, so then we talk to them about what software engineering is, how it has been defined originally by IEEE etcetera, etcetera. We tell them about the software engineering activities why we list all the major activities we emphasize three points. We say systems analysis which should result in a software requirement specification, system design which should result in your program design and module design and coding testing and integration.  We also tell them about what software project management is incidentally it is my personal conviction that by separating out management as a separate cadre of study a separate topic of study we have removed very fundamentally important issues of management which ought to be thought which ought to be internalized by every engineering student. Sadly, we used to have an industrial management subject or something mostly we paid lip service to it. But I tell you basic management principles basic management disciplines are fundamental to any professional life. Now we cannot do much about the syllabus and the programs that universities have designed that is a separate battle. But to the students who are studying programming we can actually talk to them about software project management house ever briefly incidentally our insistence that they must have regular meetings they must write minutes of the meeting they must write diaries and this must submit all of these is nothing but our way of encouraging them to be disciplined in the procedures that they follow for developing software. We of course very briefly describe the ACI model the capability matches the model and so on this primarily as part of the information. We tell them about the classical system analysis and so on all of this by the way is merely just an introductory stuff. We tell them tasks to be completed during system analysis because these are roughly the tasks that they will have to do vis-a-vis the particular problem that they have chosen for their project. We then tell them the standard software requirement specification document is modified for our CS 101 X course by the way CS 101 is the name of the course here CS 101 X is what we call an extended course. So whenever we discuss CS 101 or CS 101 related issues with rest of the world we use the term CS 101 X. This incidentally is also the name of the course that we are offering on MOOCs. So there we say you have to write an introduction you have to give a problem definition with functional specifications then you should describe what data you will handle input and output what would be the user interface what would be the interface to other system if required. Once you write your software how will you say that the software works correctly in short what is your acceptance criteria and then you might write as many appendices as you want. Now this most students find pretty daunting at the beginning but they end up writing a reasonably good documentation at the end primarily because there are marks associated with such submission of course. This is the important statement we make the course project is a chance for you to learn to work in a team to apply your programming knowledge to solve a larger problem by developing program and this is a test of professional software development activity. As I said believe me I have thought batches after batches and I have seen my colleagues teaching batches after batches after batches. Some of them were my own students they did excellent projects when they were learning CS 101 and when I was teaching it and when they taught CS 101 they only extended and perfected this project business course project. We are convinced that such an activity immensely adds to the programming competence of the student independent of what marks the student covers in the conventional examination and everybody benefit even a poor student actually becomes better than what he or she would have otherwise become. As I said these are mostly open in that project so what is done is not necessarily well defined. Team work is very important and we said that efforts must be made by each individual team member. In fact the individual evaluation is not based on the kind of excellent programs one person has written or not but the qualitative and quantitative efforts that individual has taken in terms of the contribution. There are two stage submission and evaluation process as I said first stage they give the problem definition brief analysis something like an SRS document stage two they give the design complete implementation and final document. We tell our students that you will learn the basic principles of project management professional programming style you will learn to work together in groups towards a common goal you will learn more importantly to discuss design document and review and you will learn to take decisions to meet deadlines. The coordination of project activities is not relevant because each one of you if you decide to offer projects or if you are offering projects will coordinate it differently. We have lab batches for which there is an allocated TA so a lab batch will work on an allocated programming project. The batch TA will be the project mentor each batch may divide itself into multiple teams. Teams should have usually three students each team should elect a team leader all the team leaders will be joint coordinators for the batch and regular meetings and discussions must happen. Lab attendance is compulsory and at least one additional meeting per week must happen between the teams to discuss the project problem. So, there is an extra load and by the way it is amazing at least some of the team members spend enormously long time on this project they get so excited and so interested and they actually learn far more programming than what a course could ever teach. Each team is required to maintain a project diary it is an obligatory requirement and it must be submitted in a soft copy form per week. What they do is for each member each student maintains an individual diary and which is consolidated by the team leader and submitted on a weekly basis. So, it is not a daily diary but it is an activity diary whenever a student does any activity let us say he holds discussion with someone on Monday for half an hour he writes that in the diary Tuesday Wednesday he does nothing on Thursday he goes and does some part of the design either date or fire or something he writes he spent one hour there etcetera etcetera. So, this is a diary which is then accumulated the entries are accumulated and it is submitted. By the way students have found that this actually tells them how much time they have spent and of that how much was meaningfully spent. Consolidated entries are to be uploaded every week. So, you see unlike the documentation which is often written after program is completely written and tested which is again bad principle that is the reason why we tell people to submit an SRS before submitting the program. In the same way these diaries cannot be fudged every week the diary has to be uploaded by the team leader. We do not do much about it we just keep it because the same team leader is required to give a final consolidated diary also uploaded at the end. The submission schedule notifies on the moodle there are weekly diary submission stage wise submissions etcetera etcetera. So, this is all standard. Now, the evaluation of the report is very obvious that TAs would evaluate it or if I am the teacher and if the number of teams are manageable I will myself evaluate the report. Incidentally the five mark, five mark that we gave we do not do as detailed scrutiny of the reports to give marks out of say two and half marks, four and half marks etcetera. We generally categorize reports as A, B and C and allocate marks like that. If there is something special that we find we often give a bonus mark. It is the self evaluation with peer review which is important. I tell students that you are never attempted by any of the few earlier. So, good time to learn. Award marks out of five to yourself at each of the two stages based on the quantitative and qualitative contribution. We define norms. We define norms such that every student should have written at least one program, should have attended meetings, should have worked seriously. The total quantum of time spent by the student as reflected in the diary should be adequate etcetera etcetera. The entire batch then reviews the marks in a formal meeting and the batch coordinator, group coordinator submits a list of students roll numbers and marks. Normally these marks become the final marks scored by those students for their individual effort. These are added for the common group marks which are obtained by the entire group and that becomes the marks of the student in the grade of exam evaluation. Now, many of my colleagues ask me in fact when I tried it first time, how do you ensure that these students do not inflate marks? What if a batch gives 9 out of 10, 9 out of 10, 9 out of 10 to everyone? What if a batch gives 10 out of 10, 10 out of 10? What if a batch gives 8 marks to a student who actually deserves zero and has done nothing? Well, I frankly admit that I have no way to ensure that no batch does it, but I have a way to try and catch if someone does it and this is my googly, what I call the supervisory check. I announce that Viva by me or my tears mostly me will be conducted for some selected student. So, I will arbitrarily select one student from a batch, a group could be 8 or 10 students. So, you see I reduce the scale of evaluation to something like one earth or one tenth. So, if I have 500 students I have to evaluate only 50. I take a random student based on whatever marks they have already submitted. I do not always look at the worst student or the best student, but I select randomly truly. Now, I evaluate that truly and allocate marks. If the marks which I allocate in my judgment significantly differ from the marks that have come through the peer review process. Let us say that student has been awarded 8 marks and in my opinion the student deserves only 4 marks. If such a vast difference is there, then 4 marks are deducted from every member of that group. That is the accountability that all of them have as peers because as peers they have certified that this student is worth 8 marks worth whereas, I have determined that the student is worth 4 marks. Believe me the very fact that such a process is defined and is carried out is adequate to deter absolutely any charge. In fact, in two years when I taught this course with this kind of model, only in the first year I had to reduce marks for the entire group of about 8 students because they are actually given not very high marks, but almost passing marks or 5 marks out of 10 or something to someone who had no clue. In fact, he finally confessed that he has done zero work and should have been given 0 marks. So, every member of that team lost 5 marks. That was the only time it happened. Subsequently, I have noticed differences between the marks of 1 or 2 marks, etcetera, etcetera. Some interesting statistics. In the earlier years when I taught this course and where the normal evaluation done by our teaching assistants, I had the project evaluation mark. The average marks for the individual efforts that were given by TAs was 6.3 percent and the range was somewhere between 4 to 10 marks. When I used the peer evaluated self evaluation, peer reviewed self evaluation process, the average did go up, but it did not go up substantially. From 6.3, it became 6.8. I think that is reasonable because the students would tend to think that they have done more work, but nothing other reasonable. But more importantly, for the first time, I started getting students who were given zero mark, 1 mark, 2 mark, something which our peers were never able to determine. You see, if I am a student who has not done much work, but I am very smart, what I will do one day before the Viva, I will go to my friend who has actually written all the programs and I will tell him by what have you done, please explain to me. He will explain it to me. I am smart as I said and I might have gift of gap. So, actually when the Viva is conducted, I might make a better impression on the TA or the teacher and I might in fact get more marks than the other person who has done the real work. However, when I am sitting amongst my peers and I am trying to convince them that I should get 5 marks or 8 marks, if I have done nothing, my peers will say, how that means, what have you done? We have seen you loitering around, never attending meeting, never writing any program. You deserve only one mark or two marks. Many students actually came and complained to me that my coordinator is not giving me more marks, but when I talk to the coordinator, he said, ask him what work he has done. So, you see, this mechanism works really well and what I told you is the first time you put trust in your students, give them authority, but give them accountability, they will respond back in good state. After all, does not the same principle apply to all of us? If our university, our heads, our barragements gives trust and gives us not just responsibility, but authority, are we not able to perform better? On the other hand, if there is no trust, then we also try to take things sort of simple. Exactly the same thing applies to the students. Sorry for taking so much time, but I found this method to be so good. We are now going to implement it again this year in CS 101 and we will see what happens. I have, what I have done is, as a sample, I have included one sample project report from I think 2011 batch on the Moodle. There are six submissions. So, please look at all the six submissions. So, these are the documents which are tarred and hip together. So, there is a software requirement specification, there is a final report including source code, there is a read me manual, there are minutes of the meeting, there is a consolidated diary and there are peer review marks. By the way, this was not an extraordinary batch. There were batches who had done much better project. This was not the useless batch also. So, this is a typical example, but what I was amazed is that batch after batch after batch was doing this work systematically. And since there was an evaluation associated with each submission, timely submission, maintenance of information, the students did it very, very accurately. Here is the last slide which shows the sample of peer reviewed mark. The format is very simple. They write their batch identification, they write their TNAB, then these are the team members, role numbers, marks. Observe that the batch coordinator who coordinated the entire group project got only nine marks, but one of the team leaders who was leading one team got ten marks. The peer evaluation process does not result in the leader or coordinator getting the maximum marks. The team members ensure that marks are fairly given. Also, observe that the lowest marks given are four out of ten. There are two students with five marks, one student with six marks. Since we are talking about assessment, I think it is important for us to understand that this assessment could be done in this fashion. I will close this particular topic now and I will go over to my opinion poll. I hope you have your aakash tablets. Please switch them on and connect them if they are not connected. So, here is a simple opinion poll related to teaching the first course in programming. Which programming language should we use for teaching the first course in programming? First choice A is C or C plus plus. Choice B is Pythagorean. Choice C is Pascal. Choice D is Java. Choice E is language does not matter. Choice F is null. I will tell you why we have kept that choice F, but it does not concern you. So, please, we are starting the quiz now. Please ensure that you make one of the A, B, C, D or E choices, five choices and respond. The time set is about one minute and thirty seconds. So, let us look at that quiz response. So, we have now about two thousand two hundred. I do not understand, but approximately the same numbers are coming back as responses. So, either at some places Wi-Fi is giving a problem or at some other places the aakash tablets are not there or distributed or maybe we actually have only around two thousand three hundred people attending the workshop when the registered number is something like eight thousand. I do not know whatever it is. Now, here I would just like to comment before running the second quiz. Most of the people have written C or C plus plus primarily because that is what they are familiar with. I am surprised that some people have answered as Z or there is no response. The response is not collected from about hundred and three people, but some people have answered F, which was a null answer. I did not want to indicate anything as correct as in or incorrect from the proper options. Therefore, I asked them to artificially create a correct answer as F, but I do not know what people mean when they say these hundred perhaps it is a mistake. It is an interesting thing that the options are predominantly on C C plus plus and very few people advocate other languages. In this context now, let us look at the second quiz. The second quiz is also related to the same issue, but a slightly different question. So, this opinion poll assume that why these days we do not prefer to use basic language to teach introductory programming courses. Of course, none of you would have probably even heard of basic, but when I was a young teacher, when I was a student I did not know about computers at all. When I was a young teacher, basic was a fairly popular language. So, my question today is why basic is not used to teach introductory programming courses. The options I have listed here is A, it does not illustrate basic control structure. B, pointers are not available in basic. C, basic cannot handle multi-dimensional arrays. D, most modern applications are not written in basic. E, none of these. So, please choose one of these choices. I am requesting you to start the quiz. So, it is a very interesting opinion. Majority of the people of course have opied as a reason being D. If you ask me, I would tend to agree with that reason. After all, if a language is hardly being used to write meaningful applications to develop new software, then neither a student wants to waste his or her time in learning that nor a teacher is very keen. In fact, one of the reasons why C, C++ or Java are more popular is because the demand of skills in these programming languages. I think it is in the context of this particular quiz. I will tell you. Thank you so much, Rajavail. I think we have got this conclusion. So, coming back to this question, most people do believe that if a language is not being used for any professional large-scale program development activity, it is not worthwhile to use that language to teach the first course. If you ask me about C, C++, which was the choice of most of the people, I am a bit skeptical. The programming language C was never designed to be the first programming language to be learned by people. At that point in time, just like forget basic, but FORTRAN was a popular language amongst numerical computational programmers. PL1 was being used by many software, system software development writers. COBOL was heavily used for all business applications. Pascal had just come out as a very good programming language. C came for a different purpose. C came for a purpose of being able to address the hardware issues directly going to the level of registers and accessing memory directly and so on and the application issues. In fact, you will notice that the poor language does not even have an input or output statement. The input and output is handled by functions and in C++, we at least have seen and see out, but as I mentioned, in C programming language, you have to use some extremely funny functions, funnily named functions and functions which have to write to be written very funnily in terms of the parameters, scan and print them. So, if you ask me personally, I do not think this is a good language to teach the first programming course. However, that is our responsibility, for example, in India at least and that is what we will do. So, I will close these opinion polls. Notice that I am deliberately not calling this a quiz because a quiz has a definitive answer, one or more correct answers. These questions have nothing like correct answer or wrong answer. These are truly opinions. With this now, let us get down to the description of the team work that you will do. I have already defined the context that the activity per se is fairly straightforward. It is part of what we often are required to do as teachers, namely, setting up questions for quizzes and questions for tests and suggesting a project like activity for their students. Of course, this will take time and it will take time for two reasons and I would request the participating team to spend that time. First, it will take a time because it is not very often that we sit down and design such quiz or test questions with the kind of elaborate mechanism that I am suggesting. The mechanism that I am suggesting is that you should divide the work amongst yourselves first. Each one does something, maybe one fellow, I am given the responsibility of sitting at quiz question, my colleague is doing a test question, the third colleague is doing a quiz question again, I have to submit three questions and one person takes the responsibility of defining the project and so on. I can have multiple scenarios in this. All of that is left to the team. The point is that there is no fundamental difference between the teamwork that you will do and the project work that our students do if given the kind of project that we have. The difference is they have two months to work, they are all working at the same place so they meet each other very frequently, they can have physical meetings. We have other things to do. As I said, the maximum time period in which I have to submit this assignment is four weeks and I will explain why four weeks are being given rather than two weeks because it was originally intended to be two weeks, but there is a limited time. As an added attraction, my team members and I do not even work necessarily at the same place and I might even be from some other station. So, these are the differences of the problem, but I will tell you just as students have a lot to learn through their teamwork, their learning is different based on programming skills. I believe that we teachers also have a lot to learn when we work together. I had the most profound experience when I was chairing the get examination paper setting panel for a subject. Of course, that is confidential information, but it had happened so many years ago that I do not think in I think I can openly speak about. I will tell you that experience. We spent about seven days, the large team, couple of my own colleagues, couple of colleagues from other institutions, about six, seven member team. We spent almost one and half days in reading all the past papers. You know why? IIT system is very proud of this fact that in our joint entrance examination and in our gate examination, which have been joint entrance exam we are conducting for last 50 years, gate also for past 30 years also, not a single question has ever been repeated. The first question that the members take is to ensure that all questions which have been raised earlier are removed from our mind. We have to sit down and set new questions. The second thing is the rigorous discussion that happened on every question. First, what does this question test? Second, how long a student will take to answer this question? Third, the choices that have been suggested. Are these plausible choices? Are these meaningful choices? In the context of these options now, are they the best options or can we think of something else? There used to be enormous amount of time spent on discussing every question, very professional. You will note that not only gate, but any exam that is conducted competitive exam, usually there will always be some glitch or the other and you will see every alternate day newspapers. Of course, newspapers these days I think have stopped believing in publishing positive thing that are happening and also a lot of positive things are happening. But if something goes wrong, there will be big headlines and so on. Three questions wrongly stated or whatever, whatever. So, in spite of that happening, the amount of effort that is spent is enormous. Why I am telling you all of this is, I would request you, many of you might have done that by the many of you who actually set your papers, whether internal or the final papers, et cetera, et cetera, on your own, you would be used to doing this. But even to those I will say there is a great fun in doing this together. Each one of us will learn something from the other member. The mechanism that I suggest is and that is why I said please try to spend some time in the afternoon sessions when you are here. Unfortunately, you will not be able to spend all that time today because you need to have a mechanism to define that topic on which you will be setting these questions and I have not yet clearly stated that mechanism. I will try to do that during the lunch break and assign topics appropriately. I will have some interaction with people now. So, I will request people who have questions to raise their hands. But this is my request to you that during the next two days that you are here, discuss how exactly you will be interacting on emails with each other at what frequency? What are the deadlines? Assign individual tasks to everybody, your four members, five members, three members in a team. You should say right now that I will do this or you may please consider doing this. Arrive at conclusion and record it. There is no harm in following the diary system that I have suggested for our students. After all a good discipline is not meant for younger or older people. It is meant to get the activity smoothly and efficiently complete. The team coordinator might request all participants, all colleague participants in that team to kindly maintain a diary. It is a self-diary. If I am setting a quiz paper, how long did it take me to set that paper? After setting that question, the question should be circulated and all the team members become peer and they should read that question, read the model answer. You know why this careful scrutiny is required? Oftentimes I may make a silly mistake. Oftentimes I may make a grammatical mistake. I may not write my English proper. Oftentimes I may make a wrong mention of a choice. The correct answer may be something else. That is why I need a cross check. Now, this cross check should be provided by the team members. The project definition that you are going to write, it is most widely written by one of you who is more enthusiastic to write the details. But I request all members to read that very carefully and make suggestions. I think this team exercise will also make you a better teacher in the sense that you will understand better the value of group discipline and you will be able to impose that upon your students. But please don't rummage on the deadline. It is four weeks from now. I would suggest that a weekly diary sort of is maintained by every individual partner, whatever work you are doing and you should consolidate that and submit that weekly diary. The team leader could just update that single diary along with the final submit. The text format which has been suggested as rough is important because what we propose to do it, we will actually convert this into some kind of a acceptable document automatically where those tags, the hash marks and so on. And our TAs are going to extract all simple quiz questions, medium quiz questions, hard quiz questions and test questions separately and are going to work on them to make a larger collection which could be later on made indexable and so on. I will not go into those details now. The second thing I would like to do is not a documented assignment. It is not part of a requirement and you may choose not to do that assignment. It is not in fact an assignment. I call it a voluntary assignment. All of you are familiar with this assignment. Yes, I am referring to creation of Indian language transcripts of short lectures. And translating those transcripts into Indian languages and preparing voice recording of those Indian language modules. I have shared this with my co-ordinators when they had come here. I had mentioned this initially also. All the first year students whom we teach do not necessarily know English very well. They are not very proficient because many of them have studied in their own native language. Just as I did and many of you would have. When I passed my higher secondary, I could understand English a little bit because of the coaching that my mother gave me in English. But otherwise I was not very comfortable writing English or asking questions in English. It takes time, four months, five months, six months. But in the first semester, first month it is very difficult. I believe that the students benefit more if at least some basic explanations are given to them in their own language. I am not saying this out of just my gut feel. Every time I have taught CS Vanomal, there has been a bunch of 35 to 40 to 50 students who come to me on the very first or second day telling me that they cannot understand English well. So, could I arrange for some lectures in Hindi? Majority of them come from Hindi speaking there. But I have had students who come from Andhra Pradesh saying that they can understand only Telugu. As students who have come from Tamil Nadu saying that they are comfortable only with Tamil and so on. This will happen. Now imagine today what we do in IIT. For example, if they are Hindi speaking students, I end up taking three extra lectures every week in the night after dinner. I do that for about three weeks. After that the students are comfortable with the class. I am sure many of you would be doing this. Many of you would be actually answering questions in the local language so that students can understand it better. Nothing wrong with that. But if that is so, then should we not create a huge resource, a digital resource which is easily available to every student and which will teach him or her in a language that he or she understands. The modal exercise that you uploaded long time ago on writing the transcript in English was a good exercise. That was an exercise to train you on that. There were some people who submitted the optional exercise of translating it into Hindi or English. And I will actually show you glimpses of it when I have the session on how to introduce computers. I will do that session incidentally tomorrow morning or day after. I will include the completely revised timetable for the remaining days in a short while. But my request to you is I will be asking for volunteers saying, are you interested or are you not interested? And if interested, which Indian language you have? It is completely voluntary and I assure you that the certificate, the IST certificate for attending this workshop and successfully completing it will depend entirely on your completing other assignments and your completing this timetable. But if there are volunteers who would like to participate in this and who would in fact enjoy using this kind of audio-visual technology to buttress the learning material availability and the quality of learning that may happen, I would welcome you to do that. I would now like to use the remaining half an hour of this session to go over to the number of institutions who have raised their hands. J.J. Magdum College, over to you. We can see you. Sir, my question is, how much importance should be given to line of code during the evaluation process in team project? Frankly, it should not have any significant relevance at all. The number of lines of code neither represents necessarily the complexity of the problem they have solved nor it necessarily represents good quality. But what happens is when you do these projects, there has to be some common numerical qualitative measure. This measure is more as a measure of record. So, if you put that measure, for example, if a project has only 50 lines of code, I would be terribly surprised if that project has achieved something extraordinary or worthwhile. Similarly, if a project has 5000 lines of code, then you will grant that it is unlikely that much of that code is just waste of time. It would be written to achieve something. So, to answer your question, no significant weightage need to be given to the lines of code at all. But what should be recognized is that a significantly larger number of lines of code typically means a greater effort, significantly greater effort, and typically very small lines of code means a very small effort. These are qualitative judgments, not quantitative. I hope you got the point that I was making. Thank you, sir. Thank you. Let us go to the next institution. This is Nellit, formerly DOAC. Oh, Srinagar, yeah, over to you. Myself, Mohammad Iqbal. Sir, I have two questions. Why on some languages like Haskell, iteration is allowed, but recursion is encouraged. Second, what should be ideal proportion of MCQs and subjective type questions in your final examination paper? What do you say? Mohammad Iqbal, very good questions. I will tell you both your questions are difficult to answer. So, first of all, I myself am not very much familiar with Haskell, but I would say this, that for first year students, it is important to teach both the concept of iteration and the concept of recursion. But more particularly, it is important to emphasize various nuances of iteration with far greater clarity, and that is because that is the control structure which is maximally used in every nook and corner of any software that you develop. The second question about what should be the ratio of subjective and objective questions, very difficult to say, very, very difficult to say. I do not think there is any concrete researched opinion saying this is the better, that is not good enough. So, I am unable to answer this.  And like Konbanega Karolpati, we just Amitabh decides based on opinion poll, we can decide on the basis of opinion poll. But frankly speaking, when you are actually conducting an exam, going to any extreme is not a very good idea. So, having entire exam only on multiple choice questions such as what happens in massive online open courses is perhaps not very good. But having a overdose of subjective long answer questions as the major way of evaluation is not a good idea at all. The short answers, quizzes actually permit you to conduct more evaluation, which also means that you conduct it more frequently, judging the students more frequently and also ensuring that the students spend regular time on studying that subject, not just at the end of the exam they will study. So, this is my response. I hope it was at least meaningful to some extent. Let us go over to the next centre, Neeta University Hyderabad. Good afternoon sir. Sir, I am very happy that you have introduced this automatic grader, auto grader and this is especially useful for our lab sessions sir. And I have, similarly is there any tool for automatic evaluation of single sentence answers? Yeah, I got your question. I was just thinking, I have not heard of a single sentence answer kind of thing. But if that sentence is a program instruction or a statement in a C or C plus plus language, it may be possible to use auto grader. But I am just speculating, I have not heard of this. I would also like to tell you an attendant software which we found quite useful. And this is, you would have heard of plagiarism checking software which actually checks, you know, research publication, whether you have copied anybody's paragraph from some research paper or something. Similarly, there are software comparator. So, if a student submit the assignment, my TAs use that software by selecting, submitting all the assignments to the chart and trying that software to determine whether any pieces of software have commonality. We have indeed been able to find, sadly rather many copying cases where students simply copy an assignment and submit. So, that piece of software is also useful in the hands of a teacher. Sir, good afternoon sir. Actually, I have two doubts sir. First doubt is, as far as Gaetan University concerned, we are offering C++ as an introductory courses for the first year students sir. My doubt is, this type of active learning or this type of evaluation system will work for the first year sir because most of the students are having a rural background and those people do not have a familiar with the computers. So, they will lose, if we introduce this type of evaluation system in the first year itself. It is my opinion sir, what do you say? So, I will say two things about it. First of all, your observation is correct. The people who come from rural area are hesitant to do this technology. However, your conclusion is incorrect. I have also dealt with exactly similar rural background people who come to IIT and they also have similar problem. The issue is the way we tackle it. If we uniformly without any further guidance or further participation just tell everyone that this is how it will happen. Then, if I am from a village, I am usually a shy person. So, I will not ask anybody, but I will also not adapt anybody. The trick that I have used successfully in which you might want to try is that when you introduce that, you would know immediately these five or eight people are not comfortable doing things. Now, such people should be given a chance of what I call trial quizzes or trial tests, where they just do some hands on dirty their hands, but they are not worried about losing marks or they are not worried about losing evaluation and do that more than once, twice, thrice, etcetera, etcetera. I will tell you, this is true about anybody who is a bit hesitant. I have seen this among groups of teachers when we used to conduct this workshop with quicker devices. There was no occurs there. The moment I said this will be one marked quiz and we will accumulate these marks towards IST certificate, the behavior of the entire group changed completely. They suddenly became very cautious. They suddenly became very dependent, but when I am conducting an opinion poll, now even you have seen so many, a class tablet might not have worked at some place or something, but nobody is worried. No person in the group is worried. You are all taking it as a fun. Technology usage should be fun. Teaching and learning should be fun. So, I am sorry for extending, but my suggestion is please always use some kind of a trial and hand holding initially before you adopt it formally for your evaluation. It invariably works and please do not underrate rural students. I will tell you, time and again I have found that they are very sharp minded people. They are only shy because of the reservation that they have. They do not know that now. Give them three months and they will become as smart as others. That is my reading. Thank you. No sir, my opinion is before going to conduct this type of evaluation system, better we can conduct a workshop or something tutorial like this. You know how we are going to evaluate the system, exams, their credits and all. Yes, you are. Second though is sir, as a part of workshop we are going to allocate team activities and my doubt is how we are going to grade. Just now we have illustrated how ILT projects have evaluated. You are going to follow the same procedure for this team activity also? Yes, I have not yet defined. In fact, I was going to define it tomorrow, but you have sort of forced my hand. So, there will be two stages of evaluation. It is not really evaluation, but I would say it is an attempt to improve every submission. So, what we propose to do is first and foremost the RC coordinator will look at all these submissions. The RC coordinator alone may not have expertise in all the different topics on which you make submission, but the RC coordinator will make sure that you have all submitted your things in time and will make sure that these are downloaded from the Moodle into a collaboration which can be aggregated at our end. We will then set up a review mechanism. So, people who have written, who have set questions on the same topic will receive three or four submissions made by others and these three or four submissions will request say for example, you and your group to kindly look at them and suggest corrections, modifications, etcetera, etcetera. If we pass through this through one peer review process and we will also request you to comment and give a score. It is not a grade. I mean, the grade is not relevant for issuing the IST certificate that anybody who submits a proper listing is good enough, but as you correctly guess we want to use this effort that people are putting in and we want to use this for the benefit of everyone. So, needless to add we need to have a review. By the way, I forgot to mention one thing. Under no circumstances, absolutely under no circumstances, please do not choose a question which is a proprietary property of either any publisher or anybody because that could land all of us into deep problem. Similarly, when you write the correct answer, please ensure that the correct answer is not one which is already appearing in a text book because that is a very clear plagiarism. Now, we may not even be able to determine it, but when we release it in open source, please note your name will be there along with that thing that this contribution was made by you. You and IIT Bombay and everyone could get into deep trouble and the whole movement will get abandoned. So, I have not added that, but along with every submission, the final version will also contain a declaration by the team leader that the team leader has confirmed from all team members and confirms that no material has been taken from any resource and all the material that we have submitted is our own creation. So, that is the request. Thank you so much. Let me go over to few other people. Shivaji University, Kolhapur, over to you Shivaji University. Good afternoon sir. So, I want to use the clicker software in my classroom. So, my question is, has IIT made it available free? If yes, how to procure it, install it and use it for launching the quiz in my classroom and if not, can you name some similar open source software? There are many questions bundled into one. So, first of all, let me answer about the costing aspect. The Akash project was conceived three years ago as a pilot project to procure 1 lakh tablets and see how a new applications meaningful educational applications can be developed and new content can be developed and b how it can be used in an educational system. Now, for these 1 lakh tablets, government of India has paid and in our scheme of affairs as approved by our project review committee and so on, we have decided that we will distribute these tablets to 300 colleges which are called our remote centers and they will use them. So, this is a pilot phase. Obviously, in this pilot phase, nothing is possible to deploy them in large scale. So, if I have 500 students in my college and if I have only 50 tablets, I cannot meaningfully use them for the educational purpose. Two things about it, one is the next version of Akash, the specs have been approved and DGSND is running a rate contract. They will announce the selected shortlisted vendors and I have recommended that they should shortlist at least three or four vendors so that multiple people are possible available, multiple suppliers. The DGSND or on its behalf CDAC will certify the gadget, the price will be announced and you, your college or individuals can buy it from the open market. As you got software is concerned, I think I mentioned it, but it is mentioned in the Akash site anyway, that all software that we have developed on Akash, all content that we have developed on Akash plus all software and content which is developed by any one of your students or teacher colleagues at 300 remote centers, all of it is released in open source. It is available on a site called akashlabs.in. I will put that site in the model, not only you, but all your colleagues can look at it. You can simply download that software, there is an APK, upload it on any android tablet and that software should work. So, whatever we have done it is in open source. I hope that answers the question. Let me go over to some other college. Vajran Institute of Technology, yes, over to you. I am Dr. Srinivas Kumar. How far the active grading strategy uses relatively good results in evaluating the students? I am not a real expert to answer that question, but my belief is that the active learning strategy possibly makes the student learn more and learn better. Whether that is reflected in better marks scored in the conventional examinations or not, I would suspect it well, but I do not have any concrete statistics to prove that. I would say that the strategies are like the ones which you mentioned and in fact what Sridhar Ayer and Sana Murthy discussed, they are essentially strategies to ensure better learning by the students. Now, generally better learning should reflect in better graded marks, but I am unable to comment on the exact velocity of it. Can we go over to some other, yeah, please go ahead. Sir, my question is related to yesterday, Love Session 2nd, X-Learning C++ program in code block environment. My question is how to execute C++ program in code block using command line? You cannot really execute a program in command line because it is an integrated development environment, but you can simulate the command line as I said by giving the command line parameters under the environment option screen which I had given on the model. So, instead of typing the command to execute the program, the program is executed automatically by code block, but after the command whatever you type, whether it is real direction or parameters or whatever, they can all be typed in before execution on that options menu. Then the code blocks will behave as if you have typed the whole command on the command line. Once the program execution starts input will come either from a redirected file that you have redirected or you will have to type it on the keyboard which is another terminal. That's the only way to do things. Let's go over to the next, yeah, Mount Heon College of Engineering. Over to you. Good afternoon, sir. This is Ajita from Mount Heon College. In those two months in the team activity, how many times should we meet the students? Should the students be the teachers? Is it after the stage 1 and stage 2 or during the process itself? The process value is equal to the final product of the two stages. During the, so let me translate it as follows because in IIT Bombay, the teacher is actually the teaching associate. So, for example, my first teaching associate job was on CS 101 in 1971-72. So, Professor Isaac was the teacher and I was the course associate. In those course projects, typically the allocated batches would meet me and I would spend about one to one and half hours per week of my time on that. Later on, when I started teaching the course and Professor Isaac was my course associate, he used to spend on his own Suomoto some three to four hours with the students actually guiding them to do better projects. So, the amount of time that the teacher has to spend is variable. Actually, you can spend very minimal time, mostly encouraging them, solving the problem once in a while. In fact, even a five minute interaction in a week is often good enough. Curiously, these students solve the problems among themselves. That is the real advantage of a group work and they go outside the group, such as our Moodal for example. We are a group of 5000 people. If I have a question and even if the teacher is not available to answer, I will raise it on Moodal and somebody will answer it. That is how the problem gets solved. It is a very exciting experience, but do not worry about time. Yes, you will have to spend extra time. There is no doubt and I would not call it extra. It is the time which we should spend, but it is not part of our timetable. However, it is not very extensive. The second suggestion I would make again, I had made it earlier. While your colleges may not have a very large number of PhD and M. Tech students and therefore you do not have the kind of teaching assistant scheme that runs in IIT system, but what prevents you from asking your own final year student whether they are willing to work as your T. S. It is not uncommon. Incidentally in IIT, when our T. S. are our M. Tech students and PhD students, in addition for C. S. 101, every year the dean of academic programs formally circulates a notice saying those third year, fourth year M. Tech students who are interested in becoming T. S. for C. S. 101 may come forward and they are appointed as T. S. And believe me, they often do a more wonderful work than even the teachers, because they are students they actually relate much better to it. I will tell you these large basic courses should always be run jointly by the teacher and the senior T. S. A community. Whether the T. S. are M. Tech students or PhD students or B. Tech students, it does not matter. In fact, I remember in my last offering two of my best, I had a team of 60 teaching assistant, 60, 6-0. The two best T. S. were both second year students who had just studied C. S. 101 one year prior. They were the best T. S. They were very enthusiastic. They could, they were very smart. Of course, they could solve all their problems. So, use T. S. as much as possible. If you do not have any T. S. Schiff scheme, introduce one and do not give up till you and your management succeed in getting some final year students of your college participate. Believe me, these B. Tech students love this, because they expect that at the end you will give them some recognition in terms of a certificate or a letter saying they have done this work, which you should not give it. Right. Thank you so much. Thank you sir. Thank you. Dhandi Institute of Technology, Orissa. Yes. My name is Jyothiranjan Mahande. I have some little doubt about that computer programming. While we are teaching the beginners of computer programming, can we use the built-in function in fast program? If yes, then is there any difficulties of using built-in functions? Because I saw that sir, in your program that you have written many built-in functions. Is it wise to use built-in functions in a program? 100 percent. The objective of programming is to minimize the code that I have to write. If there is a built-in function, it reduces my Ghodagiri work or effort that I have to do. The purpose of built-in function is to provide simplicity of writing your code. So, there is impact whether there are built-in functions or standard functions from the library. If they are used, you should most welcoming. Only thing is they should be used correctly. That's all. All right. Let's go over to what is the Institute of Technology. Sir, I have two basic questions. Just I will briefly let you know. The first question is that when we teach programming techniques, students do develop logic and they are good at developing logic, but they struggle with syntax. So, how should we separate out the syntax part while teaching the basic programming techniques? Because in further courses, they find it easy to do this logic in some different languages well. And in some languages, they find it difficult. And another question is when you introduce team programming, team activity, they are not used to software programming principles at the induction level. So, would it be better to have some different alternative strategy for team activities? Thank you, sir. Over to you. So, very good questions, both of them. So, let me answer both of them. First of all, yes, people would be worried about syntax to begin with. But to emphasize only the logic part and de-emphasize the syntax part completely is not the right answer because two together will only result in a good program. Instead, what you should attempt is to remove the fear of syntax. And by the way, the only way it can be done is by giving them access to computing environment which they can use again and again and again to correct their understanding. In fact, one of the reasons why a thing like code block or thing like cc++ being made available on Akash under Ubuntu, these are our efforts to ensure that such students who require more practice are not curtailed in their enthusiasm because the limited access to the laboratory in the college that one may have. Now, apart from the access, you require one more thing. You require mentoring and you will not believe it. But if you form these teams very early in the course rather than waiting for the course project, in fact, you can form the teams. I have tried that in this as well as some other subjects. You form teams of people which you call discussion groups right at the beginning and you will find that these problems are sorted out by these groups themselves. Secondly, about the team activity that you mentioned, there is nothing to do with software engineering. Software engineering is a term that we are using but it has to do with learning to work in teams. Of course, they are hesitant. Of course, they are not good at it but you know why? Because they have never learned it in their life. However, when they pass out from our colleges, all that they will be doing in their professional life will be teamwork. If they are not good at it, they will not be able to deliver better. Somebody somewhere has to teach them. We might as well start teaching them as a part of the computer programming. If nothing else happens, believe me, they will become better programmers. Thank you so much. Over and out.