 Okay, before we get started on today's topics, there are a couple of things, announcements and maybe there is also time for a little bit of discussion on how we will be conducting the labs in the main course, which obviously is very important. So a few people had been asking me about using Windows for running the lab in the main course. Now this is possible. All the tools that we use run on both Windows and Linux. So if some of you have a lab already set up with Windows and you don't have the resources or the time to go set up Linux, it is possible to do all of these in Windows. In particular PostgresQL has Windows 4 along with PgAdmin. So if you go to their download site you will find it. It's a single package which downloads everything and installs. And when you download that you can also run the PostgresQL command shell by not by running cmd but directly from the start menu there is a link to PostgresQL and in there there is a link to the PostgresQL command shell also, psql. So you can run psql directly from the start menu. So that's for PostgresQL. The remaining tools which we will be using Eclipse and Tomcat are both available also on Windows. We may, how many of you are in a situation where it will be difficult for you to run your workshop on Linux and you will need to run it on Windows quite a few. So we will provide instructions although we would encourage you if possible to run it on Linux but it's more important to run the workshop then switch over to Linux at the last moment. But in general I would encourage you in future to consider telling your colleges to switch to Linux because it's a lot more stable and easier to manage a large set up of Linux machines. Those of you who are in NSL would know that we have about 75 machines there and a few sys admins basically replace the entire OS with a new version and with all the software that is needed for the lab between I think 8 p.m. and 1 p.m., 1 a.m. In about 5 hours time overnight, 75 machines, I think about 4 or 5 sys admins. So it's really easy to administer if you know how. So some of you were also asking me about how to administer these systems. One of actually wanted to talk to this segment. So what we will also do is maybe in the same page put up details about how our or maybe in a separate page, details about our Linux setup here, how we manage the systems. We ourselves were not doing a good job of it earlier. About a year or so back we switched to a new way of managing our machines. Here we had a bunch of scripts which would be started from a central machine and would SSH to each machine and do package installs. So very unreliable if a machine was down at that time, it wouldn't have the package others would. And then someone logs in and say, hey it's not there, then the 7th have to deal with it. We switched over to something called Puppet which flips the model around. So the set of things to be installed is stored in a central location. And there's a demon running on the machines which pulls the install instructions from the main machine and does the install whenever the machine is up. So if the machine is down, it doesn't matter. When it comes up, it will fetch the latest thing and install everything and be up to date. I tried to install Postgres on my system but I had error like . slash configure it did not work out. It was giving, it was not making the file like when I give make command. So it was giving read line error over there. You were doing this on Windows or? No on Linux. On Linux you had downloaded the source of Postgresql and then you did the . Instruction set that was given. Yeah. So that is optional. So you, as far as this course is concerned, we are not doing any internals on Postgresql. So you can always install the binary, it won't make a difference. But the reason we put that up is because, you know, we believe that many of you will be running other courses or maybe even for this course, some student projects where people can go and play around inside of Postgresql. So that part is how to do the source install. Now the specific errors, I'm not sure. It's pretty good actually. I mean, we have done this on many different machines. Our students have done it on. Because I tried to get that query result from the lab also but nobody could help me out for that. So we will look into it offline. But it's a rare event and I don't want people to think that it happens routinely. We have run courses with 70 students in maybe pairs doing projects. So about 35 different laptops each semester doing Postgresql install, nobody has complained. So different versions of OS, different hardware, it's pretty robust overall. So Linux version matters, like Ubuntu version or something? It shouldn't matter. It should not. So OS install scripts are very robust. The configure basically takes care of a lot of OS dependencies. So any other questions regarding lab setup? Sir, if possible, just provide some instruction regarding the setup of Linux repository cache so that we can build a cache in our own institute and we'll get the software directly from the local cache itself. Right. I'll try to get that. We have a sysad. So I'll ask them to put up a page on the same model thing with Linux setup instructions, including some tips on how to use the puppet things, managers, so that all the machines in the lab can have a same configuration. That is already there. The Hadoop, the topic on Hadoop has complete instructions for downloading Hadoop from source, I mean from the binary rather, installing and running it. So for all our labs, we have given complete instructions. The only assumption is that Unix is already installed. So that I'll provide additional instructions. And we provided limited instructions for Windows. We will provide a little bit more to help people who need to use Windows. Those are the only two things we'll do. Any other questions? When I installed the Postgres, I also got the same problem, ReadLine error. But some TI helped me to download the ReadLine and one second they have installed it. Now it is working correctly. You may need to install the ReadLine library. Which library was it part of? So one of the sources for dealing with these issues is the news. So we are using Moodle. Yesterday I sent out a mail saying try out Piazza. So some of you tried it out immediately and realized that you couldn't register. So I got in touch with the Piazza people and they have been super fast in responding. And they said that now the same link is enabled with any email address. So please go ahead and try to register yourself. We are going to use the same Piazza for the main workshop. So whatever discussions we have here will be available to people using the main workshop also. So if you post a doubt about this ReadLine error, somebody else who has solved it can reply to that. And then anybody else who sees that error knows how to deal with it. So that's one of the nice things about Piazza. If you try it out you see that in Moodle there is a way to post something on the forum. News forum somebody replies it's a separate reply. Keeping track of the link replies is a bit of a pain. So in Piazza what happens is when you post the question there is a page for that question. And when people answer it is in that page. Moreover people can not only answer they can go and edit other people's answers. So if somebody gives the wrong answer somebody else can go and edit it and say you know this is not right. I mean they can just correct it. So wrong answers don't persist. More important if you think something was very useful you can go and give it a thumbs up. So that will show up with higher priority for somebody who is visiting that site. If you find that reply was good you can say yes that resolved my issue. So somebody who comes there knows that it was resolved. It was not an answer which might have been incomplete but it actually settled the question. So it's a nice resource. Incidentally it was founded by a lady from Mumbai not from IIT but from Mumbai. She studied in one of the engineering colleges here went to the US and while doing her MBA she found that she didn't have the right circle of friends to discuss things in class. So she decided to start a company Piazza which is focused on anyone being able to ask questions and other students and the instructor being able to answer the question. So it's like you are in a class and you can discuss with your friends about the class but the friend need not be next door to you. They could be anywhere else in the country of the world. So it's a nice tool. Do try it out. Now of course everyone can post. If all 6000 participants of the main course start posting you will be flooded with a lot of email. So the only request is to you and to others do post. By all means this is a good mechanism for resolving issues. But before you post read what others have written to see if it has already been addressed. Otherwise there will be duplicate posts and so forth. And it's really good for asking questions. If you have a doubt at least don't be ashamed of asking. Just go ahead and ask. Maybe a silly question but it's okay. If you have that question in a room of 250 I am willing to bet another 40 people have that same question. But nobody went ahead and asked it. And then if it is answered many more benefit from it. Now in a course with 6000 people asking questions it's not possible for one instructor to answer that many questions. So it is equally important that all of you participate in answering questions. Whenever you see a question for which you think you know the answer go ahead and answer it. If your answer is wrong it's okay somebody else will come along and say no that's not right and this is the right answer. That's okay. So if you are reasonably confident to answer go ahead and answer don't hesitate. So during this course as well as in the main course please answer other people's questions. If you read the question if you have an answer go ahead and answer it. And it appears immediately on that web page it's not a separate mail which comes back and so forth. So when we are trying to install those packages in offline mode we are phrasing a lot of problems. If it is online mode automatically you won't itself finding the packages related packages. But if you are providing the proper details how to install all those packages in offline mode it will be very useful to us. So the issue which is being raised is that these packages have a lot of dependencies. So if you are doing a direct install on a Linux system they will go ahead and fetch the remaining dependencies from the repository. But if you are doing it offline if you miss one package you are stuck you cannot install. So that's actually a slightly hard problem to solve because we don't know what all packages are available. So my suggestion is go online. I think today most people have a reasonable internet connection. So let's take a quick poll in the remote centers. How many remote centers are able to get at least let's say 10 kilobytes per second download speed? Pretty much all of you. That's not bad. Our packages are typically not more than 100 megabytes. And if the main package is 100 the dependencies are usually much smaller. So if you are online if you install a package which is provided you can easily it will download the remaining ones. So my suggestion is go with that rather than try to work around and do complex stuff for offline install do it online. So let's come back to our regular topics. Yesterday we did ER modeling. One of the things we didn't do is go over the topic on ER modeling there's a tutorial which is what we will be using in the main workshop. We didn't do it in class. We didn't really have time. I thought it's more interesting to do something new. For this tutorial there are solutions already available. So this tutorial is a railway system and you have to model various aspects in there. This is just the ER modeling. And the second part is an ER diagram for center coordinators, faculty who will be attending and so on and so forth. So in fact we have got the relational schema for this already. At least for part of this maybe not all the things in there. And this part is the ER modeling for that relational schema. And similarly for the railway system we have a relational schema. We are working backwards. So I may add one more exercise here or replace one of them with something for which participants have not seen the relational schema. If they have already seen the schema doing the exercise maybe in some point. So I may modify that. But we will provide the solutions. So before the workshop please go over the solution. And if there are doubts about it use Piazza to ask the doubts and get it clarified. But do remember whatever you ask on Piazza will be available to all the participants later on. So don't give away answers which will make the whole exercise pointless. But ask other doubts. If you have things which will give away answers use Moodle because they won't have access to this Moodle. Can you put some focus on aggregation? Can you talk about aggregation? So in the limited time I didn't have time but in the book slides there is a good example of aggregation. Since you have asked the question I will answer it using an example which you can also read up afterwards. It's not on the Moodle side. In the Moodle side I abbreviated the slides so that it will fit in the constraints of this workshop. I felt that aggregation is not as critical as the other topics in the time limits but if you want. All the book slides there. And in addition to the book slides we have appendices which are some of the chapters which are not available in the print book. But if you want to cover advanced database design, multi-value dependencies. There are other relational query languages, QBE, more on data log. And some older stuff which nobody uses these days. All the slides are there I will come to that. Then this teaching material includes an instructor manual is not actually here. But we can make it available to instructors. We didn't put it up because we didn't want everyone to have access to it. And here solutions to practice exercises. The first half of the exercises are called practice exercises. We have solutions to all of them. Many of you may who are using the book would already know about it but if you don't. And then we have Erata. Unfortunately more than we would like. In this edition we did a massive revamp. We changed everything. So as a result a lot of errors crept in. So do go over the Erata. So there are definitely some significant mistakes in the book. We wrote one thing when we meant another. And finally, oh yeah, there's also a laboratory material. I wanted to show this also. So we have over here tips on various database in particular Oracle and PostgreSQL. So if you try to run some of the SQL queries in the book on these databases, they may complain and give a syntax error. And the problem is that their syntax support is a little non-standard. So tips on how to write SQL for Oracle and in some cases for PostgreSQL. And then we have sample tables. You have been using the, these two are provided already on Moodle. The small relations and large relations. And then there are a number of lab exercises. So some of these are problems which are in your assignment. Some are other assignments. So a number of lab exercises are here. Which are similar more or less to what we are doing in the various exercises. But they are there. And finally, sample term projects. So these are actually solved term projects which are from Lehigh. Hank got this teacher side Lehigh. So he's given a project and what are the things which he expects from the project. So you can't read all this right now. But there's a very detailed description of what is required in the project. So you can use these things. Which brings me up back to the topic of the project. All of you were told that you have to do a project, decide on a project. How many of you have thought about it and come up with a project idea? Small project. You don't have much time. Something really small which you can actually implement and get working in the next week or so. How many of you have come up with an idea? One, two, three, four. Very few. I request the rest of you to please think about this. Come up with your own idea. Keep it very small. Something which you should be able to do in the space of maybe four or five hours. Including a very small year design. Creating the tables corresponding to it. And then building a small web app with one or two interfaces. It doesn't have to be extensive. But it should be your own. So that you go through all those steps. And that will force you to think about decisions which on your own rather than looking up the solution which pre-exists. And if you do this when you will again, in the main workshop, you will make participants there do the same kind of thing. They have to do it on their own and then they can get feedback. Which brings up another issue. How many of you have reasonable T.S. support for the main workshop? Reasonable T.S. support meaning we have about say 50 to 60 participants. How many of you will have at least two or three T.S. Who meaning other instructors or students who have taken a database course. And who are good, who can help you with it. How many of you have reasonable T.S. support? Good. Quite a few of you. So for the main workshop it will be even more important to make sure that the assignments which people submit are graded. Grading in the sense the important thing is not giving marks. We are not giving a grade in this course. That's not the point. The point is to look for errors and correct them. So here we have a number of T.S. who are helping some of you. But from what I have seen most of you don't need help. You already know this stuff. So some have asked about correcting these assignments. T.S. as I said have been busy with other things earlier. But in the next week or so we will try to correct the assignments meaning go over it and give comments on things which are wrong. We won't try to give marks. That's not our goal. So we will try to do that. It may not happen while you are here but you will see it after you go back. Sir, can we use PG students as MTECH students? Oh yeah. MTECH is better than BTECH. If you have MTECH students. So I didn't know how many colleges have a PG program. If you have it, excellent. Many of you don't. So UG students have done a database course and have done well or perfectly fine. Sir, participate in the main workshop need to submit the assignment on this model itself or they have to submit to us. So that's something which we need to examine. If they submit on Moodle, all of you will be teaching essence the main course. The only thing is with 6000 participants how to break it up into sections which each of you can see will be an issue. One solution is to create a Moodle course just for submission per remote center. And then they will be asked to submit it there. Because they are not sure how we can handle such a large load on Moodle. Otherwise sir, if you submit that locally like they have to do to me, then there is not that much seriousness in this course. If they have to give it to you, the problem is you will have to manage 60 submissions per day. That's okay. And files. Because they are my colleagues. So they don't have that much seriousness while submitting. But while submitting to this site Moodle, they feel like there is somebody to assess this. So what is the point? You want them to… I want these assignments to be submitted on Moodle and then later on we might… Yeah, yeah. Our goal is to make it available on Moodle. The only thing is if you have a single Moodle thing across all remote centers with 6000 people, filtering out the people from your center may be an issue. That there is something with groups which may be it is possible to make them appear as group. But I don't think that's suited for this thing. Please remind me about this. We will work out something so that most probably what we'll do is one Moodle site per remote center. And we can just have the assignment upload there and turn off upload in the main site. Sir, if they generally submit them there, we can filter out through the remote center ID. Yeah, you can then download, print out, do whatever you want. You will be the teacher for that Moodle site. But otherwise they have to give to me then I don't feel that there's… That was seriousness in this. Yeah, we want to have it on Moodle. Absolutely. There's no doubt that we want it on Moodle because then you can collect it. You can have TAS who will go and do the correction offline. You don't have to manage all these files. It's all on the central site. So yes, it will be through Moodle. Sir, if time permits, can we have a one hour class for Moodle? How to configure Moodle for our institutes? How to configure Moodle? Sir, we can also use in our institute. That's a good point. So I don't know if you have time in this pack program but maybe tomorrow evening after five we don't have anything planned. So those who are interested in that, we can have a small session on Moodle. It's actually relatively easy to set up Moodle. You have to basically download the Moodle files and put it in a directory which is accessible. So you should have a web server and download the PHP files. You may have to do a little bit of configuration of a web server to serve PHP files from the Moodle directory. You have to have a MySQL database and then you have to edit one configuration file in Moodle where you will enter the database username and password in the Moodle configuration file. So that's more or less it. After that Moodle auto-configures does a bunch of stuff when you start it up, when you first access it over the web and it's pretty straightforward. The only remaining issue in Moodle is how do you create a Moodle page per course and how do you add the students to that? So Moodle has several ways of doing this. Moodle has the ability to load flat files or files in a particular schema that it provides. And if you load those, these things get populated automatically. The other option which is used in IIT but it's more tricky and we are having problems with it, is that when students register on our online system, we automatically copy that registration data onto Moodle. When courses are created in an online system course offering, we automatically create courses on Moodle. So this is a lot more seamless because it happens totally automatically. Nobody needs to do anything. The only catch which we have found with this is that when Moodle version changes, because we work at a lower level on the schema, bring it up to date as a headache and some things get broken. But Moodle itself has improved over the different versions and it has better support for sucking in data from a database. So if you can create a database view in the form that Moodle wants and then you give it the database login and password to Moodle, it can automatically suck in the registration data. And then the last part is authentication. That could be done in Moodle or many places have already LDAP or Active Directory or some such thing for authenticating users. So if you have that in your institution, we do. We just configure Moodle to use LDAP. So that's pretty much it. One hour session for that. Yeah. So I'll see if I can get somebody who has done Moodle installation recently. I last did it about five years ago. After that the TAs have been doing it. Sir, in our college already we have the lab setup with Oracle 10i. Yeah. Our participant can do the assignments on the Oracle. They can submit to the Moodle afterwards. Yeah. So I would suggest you do it on Postgres because you have Oracle, but when they go back to their labs to their colleges, do they have Oracle is the question. Yeah, yeah. Because our VTU is suggested to by the Oracle original one. All colleges they are using the Oracle. Yeah. Because you have the syllabus it is by VTU. Now all are familiar with the Oracle. We register in the teachers. Okay. It is easy for them to do that. Assignments in the Oracle. Okay. So what I would suggest is at least get them familiar with Postgres. At a minimum go through the Postgres configuration. Later if they want to do the SQL queries on Oracle because it is in your syllabus, maybe you can do that. I mean I won't prevent you from doing it. But the point I want to make is that we want to expose people to these alternatives, which are pretty good. They are okay for it is. Once after the workshop they have to go for their own colleges. Again they have to do the assignments they want to do. Again they have to download the progress and everything it is. Again they have to set up. Yeah. So what I am saying is if your university forces you to do it in Oracle. Yeah. Anyway that is what I understand you are saying. Yeah. Then they might as well do the SQL assignments here in Oracle. You can, but we have not given Oracle versions of the solutions. That is up to you. If you are using the sample solution you have to figure out how to convert it to an Oracle-compatible format. There are lot of small syntax differences which means many queries here will not run on Oracle. Directly. You have to make small changes. So we are not doing that. You can do it. So I am saying you can do it if you wish to. But all I am saying is please make sure that they have gone through the PostgreSQL download configuration so that they can go back to their colleges and use PostgreSQL also. We do not want the syllabus to say do it on Oracle only. That is bad. Why should we teach our students only Oracle? When there are competitors around. Would you say you should only buy Samsung phones, don't buy Nokia phones? That does not make sense. So why should you say only buy Oracle? It is an option. But when we train our students we should expose them to the open source option. PostgreSQL is very good for multiple reasons. Like I said both external and internal. So it is an important part of this workshop to expose people to PostgreSQL. Oracle has a big publicity machine. They have managed to put their thing into all the syllabus but PostgreSQL hasn't. And if you don't do it in this workshop who is going to do it? The question is about I suppose the participant if they are asking why should we go for the PostgreSQL? Is there any impact on the industry point of recruiters point of view? Even students are also asking that. Why? Because most of them stick with it Oracle. So like I said if there is pressure in your site to stick to Oracle and you know that the remote and the people who are coming to your remote centre are also going to do it only on Oracle, you can. You can use Oracle to satisfy them. But to answer your question why PostgreSQL, why not Oracle? So first of all supposing you want to set up a website. You need a database for it. What are your options? If you want to get Oracle you have to pay a heavy amount. If you get MySQL or PostgreSQL it's free. And that's what people do. If you go out in the industry today many leading sites don't run Oracle. Simply because they don't want to pay Oracle huge licences for many databases. And Oracle itself recognize this and bought MySQL. So MySQL is now an Oracle product but it's still mostly free. I mean there are some small commercial limitations but it's mostly free. So that's one reason that students should know how to use these things. And there are so many tools which use them. For example Moodle itself. It uses MySQL or PostgreSQL. You need exposure to one of these at least. We chose PostgreSQL. You can choose MySQL, that's fine. My question is, I'm using this. If they're asking why I should go for this. So the students say that Oracle is a ticket to a job. PostgreSQL is not. Students will have this issue. So if the recruiters are coming in and saying you must know Oracle, they all means teach them Oracle. We do want our students to be employed. We don't want to keep them ignorant of something which matters in their job market. So in such a situation I'm saying teach them PostgreSQL. And why PostgreSQL? So you have to tell them about this. You have to tell them the fact that there is a lot of websites today which are based on MySQL and PostgreSQL. And if they are going to get a job in a company which uses that and not Oracle and they don't know anything about it, then they're losing out on those jobs. So if they have some exposure, they'll have the confidence to go use it and do stuff with it. If you like I expect, if you're posting the importance of each and every database, they'll come to know that. If you like my expert, if you're posting something on models, this is the comparison ratio. So there is an importance of PostgreSQL also in the industry like that. So it will be good. It's actually very simple. If you look at feature-wise comparison feature to feature, obviously Oracle will have far more features than PostgreSQL. So that's not the kind of comparison we want. The comparison is where does it get used and the price. And for those doing internals, the fact that it is open source. They can actually look inside. Those are the main things. Any other questions? So do you have any certification examinations for PostgreSQL just like we have for Oracle? No, I don't know of any. Oracle has put a lot of investment similarly Cisco and so on. Basically they want to lock in on their products. So when they have a lot of people trained in it, businesses will tend to go with it because they can find trained people. PostgreSQL being open source not commercial does not have such a setup. So right now there is no certification and so forth. The only way it can do it is through evangelism. In the sense that people go out and talk about it and say you can do it. And that's part of what we are doing here. That's why I'm saying even if you're syllabus mandates Oracle, please do not throw PostgreSQL out. We want you to tell students about it. We need them to learn about it because it's a very good alternative for many applications where you cannot afford to buy Oracle. MySQL is also fine for many of these tasks. We chose PostgreSQL because we also want to teach the SQL language. And MySQL support for the SQL standard was not as good as PostgreSQL. So we chose PostgreSQL. Otherwise MySQL is fine. Many people do use it in the open source community. Sir, if you want to migrate from PostgreSQL to Oracle, so what are the steps or what we have to do? So the first thing is the SQL syntax, there are a lot of small differences. So here let me bring that up. This is on the book webpage. So if you see here, there's some stuff on how to connect to Oracle. And there's a little bit here about the as clause and the accept clause. There's actually a bit more which I... So we have a longer list of Oracle. This is a very small, these two things in there, but it's a much longer list of syntactic peculiarities of Oracle. So you can go through that list and then rewrite your PostgreSQL compatible SQL to Oracle compatible. And PostgreSQL is actually more compatible with SQL standard than Oracle is. That's one more reason to use PostgreSQL. Oracle is much less compatible. So any changes you make to make it run on Oracle might be Oracle specific. Sometimes it's okay. Oracle does not support standard features, but it supports some other standard features you rewrite. In some cases it is non-standard. You have to live with that. Sir, if I implement an application in Java or GSP, can I upload into the Moodle? Okay, so how do you upload an application onto Moodle? Okay, that's a good question. So you can create a zip or a tar file containing all the sources for that application. One issue which sometimes happens is that people use ID, NetBeans or Eclipse, which also brings up this issue. I assume that all of you have used Visual Studio or Eclipse or NetBeans. Is there anybody here who has not used one of these platforms? Everyone has. Now, how many of you have used Eclipse specifically? And to reverse the question, how many of you have not used Eclipse? There are quite a few. Of those who have not used Eclipse, how many of you have used Visual Studio? Pretty much all. So in the Windows world, you are familiar with Visual Studio. So Eclipse is an IDE much like Visual Studio. The details of what a thing appears where in the menu list will vary. So that's an issue which you have to deal with. But most of the stuff which you can do in Visual Studio, you can do in Eclipse. Of course, you have to do a little bit of exploring. The good thing is half the people here have used Eclipse. So in addition to the TAs, you can also turn to your neighbor and ask for help, immediate help during today's session. So today's lab requires you to use Eclipse. And why Eclipse? Because Visual Studio runs only on Windows. Eclipse is cross-platform. It's very good. It's very standard now. All companies are using it. So do take the effort to learn Eclipse. And even in the Windows world, you know, Visual Studio has some nice features, of course. But Eclipse is something which, again, you should expose students to. Yeah. So the Java programming Eclipse is relatively smooth. You can basically create a new project and then create files in that project, create servlets in that project. Servlets is tomorrow's assignment. Today is just Java. The one thing you have to make sure when you set up Eclipse, there are many versions of Eclipse. So the version of Eclipse which you will need to set up for the purpose of this course is Eclipse with the Java Enterprise Edition. What does that mean? Servlets features are there in the Java Enterprise Edition. The basic Java Edition does not include servlet support. So you have to download a version of Eclipse which is Java Enterprise Edition. Can I use NetBean? NetBean, yes. You can use NetBean if you are familiar with it. NetBean is also perfectly good. We just chose Eclipse. So in our labs, we have used NetBean more often. So they have their benefits, I mean each one has its pluses and minuses. So whichever one is fine. They're pretty similar. There are differences, but at the bigger picture, they both offer the same main features. Both are Java based. Both are cross-platform. Yeah. Any other questions? Sir, in Moodle, you have wrote to implement the project. We can use the Microsoft.net also if our institute have their license over here. So we have the license for the Microsoft Windows and Visual Studio. So can we implement in the Visual Studio as well? Yeah. So for the projects, yes, you can use any platform that you want for the project. It need not be Java. It could be .net. It could be PHP, Python, whatever you want. Ruby on Rails, whatever you're familiar with, you can use for the project. For the basic course assignments, I think it's still a good idea to teach people Java because that's what, again, it's open source, standard, and it's very widely used in the industry, far more than .net. So whatever reason people have given for using Oracle, it's even more stronger for Java. Okay. Good. We have spent a lot of time, but I think this is an important session.