 ॐृूॉ। में आदर उ दिजाने सेश बो्ची सेशीता में आदर रहा हैं था दो तुज्ध, को ईजब कोई गए मुझैं सुद दीखिच, में एक आगा रख में अग़ सेशीत देख ग़। की वो पोब आदर इस देख़िन, और आदर, अख़गा रख मुझाद देख़िन लेए, अपोल सब अगरिखारिखाउतु बबस्वाल्गा है। अपस्वालगारिखा मधोल, मैं, प्रे म् मेर्द्वार्यशना वाबशाँत है। फारी झाही, चोल पकिसुग आदर्गाया जाह कुछाँद अप्सवाद अप्सवाद। चेर्लिट kızımताब रखड хотя आइ आप शगादे नहीं जमपते। खुई ले� degree 어려ों याएट वलगरतिंँ ढचिछ भर लग भे। गडिय वें गदिय जी कर्ढी negative to be the counting to the platform. एक आप ख़ेय कर के ढब loof वहकिछ कराई कि सा वो न उस जातchter on the剺қस के लिस काई कर देट़ काई कै देट़ यह विंग Tous त॑े का्मारें की आप मरस. और सम्ए औरदčनी की एक वित्त organised by kannst of वीसे कुई जद्न कास अए रेता हैball始, monetary, अगर नह procurementって ज़ाद औध किस थे अय्ग ज़ह रही ही। that is how we conventionally Indo-migration गए उबाहते है,kin i all mention somethng something about how can we use such organisations, redesign將 them and make them amenable for a flip classroom సంి యుచార్త్చ్పైటి ఇలినోట్పె. जोगी और नहीं, � countdown on this is a simple problem of reversing the digits which people can understand. नहीं भी लिए लिए गई तो उरप्चार लगा देविला है, शुच आद पुटे, आप आदब, यखind & the motivation to use different variable names. अदिशू़्कँऱ्न्फोद प्रुअद्उशु या आपže उसे दीवार वहात नद्उक्ईसवार के शाना वेच्झाएंच की वहात फ piggy उसे वेप सी व्चुटतात मेरजते काईं अप्दी� now of matrix addition matrix subtraction matrix multiplication अचे थेंचorum the cilantro in their engineering and science courses at least they'll be dealing with matrix inverseMagic is not present, get any knowledge . So we introduce the notion of an array as it is known to the students by saying that often we may want to find out the sum of an elements of an array The mathematical notation is indicated here. And suppose is an array which contains some 11 integer values we could write this as this But If we use a notation Xi to reprint the i-th element what is X2? So you can say वृमनी शकुद रड़रका,तभी इस्धादागे रडर चाह करूटे आपी आता इसे है मज्ग of इस्श्दादा आपी ृ अगर्ए प्शदावागा किषिज़ से विर थाई से आदागे करूटा काई मिच्दावाईईई़ा़। तक सदपनी बूगोर्परती �薬 आपा मज ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ ॐ  डम्भो, रवड़्ब्वरी करनण्टार्ते करदाऔ। अच्� into Happiness आतिस στην मडुग than आतिस खदं khen रवडर। औब स्विуск एकुग सद्यन 돌ग श्विpe ई मिने मुव, ये कि पहबात। एasil लख़े वेल, जे ख्द्टिय कॉगा व Playstation चारूअक लोग़ सब श्वाएद करई त्रबन बहुत की तरबढाश्वाएद, और औबना दर बुग। सब वाह। अदि़ए मुत्कों की लने चिर pushed it was. And we sort of indicated that there is something called a base address and add four bytes to it. उन्हूँ स्बतने बॉपोछय ताईज 겁니다. Remember we are not talking about pointers and these juncture at all. तोम bleibt लffee कु pessoal कर ल्ठा fromftenást the topics, we are merely suggesting that as the index of the array varies effectively मुर्वार्याच Pretty is the address appointing to different elements of the阿ечь. We describe how the areas are defined and so on. We describe the important properties of areas, we describe what an index expression is and we say that we will use this a square bracket i to indicate i as an index etcetera, etcetera. And then we describe that in a pictorial form how the areas elements will be put one after another. where each location can hold let us say a particular type in value or float value or what. Okay, so these are the kind of array declarations that you can have. We say this is incorrect. Please note by this time we have not actually described defined n size etc. So people might think that they can declare a variable size array by reading in a value of n size. It is important to dispel that notion and tell them that the array size ordinarily has to be prescribed before or when you write the problem. And then there are some additional examples of indexing limits on index value. The fact that index varies from 0 to size minus 1 etc. Now this is where we start motivating people to the notion of sorting. So to begin with since we would have discussed a problem to find out the maximum of n numbers or minimum of n numbers. You will recall it was one of the exercises of how to find out the maximum of two numbers. And there were two options given. One was using the if then else and the other was presupposing that one element is the largest and then comparing with the next. And we say that this is how we can find the maximum of n numbers. You read out all the n numbers first assume that the 0th element is maximum and then compare that maximum with all other elements. If any other element is larger than the current max you reset the max. This is very simple for people to understand. But now what you say is that you also want to find out where the position occurs for that maximum. We of course might suggest that either all integers in the array should be unique or if there are multiple integer values which are same as the maximum value then this algorithm will either point to the first or the last element. But later on we will clarify that it does not really matter. So this is how we introduce an additional variable called position. It is deliberately described separately to indicate that it is an important variable. And then as you find the max you also find the position. This is quite simple for people to understand. But now we motivate them by telling them that if I swap the values of two locations of an array. I have left this slide blank. What I do is I use the tablet to indicate the swapping of array elements which is very similar to swapping of two variables ordinarily except that the elements participate in the swap. And using that I say suppose I decide that I find the maximum in an array and exchange it with this 0th element of the array. How would I do that? Well the algorithm runs exactly as it is for finding out the max and its position. And after it has found the maximum and its position I will simply exchange that element with a0. So a0 is assigned a pass before that a0 is stored in a temporary variable and then temp is assigned to a pass. This exchanges the maximum element form with the a0th element. And then of course the program simply prints that value. People wonder why we are doing this crazy thing. There is an array there are elements we are taking out one element which is the maximum and exchanging it with the 0th element. This is actually the motivation for explaining the exchange swap. So it says suppose we had six elements in the array. It would be nice if I could demonstrate this finding out the maximum also dynamically. There are animations which are possible. There are animations which are possible in code blocks incidentally where people can go through that execution and for a few elements people can see that. But more importantly it is sufficient to tell them that after executing the program the max will be found at 95 and its position would be 3, 0, 1, 2, 3 and when we exchange this will how the array will look like. Now we tell them that we have the largest element in the 0th position. Suppose we ignore that and look at the remainder of the array and we repeat exactly the same process for remaining five elements which are 52, 13, 24, 64, 50. What would happen now is 64 will come here and 52 will go in its place. Now we notice that the array will now contain 95, 64 and then the remaining element. At this time you can ask the question to the people if we continue this process for all the remaining elements what would happen and 99% of the people can guess that at the end the array would be arranged in this order and on. Then you can tell them that look the program that we wrote to find out the maximum in its position and exchange that element with this 0th element can most easily be extended to do the entire sorting and then we present this program to them that here is an array we read n elements into it. We set up an iteration for k equal to 0 to n-1 and instead of 0th element we now consider kth element to be the anchor. So from kth element onwards we examine all the remaining elements find out the max exchange it with the kth element here. So notice that in the previous program whatever was a0 now is ak and there is an internal iteration which runs to this and when I do that when I exchange it with this I will just print out all the elements of an array and I will get a sorting. Now this kind of introduction to sorting you can use your own technique to explain what typically happens is we go by the book and take the bubble sort or any such example which is given there but it might be useful to motivate people towards bubble sort with this or any other similar example which will tell them exactly why we are doing those things. Now here is a practical example that suppose I have a class of 500 students I have given an exam I have collected the marks and I have roll numbers of students and marks of the students stored in two arrays and I want to find out who are the top ten performers in the class. Then one simple way would be to read those two quantities about every student the roll number and marks in two arrays. Naturally these two are different arrays so when we sort an array on marks we will have to correspondingly sort the roll number array so that whenever marks of a student move within an array the corresponding movement happens for the roll number array and we can tell them it's so easy to do that whenever you change you shift this is of course just the input statement please note an indication that if the number of elements supplied to you or assumed to be supplied to you that is the number n is larger than the array limit you actually print out an error message and say this is not correct. All of you will know that return one any return non zero return can be flagged by the operating system later for your purposes so that is a good programming practice that's what you can tell me. Anyway the point being made is that in my algorithm which is exactly the same program as the previous one the only difference is that whenever I find the maximum I not only exchange the maximum marks with the kth element I also exchange the kth roll number that's the only extension that is required and then I comment that both arrays are now sorted on marks and output first tail elements this is deliberately done to later on tell them that this is not probably the most exemplary way of finding out the 10 best people for example if you were to find the top two people you won't sort the entire array of 1000 people you just find out max one max two in fact it is an interesting mathematical problem to determine that if you have to find the kth maximum or the first kth maximums in an array then what is the value of k for which sorting of the entire array is more beneficial versus using some other approach it's a hard mathematical problem this you can pose to the better performing students of the class but this is one way of indicating that don't think too much sort the array find out the top 10 your job is done this is where I used an opportunity to introduce the notion of efficiency of a program in terms of the execution time so I observed that most programs typically get executed in less than a second and therefore we don't bother about how much time a program takes to execute because 50 milliseconds and 700 milliseconds the 700 milliseconds is 14 times 50 milliseconds but both of them are unobservable by us we press return and the program executes so we don't get to see it however if there are large numbers then the program execution may take time and this is where you can introduce an appropriate command at the operating system level which will monitor the execution time when the program is executed for example in UNIX operating systems you have typically time command which will tell you the real time that is the clock time that it takes to execute the user time and the system time on that particular PC when I executed this it took about 8 seconds of real time because of variety of other things machine was doing other things as well but the more important time point is the user time that is the time that the processor spends on executing your algorithm 2 seconds is sizable the question to be asked are two questions on this point itself first this was a 1000 element array and n was let us say 100 or 200 or whatever what if the number of elements were 10,000 ok what if the number of elements are 100,000 will the number increase from 2 to 10 times 2 to 100 times 2 you know all the answer is no because the algorithm that we use the order of time complexity is n squared so 2 seconds will become 4 seconds and 4 seconds will become 16 seconds and you should encourage students to run such programs with larger data correspondingly there is a second question how do I input 1000 values how do I input 100 values even how do I input 10000 values this is where you can motivate them to think about data generation so for example since this is only a hypothetical exercise I can tell the students that how does it matter if the roll numbers are 1,1,1,2,1,3,1,4,1,5,etc and the marks are 1,1,1,2,1,3,1,4,modulo 100 then they will suddenly realize that they don't need an input statement at all they could actually declare to large array take any n and automatically fill up as many values they desire in the roll number array as well as in marks array of course this is artificial data but we can tell them the objective here is to understand the efficiency of the program that we write and the objective also to tell people that when they execute this with real data then these are the kind of timing that it is likely to take we have a lab exercise later where we give them a sample code of generation of data and we ask them to write different sort algorithms and compare the execution time my own experience is that instead of giving them the time complexity and the detailed analysis if you ask them to actually execute that program with different values of n n is 100,000, 10,000, 1 lakh etc etc and when they see actually a program taking as long as 2 minutes for example sometime they realize there is something wrong with the approach of sorting and that becomes a motivation to introduce other sorting techniques including at the end the quick sort if that is included in your deliberations so we have found time and again that such approach is more conducive for students to understand in fact we spoke of average students yesterday so as I told you we all of us have the average student in mind and for average student these kind of approaches prove better than the smarter students smarter students will understand arrays any which way they will understand this algorithm very quickly so you have to hold them for some time till everybody in the class understand these things later on in this session I discuss the care data type and the character as an array and I take a problem which is first I describe the classical representation of string when I say C++ for example that is exactly the same as a C string and then I describe that if I want to look at the internal representation it will be a null delimited character string and exactly how do I handle words or strings etc etc there is another problem of finding the reverse of a string and then there is an example suppose I have written this program on the face of it it looks correct if I give it a 5 character string the program appears to work correctly so I execute the program actually and show them what the execution results are but then immediately show that if the input string is say for example Nagesh the program doesn't work properly and why it doesn't work properly is because I am not running the loop appropriately remaining at the center and then because of the integer division I make the middle point wrong if the number of elements are even and then I tell them what should be the correct program a simple example to tell people how a simple mistake could watch up the entire approach and the program but this is not important I wanted to show only the then we show the corrected program and so on now I come to the important point usually we have this continuous evaluation but continuous evaluation in the classical sense before we started using this is about 4 years ago when the Moodle had just started becoming practical and just was getting included in larger courses also Moodle also had performance problems then at that time it was still fashionable to conduct a paper and pencil quiz and test you can you can read the question paper let me explain the motivation behind the test and the way it was conducted traditionally we have a mid-sem examination and an n-sem examination most of you would have similar pattern in between we have 2 quizzes which are held before the mid-sem and after the mid-sem so these quizzes the lab assignments the mid-sem marks and the n-sem marks plus the project marks together make the total grade of the student the quizzes and the tests are conducted on paper or they used to be conducted on paper this will be the first time and we will be conducting all exams all now now this is an important mechanism for a teacher also to get a feedback of how well the students have understood thing so typically a quiz is conducted in a regular classroom with the supervised fashion but I thought I will like to give the students an idea of what kind of quiz would be conducted when they come for the one hour quiz so what I did is I gave them a take home quiz so this quiz is actually given away to the students this is a take home quiz slides for that session the last 2 slides describe the nature of the take home test so it says take this paper back home take some A4 sheets start the watch whenever you decide to write this test it's an open book test but when you attempt the test paper you will not consult with anybody you will do your own exercise suppose you leave the paper you are in the hostel room or at home and some emergency comes in after half an hour you note down after half an hour you left for 15 minutes, 20 minutes, half an hour when you come back you again point try to finish in one hour whatever you can whenever the one hour clock ticks draw a line that you have done only this much up to one hour and then complete the papers please note that one of the problems which students face in the conventional examination is an uncanny tension of completing that job in that stipulated time and different students as you all know will take this tension differently some people will get completely depressed if they start losing time some people will be very methodical some people will be arbitrary in their time management it is a great level I have found when you give this a take home test and tell them to monitor themselves agreeably not all students will do that problem as it happens in a class some people are attentive some people are less attentive but all those who attempt it in this fashion have confessed that they benefited tremendously and they learnt by that exercise they learnt to discipline themselves in time etc etc the statement in that slide also says after you completed then look at these sample answers given and evaluate yourself give marks to yourself and one more after evaluating yourself discuss your answers and score with your friends find out what is the correct answer you see the crowd sourcing need not only be formally done for 10,000 people it can be very informally done even for 100 people each person finds one's own crowd because each person will have 3, 4, 5 friends and if they are interested more importantly they are required to submit the handwritten papers when they submit the handwritten papers we don't even have to examine the papers we look at the scores it is unbelievable that 95% of the students don't cheat when they hand over those papers back the scores are actually what they have scored although subsequently they have found the correct solution and you know why they know that these marks are not going to be counted towards examination so they don't need to cheat 5% people cheat because either they have very low scores or they want to establish the better performance also cheat they want to show that they have scored 100% mark but ignore those majority of the students benefit from such exercise now I come to the flip classroom part of how to apply this in a regular session what if this entire session this was a 1.5 hour session by you what if I split this 1.5 hour session into 3 sessions of half an hour each with some sample exercises given along with the video recorded lecture I have 3 lecture sessions in a week which I typically have 3 hour sessions or something like that I could get one of these sessions say please look at these videos solve these exercises and come to the class to discuss the problem and I would rather give a variation of the sorting problem or something like that as a tutorial problem in the class and discuss that problem when I discuss the string handling I could give additional problem sets for tutorial discussion in the class after the students have viewed the original portion describing how the character strings are handled it is easily possible to take a 1 hour lecture record your lecture dub your voice give your examples upload it on model and tell students that watch this video before coming here and you now use the classroom so whatever the test and quizzes that we are giving even as a regular assessment instead of that we can give similar quizzes in the regular classroom during the discussion session that is flipping flipping is not something arbitrary or something different you are merely expanding on the lecture in a physical face-to-face contact an opportunity which otherwise we will normally not get as I mentioned if you have 3 hours in a week or 4 hours in a week for a course most of the time we will spend in lecture and a lecture pre-prepared is as good as your normal lecture you are compensating for the lack of physical presence in that lecture when the students view your lecture in their hostel room or home you are compensating for it more than by physically interacting with them during the regularly the trick is how do you take a 1 hour lecture material plus the problems that you would like the students to solve at home together and recompose it into smaller video lectures which people can see at home and all the problems including take home quizzes etc etc discussed in the class and over and above that you can actually give them some additional take home exercises for practice if they wish this was in 2010-2011 subsequently when we tried to run a flip classroom model we found that we were able to discuss many more problems in face-to-face interaction and the students' performance in the regular tests and quizzes overall performance increased there is no evidence to indicate that suddenly smarter students have started coming to IIT in last 4 years so the average capability and preparation level is same you would have also observed the same if at all anything in fact there is a crib that the level of students preparedness is actually going down but what we found is that the formal exams were better on an average than what the scores were earlier so this has actually convinced us that the flip classroom model will work but it requires lot of work on our part such as for this CSHONA one I will be doing all this work together with help from you and together with help from 10,000 people that is the model yesterday professor abhiram ranade spoke about motivating students using interesting examples of graphics and image processing we use that in one of the sessions in previous years to introduce people to the use of a matrix for representing images and this led to an ultimate discussion on fingerprints and a large number of projects that year were done by the adha related authentication of fingerprints building a database of all people etc and the entire set of students actually worked in different teams to do very interesting jobs including actual image analysis which is done by advanced students of image analysis and the guys students of first year are capable of doing that we need to actually tempt them to exercise arguably not all students will do that there are only few who will venture into understanding the underlying mathematics and implement the algorithms and so on but most will end up doing some part of the larger portion and they will enjoy doing that small part because they are doing part of a larger problem that is one advantage of related course projects being given I will mention about that when I discuss this