 Good afternoon and welcome to this session on the first day of the workshop. We will be talking about effective teaching and learning strategies in science and engineering classes both introductory and intermediate, but I guess since this is CS101 we will make sure that the focus is on those topics. So, here is a road map for today, what we will be doing for the rest of the afternoon and we will start off by discussing some problems in the teaching learning process and soon after consider strategies for that and by the end of today's workshop you will be able to identify some of these strategies, devise activities based on strategies, work with each other and a few more things. So, this list of some possible problems actually came out of the previous two workshops that we had done for instructors in CS101 and since we had live participants right there we had a very interactive session and we will try to make some of this interactive later, but this actually came from your colleagues and in fact if the coordinators are there you might recognize your own words in this list here that when we are in the classroom when we are teaching one of the biggest problems we have is that we have students of all kinds of levels, motivation, interest, etc. and the question is what do we do about it? Common complaints that came up the other day, the other two times were that students might be bored and one really common thing is that they mostly care about getting good marks and that is not wrong at all, but we have to deal with that constraint. So, what do we do and if we want to talk about effective learning, deeper learning, conceptual understanding, how do we reconcile that with the idea of getting good marks? And finally, from the teacher side one refrain that kept cropping up was we all know these problems are there, but what should I do in spite of all this? I am interested, some of you said well what should I do with the interest level? So, what I am going to do now is just flash another slide where we can see that there is no single prescription for good teaching, all of us know that and unfortunately I would not be able to give you those answers right here today, but what we do have is some guidelines and later today we will see about where these guidelines come from, what is the basis of them etc. But here is a list of some guidelines that we do not need to take into account specific individual students as well as populations as a whole and there is a reason of put them in this order right here you will see in a moment. Regarding the previous point about students tuning out etc. there is one thing we should be doing and that is to set expectations early, emphasize them often frequently enough and the last two questions are really the most important questions and that is where we will start from. One is what are the students goals and it could just be that the students goals are getting good marks, some students have other goals also we will see about those and we will see how we can address those, but the last question is where we want to start from that is what are your goals as a teacher and the reason I put this slide right here was I wanted to put the problems and the guidelines right next to each other because when I was thinking of these I thought well there has to be some sort of mapping between the problems and the guidelines that we are talking about. So the last one here how do I prepare in spite of all these problems really goes back to the question as to what are your goals as a teacher. So that is where we will begin this whole session and let me ask this question slightly differently again what are your goals what I am trying to ask is what do you want your students to take away from the days class. So one typical answer which we get which most of us give when we try to see what we want students to learn is by saying well in today's class we will be dealing with section 2.3 from the textbook and if you actually look at those that section you will see that it looks something like this the major topic could be for example in CS101 data representations and if you look a little further into the subtopics you will see words such as integer, floating point etc. etc. But what we really want to do today and from now on is to go from a set of words which just are words or phrases into something more specific more detailed where we know exactly what we should expect of the student to what level to what depth and what the performance outcome of the student must be. So I put this together this is in fact jumping many slides ahead but here is where we will get to by the end of today that something that looks like a series of words here can be rewritten in a few sentences where things are more specific. So if we are talking about floating point representations what we really want the student to be able to do is write the syntax for defining a floating point variable which means we want the student to say float x. We also want the student to understand what this x really means and if we want to go deeper than that or if we want some students to go deeper than that we want them to be able to explain how internally float x is represented how this variable is represented into the computer. So these kind of this list of goals is what we call as learning objectives and the first question we can think of is by asking ourselves what is the point of doing this why are we trying to get so excruciatingly detailed and why should we think about this in so much depth so much detail and really there are many reasons you will see today at some point we will see it is that both teaching and learning is a systematic process and we want to try to approach this in a more systematic scientific like process. So these are just words here and we will see again why what we really mean by these processes. So in order to prompt or in order to guide us further on how to make teaching and learning into a more systematic process how to make how to write these learning objectives in a more detailed way let us look at a few questions. Now the original question we had earlier what do we want students to take away from class instead of just dropping a few phrases we are trying to ask more detailed questions such as what skills knowledge and attitudes do we want our students to develop and based on that what will we do to the structure of our content how will we what resources will we use in class out of class for homework and finally how will we assess our students learning and what we will see is that when we start writing these learning objectives assessment becomes much more easier and much more systematic again. So let us start looking at what exactly these learning objectives are and how to write them mainly we want to spend the bulk of the time in the first hour on how to start writing these. So learning objectives indicates specific performance outcome of the learner and here are some which are not learning objectives. So understanding pointers appreciating object oriented program knowing data structures all these we claim are not learning objectives and I want people at this point to take a minute to think as to why we put these under the don't. Let us do an experiment let us see if anybody wants to attempt answering this question. So why are these under don'ts why are these not learning objectives and would anybody from ASC Bangalore try to think about hello Sangita this is Dr. Sangita from okay so Dr. Sangita from ASC Bangalore wants to say that these are not well defined and they are not measurable. So that might be one reason why these are not learning objectives. Thank you Dr. Sangita let us move on we will come back to you. So there we are that these need to be specific and they also need to be measurable and one more let us look at one more thing which we try to avoid when we write learning objectives. So often when we make notes for class we say something like today I will arrange I will have a lecture on character arrays or if you are teaching a course on ecology you might say today I will arrange a field trip and the claim is that these are not learning objectives either and here again we want to look at this last word in the sentence as to what a learning objective is that when we say we arrange a lecture or arrange a field trip or give a lecture we actually have the teacher in mind and not the student. So instead what we want to do is say something like the student at the end of this lesson will be able to do something. So they have to be concerned with the learner and not the teacher and our colleagues from Mission 10x will be talking about learner centric instruction in the next few days. So you will hear a lot more about these. So what we have in this chart is somewhat of a prescription as to how you would go about writing learning objectives. The center box here where we say that we formulate the learning objectives using action verbs identify list describe etc. This should give you a hint and in fact the second box down here is where you would start from that the student will be able to do or the student will be able to explain something. So we will come to examples in a few minutes but before that what I would like you to do at each of the remote centers is the following. So we are going to have activities we will try to make it interactive but in the absence of interactivity we will at least have the activity part. So first turn to your neighbor and if you do not know each other introduce yourselves because you have to do this task together with your neighbor. The task is that this is the first class you will be teaching in the topic of arrays and you need to write two learning objectives for that. We will give you a few minutes for that and after that we will ask you to share your learning objectives. So whoever is ready please just be ready we will request you can request for floor time you can raise your hand and our cameraman will put you over. So let us say two or three minutes for this activity. Periyar wants to share some of their learning objectives. The learning objectives is the learning objectives I am giving as follows to understand the purpose of arrays creating storing elements traversing elements the significance of index. The first one said that one learning objective is to understand the purpose of arrays and the second one was to create an index array elements I am sorry if I got that not exactly correct. So let us look at this one by one and the first one was to understand the purpose. Okay let us try to go back to the previous slide at least let me remind you. What we wanted to do is to indicate a specific performance outcome which means we wanted to say that the student should be able to do something. Now when we say that we want the student to understand the purpose of arrays let us use some of these action verbs to just restate those. And we can say something like the student should be able to explain why arrays are important and the reason the difference between the two when we say that the student should understand this is as a teacher how would we know if the student understands it or not whereas if we say that the student should be able to explain it it is very clear what we expect from the student. Would any other center like to share their ideas? Thank you Periyar. Any other center let us say ASC Amrithapuri, hello Amrithapuri, yes please. Hello Ryan, as I am saying just the purpose of the array or the objective of the array we should explain the students regarding the objective with an example like when we want to store the data in a bulk in contiguous location or in consecutive manner something like that. Okay what Amrithapuri wants to say is that instead of just talking about the purpose we also need to talk about examples for example such as if you want to store the data elements in a contiguous array. Now again I want to remind our goals for instruction which is also asking the same question as to what we want students to take away from the day's class or at the end of the unit. What we are really saying is that the student should be able to do something and show us something which we can clearly measure and assess at the end. So we want to think in terms of the student and not the teacher at this point. So maybe let us move on and look at a few more examples and this idea would become clear. Okay maybe one more center SGSIT Indore say that you have some answers. They need to be more practical real-world examples. Okay so what would the comment from Indore is that we need to have more practical and real examples and what I want to ask you to do is to write a sentence that says the student should be able to fill in the blanks. The student should be able to use they should know where the array is required in fact. Okay the student should be able to say where the array is required. Okay give examples of places where arrays will be required. That would be a learning objective for this for this topic. Okay so let us keep going on with a few more examples. Hello I am Pushpa from GSIT Indore. Okay hello Pushpa from Indore. First we should tell the students what is the limitation of a single variable and then we should tell them the purpose of array, how it is suffice that that actually need. After that the syntax should be given to the students and then an example. Okay so what we hear from Indore is that we should start from the limitations and we should start from the limitations and only then go into more details. Limitations of a single variable and that kind of leads me to my next slide. Okay let us look at the question as to when we have different learning objectives are they all at the same level are they all created equal and this is something what I heard from some of you that we need to do something first and then only then we need to do the other. So I put the three objectives that we had earlier for floating point variable. The first one said write the syntax for the variable. The second said describe the meaning of this syntax and the third one was to explain the representation the internal representation of this in terms of binary etc. So you will see that there is some sort of hierarchy and increasing level of complexity when we are talking about learning objectives and some of you in fact have brought this point in your answers. So this hierarchy actually comes in the form of a classification and the classification is known as a learning taxonomy. It was developed by Benjamin Bloom in the 1950s in the US and essentially what it is is a increasing order of steps where we try to classify a topic or classify knowledge and we say that initially we need to look at the lower or lower steps and only then move on to the higher steps which also involve the lower ones. Okay we have a question here from Salem. Sona College? Okay. So the learning objective of array is first, first we give the meaning of an array. After that we do the syntax for an array. I didn't give more examples. And then how to declare the array so we saw the learning objectives. And lastly we identified the representation, internal representation of an array. So we saw the learning objectives of array. Okay so we had some examples of learning objectives of arrays from Sona College and Salem. And again what they say follows this hierarchy that initially we need to start with the definition of an array and then we need to do some explanations then give examples and only then look at the internal representation. So again you're getting the point here that there is a hierarchy and SVNIT Surat also would like to share something. Yes regarding that learning objective for that array my suggestion is that before going to start array we first give some real-time problems that's related with array. Okay so SVNIT Surat in fact is is reading my mind in the sense that they're talking about slides that I'm going to talk about after half an hour. So they want to talk about some examples and some real-life examples. We will come to that in a few minutes in fact in a few slides. So I'll come back to you. Yeah regarding the pointers yeah before we explain them the points about the pointers as such it would be better and appreciated if we explain them as such the functioning of the pointers just through the concept of how the contents are get stored as in the form of envelopes. So what you access is the contents. Okay so the question here or the comment being made is that we want to look at the conceptual understanding of an array or a pointer before actually describing it further. Okay so let's go back to the different levels. We'll give you lots of chances to speak in the next couple of hours. In fact much of our session has to do with activities and questions coming from you. So we were talking about the different levels of learning objectives or different levels of knowledge as we go along and this is in a series of six steps according to this one hierarchy. The first one we call as knowledge where all we are saying is that how would you recognize something how would you recall facts. Typically questions that fall into this category start with define identify list site where all you're asking the person to do is trying to recall something that they already have heard before. The next higher level we call as comprehension where we are talking about meaning interpretation explanations descriptions etc and right after this series of six steps we'll see examples. The third level we call as application and here's where it gets interesting because we want to use knowledge that has been that we've already thought of in the knowledge and comprehension levels but apply them in a new situation which involves some principle or rule. So again typically questions which satisfy this objective start with the words apply calculate solve predict and so on. The next three levels are really more sophisticated and more complex and unfortunately we never get to these at the college level I would say never we rarely get to these at a college or school level but when you are talking about practicing engineers and scientists these are the levels that they want people to talk about. So we have something called analysis where you take a whole separate it into parts and understand what each part how each part relates to each other be able to look at the relationship between the parts and how you put them all together. The level that comes after this we call as synthesis where it's the opposite of analysis in the sense that you take little pieces put them together to make a whole and synthesis usually involves some creative behaviors planning so questions that we can ask in this level start with words like design device create and so on and I want you to take this slide really seriously because very shortly we'll be asking you to write questions. The final level according to the scheme is something called evaluation where you judge the value of something based on specific criteria you make decisions etc. Now the two things you want to see in this chart one is that there is an increasing level we already talked about it but let's look at say a level that is analysis. Now in order to do analysis we have to know the facts which means the knowledge level has to be included we also have to be able to understand we also have to know how to apply a rule etc. So the higher levels include each of the lower levels in this hierarchy. So this was a little bit of theory to help you go okay we'll move to the activity right now since we were talking about arrays I'll keep this slide on and now you have to do you have to work in groups I would suggest groups of three or four so just switch your chairs or move around and what you want to do is write assessment questions because finally we are interested in knowing what the learner wants write questions in each of these levels in the topic of arrays since we've already talked about arrays. So the way you can do it is use the action verbs on the right hand column and come up with questions in the topic of arrays for each of these levels. Just to give you a hint the then you want to go from bottom to top to give you a hint define is one of the first action word there. So how would you write a question on array which refers to the knowledge level using the word define. So this activity in fact you can take a few minutes about four to five minutes and work in groups of three come up write six questions one for each level and then you can share it with us. If you'd like we can start discussing level by level okay we already have a few responses and we also have a question from Amrita okay so let's go level by level we have one question at the we have one question at the knowledge level from Amrita and their question at the knowledge level is very specific they say define a one-dimensional array this is a very typical knowledge level question in arrays okay would you like to add one more question you were saying something okay another knowledge level question in arrays could be define a string in C using a character array. So typical these are typical knowledge level questions where you have define let's look at let's try to think of a comprehension level question okay we have a question at the comprehension level which says explain how the different array elements are stored in a memory and again it's good that you're using these action verbs they give you a very good hint as to how to frame these questions the moment you say explain how these array elements are stored it's more than recognizing a fact it's more than recollection what you have to do is to do you have to grasp the meaning of how these are stored and be able to articulate it so yes this is a comprehension level question how these array elements are stored some other center would you like to share a comprehension level question let's hear from Nandheed hello good afternoon and Nandheed has prepared a question for the evaluation level please go ahead and the question is evaluate the performance of evaluate the performance of one and two-dimensional array in terms of memory usage and CPU cycle time can you please repeat the last three words yeah I will repeat the whole question evaluate the performance of one-dimensional and two-dimensional array in terms of memory usage and CPU cycle time okay thank you so this is an evaluation level question from Nandheed evaluate the performance of one dimensional and two-dimensional arrays in terms of memory usage and CPU cycle time so the reason this question falls into the highest evaluation category is that in order to answer this question a student has to know what 1d and 2d arrays are be able to explain the differences between those be they also have to understand how each of these affect memory usage how each of these affect CPU time they have to take the performance of each of these arrays and analyze how how the memory is used so each of these first five levels is used in this evaluation question and that makes it into that's why this question can be classified as evaluation you said you had one more question Nandheed design two-dimensional array using two array okay the question is design a two-dimensional array using the syntax of two one-dimensional array so what sort of a structure would you write to create a two-dimensional array if you had two one-dimensional arrays yes this would be a synthesis level question yeah in fact this might have been one of the questions that we have written in our own example I have to look at the slides later and see any other center wants to share questions at the different levels we are receiving from Sumaya Mumbai okay the question is if you have a two-dimensional array to begin with how would you copy this the elements of this two-dimensional array into another array thank you for all your questions these are really good questions and it looks like people are getting the idea of it does anybody have an application level question we have AC Bangalore here do you have an application level or some other question hello hello hello yes what is your question application level in application level just by giving some code snippet we're asking them to find the output for the following code excellent so the question in the application level is that we show them a code a snippet of a code and ask for the output of the code thank you that would be an application level question because people would have to use their rules in a new situation which is a new code that we are showing so thank you AC Bangalore and I think what we'll do next is just run through our questions and you will see that a lot of these are familiar and in fact you have covered most of these questions so let's start from the knowledge level very quickly one slide back and this is again something that all of you mentioned good afternoon we have we have sg is s i t indore indore wants to ask a question yes ma'am my question is can we create an array of length zero size and if yes then why we created a compiler allow why allow the length of zero size array can we create an array of length zero size so here is a question yes i can hear you the question is can we create an array of zero size and i want all of you to think about if you ask this question at what level this at what cognitive level you would classify this question on and ma'am i have another question if we create an array of length n size then we use index zero to n minus one but if you we use index more n or more than n so it's a how what happened it's a compile time error runtime error okay so the question has to do with compile time errors and runtime errors and can we create an array of zero size and this would probably be an evaluation level question so what we'll do at this point is show us our examples and then maybe take one or two more centers we have another two hours to go so if you don't get a chance to give you give us your questions in this particular for this particular activity we'll come back to you in the next activities so let's look at some questions and we'll go through these really quickly since almost all of them have been covered next slide okay hello let's take one last thing hello yes one question was there that can one array be copied into another array so i want to answer for that it's very simple when to copy the contents of one into another one just declare two arrays of the same size like a of five b of five we have declared then get the content in one array either from the user side or you can visualize at the time of declaration only so in the array a you have some values then to copy these values into array b what can be done only take the for loop and with the help of for loop you can copy one by one the elements of one array into another array okay thank you symbiosis what symbiosis is trying to do is answer some of the one of the previous questions about copying one two-dimensional array into the other and since the answer was very long it will be hard to parap to repeat verbatim but to paraphrase what i can say is that they were trying to apply the different the or they were trying to find out apply the different parts to the synthesis and the analysis to answer this question so again let's go through some of the slides and we'll take questions later so if you could please hold off your request for a few minutes let's go through a few of the slides and we'll transfer the floor to you at the end of this and since there is a little bit of confusion let's start at the knowledge level again we had defined an array knowledge in comprehension we wanted to find out some of the questions we thought of was how is an array referenced this is again a question that did come up or we can ask explain why an array is required and i think this question did come up from one of the participants in the application level question we can ask students to write a program for example a program to find the maximum of a certain number of maximum of n numbers and as you're looking at the questions again think about why we have classified these into application or comprehension and so on so let's look at an analysis level question next this was exactly the question that one of you asked we show a program a snippet of a code and we ask what's the output of this program now depending on how intricate this program is we may be able to classify it as both application as well as analysis depending on how much of the breakdown one needs to do in the code it could be classified as analysis let's look at a synthesis level question it says suppose you have an array of numbers containing an unknown number of elements how would you devise an algorithm to sort these numbers now i know that the some of you want to say give answers to these that go beyond arrays but what we want to try to do is stick to one topic and see how within that one topic we can push the depth so that people are able to design and devise new algorithms sticking to the same topic and finally let's look at an evaluation level question in fact there are some very good questions came from the participants but one of the questions we thought of is is it always useful to have arrays and give examples where arrays may not be required or may not be useful and the activity that should have come next we've already done earlier so what we'll do now is pick another topic in CS 101 in programming we've talked a lot about arrays so what i want you to think of is pick any other topic that you will teach again in groups of three or four or maybe if you have a smaller center the entire group write similar write assessment questions for each of these levels and okay we will give two minutes per center and we'll start with the centers that haven't got a chance to present their answer so far so let's say about three or four minutes new topic not arrays and please write these questions for the new activity where you had to write questions for the new topic please raise your hand again if you have something to share okay we have one from Indore so we'd like to broadcast Indore so that we'll see what they have to share yes madam you've thought about structure as an example the topic is structure please go ahead yeah we started with knowledge where we ask the basic questions such as what is structural how do you define it and who all can be the members of structure okay so the question this was a knowledge level question on what this what is the structure excellent question please go ahead yeah the basic one the knowledge level this is how you recall the facts to the students okay do you have more levels in structure then we have tried for the comprehensive level also okay the comprehension level question is where we there we ask questions why structure is important because it is in a position to store the heterogeneous members okay there in array we are just limited with the homogeneous members okay they are asking a comprehension level question where there you have to think about the difference between an array and a structure okay maybe one more question and yeah then we have thought about the application level also okay application question we ask the students how to store the details of a customer how to store the details of a customer which comprises of the customer name number his address telephone number and birth date on okay excellent so to store the details of the customers you would need to apply knowledge in a new situation using principles etc so that would be a application level question thank you so any other center who have a new topic let's look at NIT surat kall because I don't think we have heard from them earlier taken the topic as fact for our analysis okay hello yes please go ahead hello ma'am we have taken stack as an analysis for everything for the first level of knowledge we have a question which goes like this what is a stack okay their topic is stack and their knowledge level question is what is a stack do you have anything do you have a question in a higher level for example analysis or synthesis in stack for analysis we have a question which goes like this define how you can use back in recursion what is the role of pack in recursion so they want to ask questions about using stack in recursion for the analysis level okay please go ahead and for next level evaluation we can evaluate how you can make a comparison between recursion and iteration and which one is far better whether using a stack which uses recursion or whether going for a iteration okay this is again a very good evaluation level question because they want to try to compare recursion and iteration in a specific situation and see which one is better in which situation okay any other center wants to share a topic thank you surat kal let us let us look at government engineering college trissure function functions is our topic the topic the knowledge level the question is function functions the topic is functions okay next level function and next comprehensive level describe the concept of a function okay with an example let us include function declaration the definition call all these things okay this is really a very good distinction between knowledge and comprehension because in knowledge you talked about definition of a function and in comprehension you talked about description of the conceptual level along with an example okay please go ahead concept of function yeah there's a application application level so write a program to calculate the factorial of a number using functions okay writing factorial of a number using functions is an application level question and analysis level so differentiate the different methods of passing arguments to a function and and uh synthesis level write a program to passing an array to a function for this application let let me comment upon a couple of these at the application level you are you wanted to write a program to find out the factorial now when you say that at the synthesis level when you say that you want to write a program to pass an element or an array to the to the function what we are doing again is using some rules in a new situation what we are not doing is creating something new so while your application level question really fits the category what I might suggest is that when you are trying to pass in a pass an element to a function you are again applying rules in a situation and when you're thinking of synthesis what you really want to be doing is creating either a new new rule or putting two things together where the hole is bigger than parts etc or maybe you're trying to create a new data structure that would be a good synthesis level question okay thanks let's look at VNIT Nagpur uh hello is it possible to use recursion without iteration the question is is it possible to use recursion without iterations so what we can do is if you want to comment on each other's question you can write these questions down and we will try to have some more sessions later or you can think you can type these in and send us or we can talk about this tomorrow so at this time I would request all of you to focus on the activity and instead of commenting on instead of trying to answer each other's questions we have 22 centers that we are trying to coordinate here let's take one more coap Pune question on comprehension is explain pointer to a function visit syntax and example the third question on application is write a program to sort numbers using pointer and the question on analysis is differentiate between pointer and array the question on synthesis advantages of pointers over array let me interrupt for a moment here there was a question about the advantages of pointers over arrays in fact that is a very good evaluation question okay please go ahead okay the last question on evaluation is what that application of pointer okay so uh your questions some of them might be categorized into different categories for example when you are thinking about the advantages and trying to compare one structure over the other what you're doing is uh judging two things or making decisions based on criteria so we would classify them more as evaluation than as synthesis please go ahead evaluate the effect of pointers with respect to security of data okay another evaluation question is evaluating the evaluating pointers regarding the security of data okay thank you what we'll do at this point is take a 10 minute tea break and then we'll continue the session