 So, we are going to cover this under Spokane Tutorials. So, let me give a brief overview of the work we do in this project for which we want people to work on. We have two projects, the first one I will talk about is Fawcie. How many of you are familiar with this project Fawcie? Anybody familiar with this? Fawcie stands for free and open source software for education. So, we have a big group at IIT Bombay and we are looking at some select software systems. Are you people familiar with MATLAB? Okay, now Sylab is an equivalent of that, but it is open source. The other thing is you see people recognize the symbol Python, Python is another group in which, another software in which we have good amount of activity. We have a software called OSCAD, Electronic Design Automation. Is anybody from electronics here, electrical, electronics, telecommunication, there are some of you. Thank you. This is for circuit design. We have a group that works on coin war, these are optimization, okay. And we have about five, six people in each of these groups, they are all full-time staff members, full-time employees. Some of them could also be doing simultaneously MTech for example. Some of them joined us as staff members in the project and after a while they rode gate, got admission to do MTech and they typically take about three years to finish the MTech and their work is supported by the project. By the way, this is applicable to all the projects, not only mine, but everyone that you will see, that you will work on. And it turns out, so while the regular MTech students take two years, the people who work on this may take three years, it turns out very interestingly the people who worked on three-year projects, three-year MTechs actually got better jobs than people who got two-year MTech because the industry considers them as people with practical experience. So that is something that you will see in IIT, all the projects, there is a lot of practical experience. And so FOSSI is one project, our people come up with instructional material to train the public. For example, you already know that there is something called Python, Python is already well developed, it is already available, so what are we doing? So our people do everything required to promote it, to create documentation, to conduct workshops, to create documentation, to conduct workshop, to answer student questions, to do mapping. For example, map the curriculum, you probably know that CBSE introduced Python in the place of C and C++, I do not know if you are familiar with that, be aware of it, as a matter of fact CBSE made it even mandatory, later on there were protests, so they made it optional. So who is going to give the training for these people, so our Python team is actually in a position to do that. So training and there are in some cases new software is developed, for example this Oskad that you see the one on the left hand side, the one for, this is the logo of Oskad, which is an electronic design automation tool and it is an open source alternative something very expensive, like Orcad, Cadence, you know various commercial tools that are available, can be replaced by this software, okay. We have another project called Spokane Tutorial, so this is a methodology that we have, conduct to provide IT training in a massive way to the students, as a matter of fact if you see, this is actually the list of students who are trained in various states for example, the first one is Tamil Nadu, we have trained so far about 92,000 students on various software, mainly FOS, it could be Python, it could be Latex, it could be PHP, it could be C, Java, it could be Oskad and so on. So next is Gujarat for example, Maharashtra in various states you can actually see the number of people who are getting trained, if you see here, so we have the India map and you say take some, let us take Maharashtra, so we have through 841 workshops we have trained 43,000 people and if you click this workshop, you actually see who are the people who are undergoing the workshop on what day and so on, right. So this Spokane Tutorial workshop is a self-learning methodology where students can be trained through 2 hour workshops and it is happening throughout the country. So this is some total of the projects that we are doing but then in a nutshell, okay. Let me just come to the under Spokane Tutorials in Oskad, we have people who have applied for, I thought we will give a brief description of each of these projects, then you can decide. The first one is we have, although we have called it as modeling and simulation framework to focus on something called Sandhi and open source alternative to LabView. Is anybody familiar with LabView here? LabView, so LabView is a very popular software that is used to interface real world objects to our computer system. So it could be to a pump, it could be a temperature measurement device, it could be, you know, for example, if you want to operate a lift, then you would want to, you need a method to connect your computer with the external object, so that, so we are talking about that. So we have Averal, I would want you to explain this Sandhi work, I'm a final year dual degree student here at IRI Bombay and I've been doing my dual degree project under Kanansa. We have developed something which we are going to show you briefly, first I'll show you a video to explain what LabView does and how it does, what it does, so pay attention to the thing right here. The thing that you can see here is a visual flow graph, a visual flow graph is something where you can just go ahead, connect blocks and pretty much prototype your algorithm or ideas. So but the software LabView is very, very expensive, it's proprietary, it's expensive. We are trying to develop and we have been trying to develop an open source clone for this, which would essentially mean that we could replace LabView in certain control engineering applications and various other applications. For the time being our focus is control engineering applications and we have been trying to and we have pretty much prototyped a few control engineering ideas using what we call Sandhi. I'll tell you more about Sandhi once we finish this video. So right here what you see is a flow graph. You have a vector source, you connect it with a block, this is called a generic block and you have two plot things because you could very well see what it does here. It takes input from the vector source, it gives it to the generic block, which does some computation on it and we go ahead and plot it using those plot blocks. This is, this might look very, very simple on the surface, but believe me, it was very, very difficult to code it and to take it to this level because of certain problems that were there with the framework that we are using. The thing that you see here is called GNU Radio. It's a software radio which is essentially a flow graph that people from electrical engineering background have been using for quite some time. So this flow graph essentially enables you to do graphical programming. You connect code block, you connect these blocks and what happens is code gets generated in the back end. The code gets generated in the back end and it is executed once you press this connect the flow graph and execute the flow graph button. As you see, the plot is plotting something. You would just go on and increase the scale and you would see it's a graph. You must be pretty familiar with this, this is tan, the trigonometric tan. So this is the generate block where the function name that I entered was tan and I could play around with certain parameters of this input block. The function name could be sign. The function name that you enter here is the one that you see in Sylab. So what we have been able to do till now is take this GNU Radio framework. We have integrated a computation engine with it, which is Sylab. We have implemented feedback. Feedback was a very, very difficult thing to integrate. We collaborated with a US-based developer. He took the GNU Radio framework and he gave us an application scheduler, which can handle feedback because feedback requires very unique data flow. So feedback was essentially not possible using GNU Radio framework. We collaborated with him and we have it working in our framework in Sandeep. So we have feedback, we have integrated computation engine. We have also interfaced hardware. There are a couple of flow graphs that you see here. This is the flow graph where we are integrating this hardware, we are interfacing this hardware to go ahead and control the temperature of this device. So what happens is, you set the temperature of this device, and which is what you do here in the constant source that you see. And what this flow graph tries to achieve is to bring the temperature of this device at the value that you mentioned there, in the constant source. So this is an example of hardware being interfaced with our framework. There is another thing that I, as I said, we have been able to implement feedback with the system. You can see here, it's a feedback loop. So we are capable of going ahead and doing, this is the result that it's throwing. So in short, we have been able to interface hardware, run simulations using this software called Sandeep. And we have been able to prototype our ideas. So what do we expect you to do? We expect you to come on board, see how this software works, understand how the code binds with the GUI that you see here, which is written entirely in Python, and we would give you all of those things. And we would also train you on how to start using these things and how to start playing around with Python and the XML binding with the Python. And go ahead and deploy these things. So we would be expecting you to go ahead and prototype your own ideas. As for example, there are a lot of blocks in XCOS, which can be done here. So we would ask you to take a look at those blocks, understand what it takes to develop and deploy these blocks. And go ahead and deploy these blocks in our framework. So that's pretty much it. That's pretty much it, and it's very, very simple now because we have developed all the tools that are required to go ahead and do your prototyping here. So essentially, we are looking at an open source clone for LabView and XCOS combined. Maybe after our internship, we would be very, very rich with many, many more blocks which are required for control engineering applications. We would tell you about it, we would train you about all these things, and we would see how you take it forward from here. And it's very simple and it's very, very easy now because we are giving you all the tools that are required to go ahead and prototype your ideas. Whatever you learned in control engineering, whatever you learned about these feedback loops, if you are not very familiar with those things, it would be very, very easy to learn these things while you're working on this project. So that's pretty much it, guys. So we would be very happy if you already know Python. That's pretty much everything that is required to go ahead and do this. But if you're even at a very scratchy level or you're not very familiar with Python or but you're familiar with other programming languages and you're good at it. We would urge you to come ahead and join this project. You'd get to learn Python and you'd get to learn and do amazing things with this framework, with this framework all Sunday. That's pretty much. Okay, thank you guys. Okay, so let me explain what the next project is. Editor to create Spokane tutorials, right? How many of you have created your own screencast videos? So let me give an example. I'm going to illustrate it using a software that I normally use. We can change the capture region. Okay, this is the region on the screen I record. Now, I have opened Sylab here. Okay, anyway, most of you are familiar with MATLAB. So Sylab is very similar. So what I will do is, let me see, let me start recording this. So welcome to this recording, welcome to this Spokane tutorial. Let me just create a matrix, let me calculate the determinant of this matrix. Let me calculate the eigenvalues of this matrix using this bad word spectrum. Let me create a 3D plot. I think that will be good enough. Thanks for joining. Goodbye and check. Thank you. Bye. Bye. Goodbye and check. So this is the second project that we had, has to do with the creation of these, that's what I call this editor to create Spokane tutorials. You see that when I create a Spokane tutorial, whatever that comes on the screen gets recorded, okay? In fact, that is the basis of our Spokane tutorials. That's how we create them. And that's how we train a large number of students in the country. Now I showed you the video, whatever I did on the screen got captured as one video, it is packaged. Supposing there is a mistake in that, I want to just go and edit that. So that will be difficult. What will be good is, can somebody think of a way to, supposing I show a slide, right? During my recording, during my recording, whatever comes on the screen is going to be recorded. I can show a screen, I can show a PDF file, I can show a web page, I can even play some other video. I can record the whole thing, right? But supposing there is a mistake in one of those, say I showed a slide and there was a typing mistake, spelling mistake, right? I want to go and change that only and without doing anything else, I want to produce that. How would I do that? I do a sequence of activity, show a sequence of things, record them all, bundle them as a video and give it to you. This one was a MOV file, it could be an MP4 file, it could be an OGB file and so on. Supposing I want to, I found a mistake in only one thing, I want to change that slide for example, replace that slide with something else, so how would I do that? You are saying replace that image with something else, okay? That is one solution, that is definitely one other solution. Any other solution? Okay. When I said editor, I meant something as whatever you said is, you can go, you can do it through an editor, you can for example, Windows Movie Maker can be used to do the editing, some of you might have already done that, GTK record my desktop can be used to create it, you can use Audacity to create your sound form, sound waves and attach them, you can do lots of things. But what I have here is something else, supposing I say that I maintain this file, supposing I maintain a project file, that project file says at this time I did this, at this time I did this, essentially that is what it should have, it should have that at this time in this window, in this part I have something. For example, I showed you here, now I could do actually lot of things, for example, this is a recording area, in this I could say, you know for example, I might say that, let me show the terminal here, okay, let me show something else over here, I might have 2-3 things, I can arrange lots of things within that rectangle. So my project file should say at every time, what are the things present at what location, so it is that slide, it is a PDF file that I am showing, that PDF file is in that place, it is called that name and it will be shown here, then at any time I should be and then my voice is in some other file, it says synchronized, it is all done automatically, then I say that, now press a button, from scratch it should produce the same thing and give me that video, so I can say that previously used that PDF file, now I want you to use this PDF file, should be able to replace. In other words, whatever I did should be in the form of a script and I press a button, it should go through the entire process, create that and give it to me, in which case I do not have to do the editing at all, I just replace the previous PDF file with a new PDF file with the mistakes corrected, it should automatically change that and produce that. Anyway that is what I had in mind, so this, I do not know how easy it is, I do not know, I have written it is a complexity but it is actually quite difficult but anyway that is the one. Let me go to the next project, there are many projects that I have been discussed, so let me talk about those. The next one was auto code generation from Sylab, actually this is something that apparently we have completed most of this work, so we do not, we are not going to describe this auto code generation of Sylab but then we have a few other projects that we will discuss. So, we have this next one is replacement of NG spice plot with python wave plot, it says Raki warrior and Shambhu Linga here, so there is Raki, you better. I will just give you an overview of the software called Auscat that we have developed at IIT Bombay and then I will briefly describe what are the projects that we are offering for the summer internship. So, Auscat is an acronym for open source computer rated design, it is an open source equivalent of Orcat, Auscat does the following, so you are able to create a schematic, so you see there that is called a schematic, so it is essentially circuit captured on the computer screen, then it can simulate the circuit, so I simulated the circuit and rectifier circuit, so this is a waveform, so this is called simulation. Okay, so this is brief about Auscat, Auscat can also do a variety of things, it can create models for devices such as MOSFETs, BJTs, you can do hierarchical modeling, you can do PCB design, so we are also coming up with VHDL verilog interface with Auscat, so currently we have the, now coming to the internship projects, we have the following projects available for Auscat, because you have seen the Auscat project window or you know what is called interface, so we want somebody to enhance the GUI of Auscat, so we call it a new GUI for Auscat, so enhance GUI for Auscat, so we are looking at people who are good at programming, Python, C, C++, Java, then we also want people who have basic understanding of electronics, electronic circuits, so that is the one project that we have. We have another project called piece-pies-to-keycat-netless conversion, I will tell you what this is. So this interface that you saw, I have already told you this is called a schematic editor, so we currently use the schematic editing capability of a software called Keycat, Keycat is another open source tool, so we use the schematic creation capability of Keycat, so Orcat the proprietary equivalent of Auscat has a similar schematic creation interface and they also have a similar simulation interface, so that is called piece-pies, I am not sure if you have heard of piece-pies, so piece-pies is a part of cadence, so currently in various engineering colleges, universities across India, people have already done lot of examples using piece-pies, so we want people to migrate from piece-pies to Keycat or to Auscat, so we want somebody to create a smooth migration or a smooth interface wherein you give the piece-pies project out comes the Auscat project, so we call it piece-pies-to-auscat conversion, files for any of these schematics is what is called a .sah file, it is basically a text file with some connection information, component information, so what we need is to write a code which will take this file, parse it, convert it into a form which can be understood by Auscat, so that is the piece-pies-to-auscat conversion work, so that involves you to write code scripts for parsing and converting from one format to the other, so that is one project. For the GUI that you talked about, what is required, what kind of IT experience, programming experience? Python, CC++ or Java. Okay, do they need to know electronics? Yeah, basic electronics. No, what if they don't know, there is a computer science person, she says I don't know electronics, can I contribute? Yeah. So, because see our people don't have experience in talking to you, you should not get confused, you don't think that obviously you are the right team, you will be able to do all the projects that we talk about, right, so don't get, you have to see whether the underlying IT work is something you can do, whether it is of interest to you, if so we will give all the other work, okay, all the other help we'll give. There is one more component to it that is creating a web version of the software, so what do you mean by web version is that you don't have to install the software on your computer, you can access it online, you can create projects online and also execute and simulate the projects online, so that is what we call web version of Oskar. So, it again involves basic coding, but we prefer you know basics of electronics for that. Okay, I have a question, when would we want to use a web version, what are the advantages, disadvantages in somebody tell, there is a software that can run in your local machine, I am also going to make it available on the cloud, on the web, okay, what are the advantages first, okay, you just need a browser, so that is an advantage, what else, any other advantage, yeah, in fact you can run it from maybe iPad, you can, any simple very light device is good enough, what are the disadvantages, it requires internet connection, it requires internet connection, but then it is possible to create something and leave it there, we may have both versions, if it is open source, why don't we create that also and leave it there and I don't think once again, you know Rocky keeps saying I need electronics background, not required, not required, okay, we have NCA people doing that, right, so we will do that, so anybody in computer science IT can actually contribute, even if I am pretty sure all of you have had one course in electronics, right, everybody, actually that is good enough. Plotting interface, so we would like to replace this plotting interface using the plotting facility from Python, fortunately does not require any electronics knowledge, so that is completely software, so we would obviously I mean want people to have Python background, Python coding background, so that is another project open to you, yeah, so that's it available for Oscar, thank you. Hello everyone, so first of all I will tell about the textbook companion project that we have in Python, so basically what it is that student takes any standard engineering textbook and course the solved examples of those textbooks in Python, okay, so we have a web interface for that, that's called TBC, I have in python.fossa.in, you can check it out, so the interface is currently under development, I mean students are using it already to upload their notebooks and the coding that is done is done in ipython notebook format, how many of you know about ipython, so ipython notebook basically is a browser-based interface where you can code in Python, do plotting and stuff like that, whatever you do in normal Python, you can do it on a browser, okay, it runs on your local host, I mean local machine, here is the activity I was talking about, so we have the interface ready, now what we want to do is we want to set up and what you can say is students should be able to run the ipython notebooks online, like if they want to edit some parameters of some program, okay, so suppose there's a plot and you want to just edit some parameters and see what results could be coming out, so you, so these notebooks should be able to open online and you can edit it online, okay, so that is what we are trying to do, so these are the books that we already have, so this is a notebook, okay, this is, this work is done by a contributor to the project, okay, so now what we want to do is edit, we want to open this in an editable mode, okay, let me just, I think you don't know what a textbook companion is, how many of you know about it, a textbook companion, okay, one of the projects that we started at IIT to support open source software was to create documents, most people like coding, right, but most students especially like coding, but they hate documentation and because of lack of documents, people are not able to use open source software, okay, the other problem actually is coding is, coding is a lot easier than documentation, documentation is a boring work and you have to do a lot of this test to be correct and grammatically correct, properly structured and so on which is actually boring, right, to do all that, right, people will say I would rather write a code, not document, okay, at the beginning of this project we said that let us create documentation for open source software, so that people know how to use open source software and then, so we need people to do them to create the open source, I mean this documentation and we have lots of students, but they hate documentation, so how do we solve this problem? We wanted to use students and address the documentation problem, so we said let's solve the inverse problem, what is the inverse problem? For existing documents create code, for existing documents create code using students, students like you, so we created, we came up with this idea called textbook companion, he talked about python textbook companion, we also have Sylab textbook companion, we have Oscar textbook companion and so on, so if you say that for this particular let's say book, textbook Matlab is useful, if Matlab is useful then Sylab is also equally useful, so you say that for every solved problem I will give Sylab code, okay, I will give an example, so we actually put this Sylab textbook companion on the cloud, right, so you want to choose subject, we have all these, for all these topics we have textbook companions available, in fact 300 textbook companions have been finished in Sylab, another 300 are going to be completed, basically the idea is any textbook you use Sylab code is available, similarly any textbook is available, you have python textbook companion is available, so I will demonstrate this, are you familiar with any of these topics, choose something else, because it turns out Sylab is not the greatest tool for computer programming, thermodynamics, fluid mechanics, wow, who said fluid mechanics, who said fluid mechanics, okay you will have to select the next one then, okay, which book, you want to change that, digital electronics, okay what book, third number, okay, what chapter, chapter number, something called, it's going to give some result, I mean you can modify it, okay, so no big deal, but let me take something, okay, I can, this is body plot, it's going to plot something, I can download, save it, I can modify it, here it is, and then it gives all this, I can actually edit this, for example I can change this to 5000, I can execute this, so instead of 2500 it will become 5000, and all the values will change, so we have done this for about 500 books, 600 actually will be very soon, similar thing is being done for python, this is what Hardik has been telling, so here is, now this is some sizing, pneumatic systems, 16.1, page 422 of some book, whatever that book is, and here is a code, and you can actually execute this, okay now you go ahead, yeah, so currently what we have is, you cannot edit this code online, just as you saw it for Sylab, so we want to develop something similar to that, okay, the student should be able to edit the code, edit parameters, and see the results, nevertheless if it, regardless if it has python on his machine, all you need is a browser, okay, that is what we are, we want to do, so basic requirements for this would be, you should be familiar with python, and there's a framework called Django, anybody knows about Django? So Django is a very powerful python framework, so basic requirements are python and Django, you have to have some coding knowledge with python and Django, and UIUX, if you know about UIUX, CSS, JavaScript, that would be a plus. Another activity is similar to this, you see the books here, these are all reviewed, okay, we need to check the standards and see everything, so for that, we need a reviewer for the books, okay, he needs to review the codes and see if it matches the standards that we have, we have some guidelines for a student to contribute to this project, so you should see if the book that he has coded should match the standard, should match the coding guidelines and everything, so that's the work of a reviewer, for this, you need to know only python and some scientific computing libraries like NumPy, SciPy, SimPy, that is what we need, thank you. So that's the sum total of our topics, thank you.