 What is Sylab? Sylab is an advanced computational environment. Sylab uses state of the art numerical computational engines such as lint pack, ice pack, law pack, ODE pack, DASIL and so on. It has a large number of built-in functions in C and FORTRAN. These are some of the examples. It has a built-in high level language. Sylab is to C is equal to C is to assembly. For example, if you need 100 lines in assembly and typically you would need about 10 lines in C. If you need 10 lines in C, in Sylab you can do it in one line. So, it is a high level language. It has several functions built-in using this high level language itself. So, it has in the back end things written in FORTRAN and C for high speed. For high programming efficiency, it also has high level language and it is available free. Check out sylab.org or sylab.in. What are the features? It is made up of three distinct parts. Interpreter, libraries of functions, Sylab procedures. These are using the interpreted language and FORTRAN and C routines. It has sophisticated data structures and Sylab can be downloaded from here from within IIT and it can also be downloaded from sylab.org. It is distributed in source code format also in the binary form for almost all machines. I will now explain briefly the usage of Sylab. So, as I start, the commands that I give here are in black. The answer is given by Sylab or in blue. So, that is a convention I have followed in these slides. I will actually do some of these things. So, 4 plus 6 plus 12. So, it says answer 22. Can you see this? Sorry, the letter is slightly small. I have written. So, until you gain confidence, I will do it in parallel. Afterwards, I will just rely on the slides. So, I have said a equals 4, b equals 6, c equals 12. So, it says a equals 4, c equals 12. What is happening? b is missing. Why is b missing? After b, I have put a semicolon. So, in Sylab, the convention is after semicolon, do not display it, which is important because you may be doing a loop doing lot of calculations. You do not want it to display the values, but if you want to display, just remove the semicolon, it will display it. So, this is a very useful feature. And of course, you can also say a plus b plus c. It will say answer is 22. A plus b plus c, answer is 22. What it says is that even though b is not displayed, it has stored. These are some of the useful commands. So, this we have already seen. So, if I say instead of, if I, what I have done here is, if you see here, I just said a plus b plus c, it puts the result in a variable, dummy variable called a and s, short form for answer and displays it and it overrides that. But I can also say d equals a plus b plus c. You will say d is 22. Then now, you have created a variable and put it there. So, which means that you have not typed any variable. It has happened automatically. Of course, if I put a semicolon, it will not display. Then I can always say, tell me what is d? For example, I can always say, what is d? You will say d is 22. So, it does not matter whether I used a semicolon or not in the previous step. This is the way to create formats. Do not have to worry about that. This is the, you can create pi by saying percent pi. You can create a list in many different ways. For example, you can say a equals 1 through 5. It will say, it will create a vector by name a, create the storage and put them there. I can also say a equals 1 intervals of 2 up to 9. So, I will say 1, 3, 5, 7, 9 and so on. Of course, it is also possible to do scalar vector arithmetic. For example, I can say a equals, I can also recall the previous command by using up arrow down arrow. So, let me use the up arrow. So, let me multiply this, multiply this by, it has done 1 times pi, 3 times pi and so on all the way up to 9 times pi. So, by the way, this underlying language was created by a mathematics professor, computer science person into numerical mathematics. He was part of the Lin-Pak, Ice-Pak projects. His name is Professor Cleve-Mowler. He was at New Mexico State University. With government money, he created this environment called MATLAB. The same environment and it was released as open source because the government money was used, NSF money was used. And so, as a computer science professor or as a mathematics professor, when he was teaching, he found that there was a big difference between the way a mathematics professor taught lectures in the class and the way did the programming. For example, you write A into X as a mathematics person. I want to multiply a matrix and a vector. I just type AX. Whereas, when I write it in computer, I have to define a structure called A, structure called B. I have to type it. I have to give storage. Then I have to multiply, keep track of all that. So, he said why should I do all of that? Can I create an environment that will do all of this? That is how this came up. So, that is why you see that many of these operations are overloaded because this percent in this case says vector scalar multiplication. Same star means if I just do 4 times 3, it will give me 12. So, you can see that several operations are overloaded on this. So, the logic is that it was created by a person in computer science who was teaching mathematics. He wanted to come up with a language to help people who do mathematics. That is the reason why this has come about. You can also, of course, you can of course, explicitly say all of this. You can say B equals 3, 5, 6, 9 and so on. You can explicitly create that. You can of course, do that using a list. So, for example, you can even do sin X. So, let us do that X equals 0 to 0.1 to 1 multiplied by percent pi. I will put a semicolon so that it does not display. Otherwise, it will go on, it will complain or it will ask, do you want to display everything? X, Y equals sin X. So, I am taking the sin of a vector. Put a semicolon again. I can even say plot 2D of, of course, this is little, it has rough edges, but if I make this, so I am going from 0 to 0 and increments of 0.1. So, let me just do this in 0 to, in increments of 0, 1, all the way up to 1 and then let us repeat this. Y, let me close this. Let me plot it again. You can see now it is absolutely smooth. And of course, you can access, you have a vector and you can access it by any component by specifying that number. And unlike C, the index starts from 1. So, for example, this is Y 1, Y 2, Y 3, Y 4, Y 5. So, if I ask for Y 5, it will show this. That is one difference you have to keep in mind. This is actually a very nice thing. Maybe I should not be showing this. Let us say A equals 1 through 5, B equals 1, 2, 2, 9 and then let me come here. Now D equals B of 1 is to 3 is to 5, 1, 0, 1. If I give this command, what will happen? B of not 1, 3, 5. Let me put B of 1, 2, 5. So, what will be the number? If I say that D will have, first number is what? What is the second number? 1, 1, 1. Any other answer? 1, 3, 5. 1, 5, 9. Yeah, Y 1, 5, 9. Yeah, so let us do this. If you look at this, yeah, that answer is correct. Because if you do this, look at this B of 1 is to 2 is to 5 means, it will give you 1, 5, 9. Because 1 is to 2 is to 5 is 1, 3, 5. So, what we are saying is apply this to B. So, take out the first component of B, put it here. Take out the third component of B, put it here. Take out the fifth component of this and put it here 1, 5, 9. That is why if I say B of D equals B of 1 is to 2 is to 5, 1, 0, 1. It will give me 1, 5, 9, 1, 0, 1. So, you can see that is why I said that if you require 10 lines in C, you can do it in one line to express the same idea. You do not have taken lot more time. You would have written loops and so on. Maybe you would have taken more than 10 lines. Just to give an idea of, so that is what I have done here. Then, of course, as I mentioned here, this is a vector scalar arithmetic. I have created this vector called A. A minus 2 means subtract from every element 2. Here, I am saying multiply every element by 2 and then subtract B corresponding entries. So, one can do all of this. So, it has lot of logical operators which are useful for you to write languages, programs. It also has if then else for while and so on. So, if I run this, so here is an example of a for loop. It just adds all of that and then gives the final weight as my weight. So, if I say what is my weight, it will say because it has added it 10 times. So, example of while. So, while something then do this action and then end. So, this is an example. You can construct your own examples. Do not have to spend time on that. This is, I want to spend some more time on vector operations. So, let me just say A equals 1 through 9, B equals 9 minus A. So, then I ask this question, is A equal equal means? We are comparing. Is A equal to B? What will happen? Is it equal ever? Anywhere? So, it says false. Now, of course, I can say A greater than B. So, I can see that of course, A is this. A greater than B, you can see that from fifth element onwards it is true before whether it is false. So, you can actually make comparison of vectors which is very nice. In fact, you can always, you can also say here is my matrix. Tell me all the locations where the element is 0 in one go. You do not have to, otherwise you will have to go element by element, do a comparison and it will report. Here in one go you can go. So, what is the big deal? I have one slide to explain that. You can do transpose, extract sub matrix. You can order them in many different ways. You can do comparison, create a matrix of 0s, 1s, random numbers. Of course, you can define functions. So, create a function, write that and you say end function. These are arguments and then you invoke this argument, invokes this function by calling this function called each suite initial weight and delta and this fellow actually adds this and returns it as my weight. It is 62. So, you can write it, you can write actually complicated programs using functions and so on. I think we are almost at the end of the Sylab discussion. Let us go for vector computation. I will just explain what it is by actually doing it first, so that you will believe this. So, let us create this matrix. The command is, I think it is called timer. So, timer command initializes the timer and then keeps track of the time it takes since the previous command. So, let us do that. So, what I want to do is for, so let me just say a equals 1s of 10000 by 1. So, what does this generate? If I just hit a carriage written what will happen? So, we are creating a, let me just do that. It is a 10000 by 1 vector that consists of functions. I created that matrix. Then now what I will do is for i equals 1, 10000 B of i equals A of i plus A of i. Let me just add that. Put a semicolon and actually I made a mistake. I should say A equals not 1000, 10000, 1000, 10000. I put a, sorry Sylab is case sensitive. Here it is capital A, here I put small a. So, I have to be careful. So, let us put that. Capital A, capital A, let me call it B. So, what we will do is we will do this now. Timer, let us do this calculation. Timer, actually it is not clear. So, let me do it slightly bigger. What I will do is I will make it 100,000. I will make it 100,000 here also. I wanted to take a little bit of time. Is that ok? 100,000 is slightly on the higher side. Looks like it is still computing. It is done. Let us look at the timer. Now, what I will do is C of i, C equals A plus A. That is what I am doing. What is the number? 0.12. I can also see equal, equal B, right. Oops. It says false. Size C, size B. That is why it is false. So, we can say because B transpose says true. So, dimension was different. That is why it was complaining, but the calculation was the same. If I compare it says it is the same. But you can see that when I use the vector operation, it worked immediately. Whereas, and if you do, if you put a loop or something, it has to do each calculation separately. And because it is an interpreted language, it takes a lot of time. So, you are encouraged to use vector level type of thing. It is a very useful thing. I think I am ending Sylab thing here. Here, of course, I had done 10000. It gave me 0.31 and 0.03. When we made it bigger, it is even the difference was even greater. And one way to start with Sylab is to use the demos. For example, you can introduction to Sylab. There is something called graphics. 2D, 3D plots. Let me show you one example. For example, this is the way to create a 2D plot. Only these two three lines help create a sign function. We can create 3D. Let me close this. It is a 3D plot. Just one line. And then we can do subplot. It has plotted 4 different plots, subplots on the same screen. So, actually it has a very nice capability. And it is sufficient for most applications. In fact, our computer center sometime back made a policy decision that we would not buy MATLAB officially for the institute. Individual projects or individual departments have bought it later on. But it was proving to be very expensive. So, our computer center discontinued the purchase of MATLAB. And some of us said that Sylab is actually very good. We could just use that. And it is free. So, this is about Sylab. The problem with open source software is the documentation. People do not know how to use them. So, we are addressing this through one of our mission supported projects, which I will explain. By the way, if you have any questions, you can stop me anytime and ask questions. Otherwise, it could get boring. I have a question. Yeah. Like in MATLAB, we have many toolboxes. So, Sylab supports many toolboxes or what we should do for it. Yeah. So, Sylab does not have as many toolboxes as MATLAB. MATLAB is supported by a workforce of about 2,000 people. Sylab is an open source thing. It has about 23 full time employees. The only thing is it is an open source. It is always like Linux versus Windows. Windows is supported by Microsoft with its workforce, whereas Linux, nobody is supporting it. But then there are also lots of programmers around the world. So, if we start using it, we start developing toolboxes. So, the answer to your question is Sylab does not have as many toolboxes as MATLAB. But we should start doing this. You can think of it also as a service to the community and to our industry. It has a long ways to go. It turns out that for about 95 percent of the time, Sylab is good enough. If you look at for what purpose people use MATLAB, you would see that it is basic calculation, solving differential equations, plots, basic things. Supposing some company says that my production is dependent on MATLAB, if I do not use it, there will be a problem, then it makes sense for them to buy it because one day's loss could be in lakhs. But for people who do not need that, it is better to go for Sylab and obviously for people who for whose research MATLAB is indispensable, obviously you need MATLAB. But what may happen that in open source industry, like it happened with MySQL server, many programmers they have contributed to MySQL server, but after a period of maybe eight or nine years, MySQL got sold to Sun Microsystems for five billion dollars. Like we are contributing as a service to the community, but maybe after five, seven or ten years, when the Sylab toolbox will be good enough, so may at that time the Sylab will be sold out to some company like it is a MySQL server. Yeah, it is a good question. What if at some point it becomes commercial? So it depends on the copyright clause. That is a reason why this first people demand that it be delivered as open source. So Sylab is not only free, it is also open source. The moment you make it open source, you cannot go back. So that is not going to happen with Sylab. Supposing it is not open source, you contribute at some point they say I want to make it commercial. That can happen. It depends on how it is released. Sylab version five onwards has become false before that it was not. Good question. Any other question? You can ask later also. So spoken tutorial is one solution to address the documentation issues. So we are working on that. I will explain what this is. Spoken tutorial refers to explaining a computer based activity along with a live demonstration of it in parallel along with a running commentary. That means you can capture the screen. It will also capture your voice. And the running commentary can be in any language. This technology is known as screen cast. How many people know about screen cast? Anyone knows. To create such a tutorial, one needs normal PC and a headphone with audio input which will cost only about 100 rupees. The recording can be played back on a PC as a movie. Only a 10 rupee headphone is required to listen to it. I will now explain how this can be a mass movement. This can be a mass movement creating documentation for open source software. In this, I have recorded a college student. She was working with me. She studied in a college in Gujarat. Just listen to this. How can it be downloaded from the beginning? What are the system requirements? This talk gives a brief introduction to Scilab. At the end of this session, you will be able to learn the following. What is Scilab? Who has developed Scilab? And then of course, she talks about two-select active graphic window. So, what happens in the screen gets captured. This is made by a student from an engineering college in Gujarat. That means any normal person can create that. You do not have to be extraordinary to create this. This explains in English how to create a spoken tutorial. How to create one? Let us start. So, I am not sure whether you can hear this. So, we created this, normally it comes ok, if you are interested I can show it to you. Then we also created how to do that, how to dub this into other languages. In fact, we thought that we would also use this opportunity to convert this, so that people in other languages can also create. I am not sure whether this is going to come out, may be the same problem. This tutorial will explain how to dub a spoken tutorial or a movie clip from one language into another through a step by step process. All you need is a headset with an audio input or a stand alone microphone and speakers which can be attached to your computer. Windows Movie Maker, a component of Microsoft Windows is an editing software that is. Alright, so this explains how to do the dubbing. She has used Windows Movie Maker. So, we ran a competition to dub the first one into other languages. And mainly people from IIT Bombay participated in it, students, children of support staff, housewives and so on. And we created this in many languages. I will play some languages. So, in fact, I will play, if we have people in that, Assamese, we have anybody? Bengali, anyone? Ok, I want to play this. Let's try to move this. It's not sliding. It's got a Hindi. Let's try to move this. It's not sliding. It's got a Hindi. Ok, then Gujarati, somebody is here. Let's play that. Anyone from Kannada? Ok, this one is the most outstanding one. The one on Marathi. Let me play this. It turned out that she is also a dubbing artist. Ok, I will play this. Ok, I missed out on anything. There are some more, but I think this is, what I want to do is, I want to show you some of the things that we have made in latex. That's why I had to ask whether how many people used latex. So, here is a spoken tutorial on latex that I created. This one explains how to write letters using latex. The letters may be small to see on the screen, you know, for you at a distance, but if you see it on the PC, it comes out ok. Welcome to this tutorial on how to write letters using latex. You can see three windows. These correspond to the three distinct faces in typesetting through latex. Creation of source file, compilation to produce the PDF file and viewing it through a PDF reader. I am using the free PDF reader scheme in Mac OSX because it automatically loads the latest PDF file after every compilation. There are PDF browsers in Linux and also in Windows that have this capability. Slash today. We can prevent the automatic appearance of the date with an empty list as we do now. Compile. The data is gone. Suppose that we want to put our own date. Let us enter it with date first as follows. 2007 save compile got the date. This is the date on which this tutorial was created the first time. So, it is possible to generate lots of these. I have created in fact about 10 such tutorials that explain latex. One can actually go through this and figure out. So, this is done as a service to the open source effort that latex is a very good open source software for typesetting. So, similar things can be done for Sylab, similar things can be done for GCC, whatever open source thing that you have. And what is more interesting is it can be done in any language. So, I have some slides on that. If you have any questions, you can ask me. So, these spoken tutorials are technical term is screen cost. It is about 1 MB per minute. In one CD, you can pack more than 10 hours. In fact, the letter writing that you saw for I think it was about 12 minutes. One can actually see the size of that. So, it is actually 8 minute 19 second as it tells you in the bottom. And then if I look at the size of this, it is 7 MB. So, actually less than 1 MB per minute, which means that in one CD that has 660 MB, you can put more than 60 minutes of this spoken tutorial. In fact, you can put quite a bit more than 10 hours and it is only 10 rupees. So, it is actually lot cheaper than paper itself. And it also gives us very small bandwidth for streaming. For example, you can even stream through mobile phones and so on. And it is inexpensive to create. The infrastructure required to create is very small. As I mentioned earlier, running commentary can be dubbed into any other languages. The original content can be in not say here I talked about English to other languages, but it need not be. It can be in any language and people can dub it into other languages including English. So, which means that because of this inexpensive nature of this, almost anybody can create this. The beauty of this as far as open source software is concerned is the students can try this in parallel. For example, I can open latex, try it, listen to it, pass it, go and try it. If it does not work, go back and listen to it again. So, this is as if somebody is telling you and it has a complete capture of the whole session. So, the idea is, if you do this because it covers to, it can cover to all languages and so on, the public who is left out now will can also start contributing. So, this is where I would complete this discussion on spoken tutorials. You have any questions on this? Is it ok? Any ideas how we should take this forward? So, I am thinking of doing this 10 spoken tutorials on latex, 15 languages or 20 languages. See if you can fill that matrix and then just release it as open source. So, can we even people who are from schools and so on, it turns out that English reaches only about 10 percent of the public. About 90 percent of the public is left out because they are not touched by this software revolution. So, they can also start contributing, not only using it, but they should also create original work and then we can translate it, use it in other languages. Next, I will go to experiments. Remember I told you, so I have talked about talk to a teacher mission. Then I talked about open source software. Now, I will talk about hardware experiments. The robotics project has a microcontroller at mega 16 based. How many people have heard of this? This microcontroller, it is a popular one. So, it comes with the line sensor, speed sensor, different sensors. We can teach many courses using it. I will see if we can get the people who are running this to come and show that robot with you. You can share it with you. Documentation course material, etc. And it costs rupees 15,000, but it can be made available to interested colleges free of cost, funding from the mission. The key thing is that this money is also for training support and so on. So, these things are made available free of cost through this mission to all interested colleges. And we welcome your colleges to participate in this effort. This is led by Professor Kavi Arya of the Computer Science Department at IIT Bombay. We also have a project called virtual labs. The distance education through satellite, etc. do not cover laboratory. So, can we make available labs to people? So, the idea is to establish the labs at select locations. They enable these experiments, give internet access. And IIT Bombay is in the process of establishing about 10 experiments. These are some of the areas. In this, the student satellite project is something that you may be interested in. It is being done by our students, students who are in the aerospace engineering. And they are coordinating and students from various other departments are participating. Faculty members are actually not involved. Faculty members give only guidance. The work is done by students. And they are going around to different colleges trying to identify students who may be interested in participating. For example, it is possible for your college students to establish a ground station for this satellite. This is going to be, we have signed an MOU with ISRO recently. Within one year, this satellite is going to be launched. It is in advanced stages of design. It is going to be launched. Then you will have the students who are part of this can receive the data at ground stations. It turns out that the ground station is not very expensive to create. It costs only 25,000 rupees to create. And these students say that they learnt a lot by doing this satellite design as compared to actually doing some courses. Because here you actually learn all the practical difficulties and so on. So I would welcome all of you to go back and tell your students, in case you have a hobby club, you have robotics club or things like that, that they can participate in this. While talking about the hardware, I want to talk about this package, one of the projects that we have proposed through this virtual labs. There is a suite of device drivers in Linux called Comedy. Now it has interface for more than 100 A2D cards. So almost all popular A2D cards, it has a device driver, which means you can drive them through Linux. So we are thinking of setting up a rack full of these cards. Buy all these cards, assemble them, give power supply from behind, standard power supply and web enable these on the front end. So give the standard inputs. Now GUI support is available through RTAI lab of Sylab. So now it is web enabled. So the students from different colleges, not only students even working professionals, can actually access each of these cards. Try them out. If they are happy, download the device drivers, download the educational material and they start using. Repeat this also for popular microcontrollers. I was recently in a college called Kamban College in Thiruvannamalai, where 40 student projects using Linux, they were using Ubuntu and Arduino board were displayed. 40 student projects, each student project had about 5 people. There was a total of about 200 people, 200 students. In fact, there was a hall. I asked, how many of you know Linux? All of them raised their hand. They said, we all are doing that project. 400 into 5, 200 people are sitting, those students. And they displayed all those projects. I was very happy to see that. For example, some students had interfaced Linux with their mobile phone. You press the phone, you press one of the buttons, then it is equivalent to right click. You press another button, it starts scrolling. So in other words, they had used this mobile phone as a remote for the Linux program. Another student project was, they actually spoke using the mobile phone. And this fellow computer worked as a recording station. It would record and you can play it back. And there was a student project that used Arduino board, Arduino board and Ubuntu operating system. So in that, they had used, for example, they said, they opened and closed a door. The door is presumably for a safe, so it would open and close. There was another experiment in which they actually mixed two liquids. They got this low-cost pump that is used in fish tanks. It was only 150 rupees. They assembled it and it actually pumped. One was for ink, the other one was water. Then they had a LDR resistor that works on the light intensity. So it gave a feedback and said that, send more of this ink as opposed to water and so on. It was really interesting. So it is possible to repeat this exercise for microcontrollers also. The idea is that, can we pull in people who have the expertise in different parts of the country, come up with something very nice, set it up and let people use it. And it turns out that for this particular set of experiments, the Arduino board, for example, costs only 200 rupees. The students, in fact, found that they were buying it for 1000 rupees. Later on found that it was too expensive because they were teaching this how to do open source software for school students. Their management sends buses to all government schools, bring the students to their school, give free lunch. Initially they were asking these children to pay some money. Then they found that these children could not pay even that money. So this management said, okay, let's do it free of cost. So as a result, the expense was getting too large. They said 1000 rupees for an Arduino board is too expensive. But the people who were selling that Arduino board said that they would explain to these students how to assemble it themselves. So they gave them what to do there and now the students in this college are assembling it themselves. It comes to only 200 rupees. So what it means is that if only we tell our children how to do this, then the children can start making them costs 200 rupees. You can actually give a complete kit for 1000 rupees and let them experiment. All the instructional material playing around with that and so on can be done in a central place. So these are some of the ideas. Of course I have some people. I am interested in this. I have four people working on this right now. I think I am almost at the end of this effort. So open source efforts are not only idealistic. If you look at this mission itself, it's all open source. That's one of the requirements. Whatever is funded through this mission has to be released as open source. In fact when we gave talks, I gave a keynote address in the first SILAB user conference that was held on July 1st in France. I gave this talk and there were people from France, a lot of people, and they said they were very happy to know that the Indian government is doing this. In fact they were saying that they wished that their government would also do this. So it's a very ambitious plan, this mission. So the reason why I am telling you is I would want every one of you to go back to your colleges and send a proposal. And in the newsletter that we will give, there is information on how to submit a proposal and so on. I will give that newsletter to you if it has not already been given. So as I mentioned earlier, it is not only idealistic. They make a lot of economic and commercial sense as well. So this mission has a potential to empower all Indian children to collaborate and make us a developed nation. And IIT Bombay is working on several of these projects. I keep calling it open source projects. I am talking about this mission, but everything funded through this mission is open source project. So it provides sufficient funds for these activities. As I mentioned earlier, one of the key points for funding is it is not possible for one institute to cover corner all the money. In fact I was talking to you about Mr. Sinha. I said that great administrator. Let me tell you that it is very interesting. In one of the meetings, there was a suggestion because Mr. Sinha is talking about giving good bandwidth for every college. So there was this question from somebody. If you do this, you will be wasting a lot of money because many colleges do not have good students. They cannot use it. You will be wasting money. So why not try it out on a few colleges? Do it very well and then replicate it. So to that Mr. Sinha said that for me to perfect it, it will take many years. It could take 20 years. By that time, several generations will pass from other colleges without having this access. I want to give that access today. So the good people have them today. They also start benefiting from day one. So that is why I said that it is an incredible effort. It is being led by somebody who is outstanding bureaucrat that is very large at heart. The objective is to reach out to as many children as possible, as many colleges as possible so that the education levels come up. So with that, I conclude my talk. So thanks for your patience and I will be glad to answer any questions you have either now or even afterwards. Thank you.