 Today afternoon, we have two things on the agenda. The first is continuing on SQL. There are two more things here, SQL, DDL and updates and some stuff on schema creation and constraints. This should be fairly straightforward stuff for anyone who has been in this area. The next thing which I want to do today is an introduction to Eclipse as ID. Now, how many of you have already used Eclipse? Several of you. How many of you have used Visual Studio? All of you. Well, not most of you. How many of you have used none of Visual Studio Eclipse on NetBeans? A few. So, this is basically an ID. Eclipse is an ID just like Visual Studio on NetBeans. Why did we choose Eclipse? Because the next set of assignment, next set of topics after this for the lab is communicating with a database using JDBC, which we saw and then a bit of web programming. We are going to cover just servlets, although if you want to do full-fledged web applications, you should probably get familiar with at least JSP also if you go the Java route or you could go the PHP route and use PHP completely or you could go the .NET route and use Visual Studio's web facilities. All of those are perfectly valid options, but for uniformity here, we are going to stick to Java. It's open source and the IDs these days are pretty good. So, what we will do today is to get you familiar with Eclipse, how to create a project, how to create a class in there and tomorrow's lab you will be using Eclipse to write some small JDBC programs and then to write a small servlet. So, we have sample servlets which can help you get started. So, today the goal is to introduce you to Eclipse. Start up Eclipse on your laptop. You can CD tilde slash desktop slash software desktop software slash Eclipse. Just run, you can CD into this and then run Eclipse. From here, just type Eclipse. Okay, now how do you set up Eclipse to do what you need to do. The instructions are there in today's sheets. It says using Eclipse and introduction. Okay, this is given there also how to start up Eclipse and then follow the steps which are given there. So, let me bring up model here and show you the steps. Yeah, so the first step is to start Eclipse. Then you have to select a working directory for the project and it comes home, a user name, workspace, you can leave that alone. Now, in Eclipse, as in all the other IDs integrated developer environments, everything which you create has to be inside of a project. So, the first step after that is to create a new project and the details are here. Once you've created a project, you will be on that project. You can switch between projects if you want and we'll see how. But whatever project you have selected at any point to work on, you can then proceed to create files in that project to execute it and so on. So, that's the basic set of steps. So, how to start a new project? So, basically you do file new. So, let's the instructions are there on with the sheet. What I'll do is I'll demonstrate this. Okay, so now there are many kinds of projects which you can create in Eclipse. It could be EJB project, Servlet project, session being, whatever. So, you can choose Servlet, sorry, this is not a project, this is actually a Servlet. So, projects are from here to here. There are other kinds of projects also which you can create. For our purpose, we will be creating Servlets. First we are using JDBC, which doesn't really require Servlets, but the next step is using Servlets. So, what we can do is choose Dynamic Web Project, which lets you use JSP, Servlets and so on. You have to give it a name. There's a target runtime, which here shows Apache Tomcat. If it is not installed by default, so you have to do a click on new runtime. This will not show up initially, but when you click on new runtime, these things show up. So, you can select Apache Tomcat and then finish. So, once you do this, you will see this Apache Tomcat as an option here. So, the instruction sheet which you have tells you in which directory to find it. So, please read the sheet and it gives you the directory. By the way, I should mention, when you go back to your university and set up Eclipse, there are different versions of Eclipse. There are versions which include Java, EE support, the Enterprise Edition, which includes Servlet support. There are versions which don't have that. So, please make sure you install the version which has Java EE support. I think this will be included in that DVD which you will be getting. So, the DVD will have the correct version of Eclipse. But if you install Eclipse directly from somewhere else, if you use the Ubuntu software center and install it, for example, make sure you get the correct version of Eclipse with Java EE support. If you don't have that, it will not be able to connect to Tomcat. It will not be able to run Servlets and so forth. Java STK will have to be installed here. And let me also mention, when you go back to your institute and you are trying to set up something and you have a problem, there is a good place to ask for a solution which is this Moodle. So, in Moodle, many of you have probably logged into Moodle from your institution. So, you can connect in here and go to news forum. So, let's create something for, maybe this thing is help with software. So, that's the topic. So, you should all be getting this email which I just typed in. If you don't get it, let us, there will be some, check it afterwards. It may take a little while for the email to reach you. But if you don't get this email by tomorrow morning, let us know. There must be some configuration problem. Okay, now coming back to Eclipse, the target runtime should be up. This is for using some JSP tag lips. Don't worry about it. We are not using this feature. And configuration default should be fine. We don't need to mess around with that. And we can click on finish. And now we have a project here called Projone. This JDBC was another one which we created earlier. So, now source files will normally go in here. Once we have created that, the next step is to create a class. So, new. So, this is if you are just creating a class. And you see the source folder is already being chosen there for you. Projone slash source. You have to give it a name. So, these are all standard. You don't have to mess with it. If you wanted to include a main program, you can click on this. So, this will create an empty method stub. So, here is public class test one, which also has public static void main. And now you can type in whatever the assignment is specified there. You can type that into the main program. Now, some of you may already know Eclipse. For the others, when you go back today, please play around with Eclipse. There are a lot of features you can't possibly play around with all of them. But at least make sure you are able to create a few programs and run them. So, the next question is how to run it? That's also specified in there. So, you can try doing a few more things to get comfortable with Eclipse. Because tomorrow is another packed afternoon where you have to write a JDBC program and a servlet and get it all running. And discuss a little bit of SQL from assignment one and two. So, it's a packed day. So, please get familiar with Eclipse before you come tomorrow. So, we need a front end to build any meaningful database application. So, the question is what is this front end? And today, pretty much all database applications use the web as the front end. So, that is kind of decided. There is no question about that. The next question is what technology do we use to build web front ends? Here, that's actually a wide choice. Other answers are okay. Yeah. My question is like, I don't know how many courses of database other people have in their university. If there are two courses, yes, they get enough time to talk on to these issues. If there is one course of database and there will be a bit of computer science, then probably we don't get time to talk on to these things. So, that is my understanding. That's definitely a good question. So, where is the time to do all this? So, there are two possible answers. In IIT Bombay, what we do is we have one course, but we also have an associated lab. So, there is time set aside each week for the lab. And all of these parts, including running SQL, everything we are doing in the afternoon today is part of the lab. And the theory course does not have to worry about this. If you have to again describe that as part of the theory course, certainly you will run out of time. So, our assumption is that there should be an associated lab. Even if it is informally there, the time should be set aside for it, even if there is no formal lab. If you don't do that, if you just type SQL queries and don't see the end result, student motivation is less because they can't build anything real. On the other hand, when they go to sites on the web, they will quickly realize they are using databases all over the place. And when they build these web applications that connect, they can make the whole connection from SQL to building applications which are similar to what they use in the real world. So, we believe that it is good to help them make that complete bridge up to that point. To motivate them better than just having something where they learn SQL and normalization. And the second part of the answer to my question, one is to set aside lab time. The second which we were just discussing with somebody else was, if you have any control over the sequencing of courses, it would be good to have a course before the database course where they have already learned, maybe if assuming you go the Java root, Java and how to build servlets and so on, should ideally have been covered already before coming in here. It need not be Java and servlets. It could be the Microsoft land visual basic or C sharp today with .NET. That would be perfectly fine and then lead into this. Or correspondingly, many places today use PHP or Python or other languages to, which can be used instead of Java to do the same thing. But ideally they should have learned that before coming into this course. So, time in this course doesn't go into teaching them all that. So, if you have control over the syllabus, try to do this. It will lead to a better course. We have objects in Java before we are entering into this course. But still we have only one course and maybe the depth component, maybe some things like SQL and some projects. The other thing which we have seen is students pick up on the technology a lot on their own these days with the web access. Some of them already know it and those who don't also pick it up quickly. So, if you just give them a few exercises like what we are doing here, they will go back and learn a lot more. In fact, if you look back ten years in IAT, the first people to learn about servlets, not the faculty, the students who had found this stuff on the web and tried it out and actually in the course I was teaching, a student came and said, can I build this using servlets? So, I said sure and that is where we started. We have a separate lab course. Database systems lab and database systems course. We have separate credits. We have three hours a week for the lab and three hours of lectures for the course per week. For the lab course? For the lab course it's not lecture, it's a lab time. For the regular course it's three hours of lecture. I think we have same structure, similar structure, three hours of lecture. If you have that. We get 1.5 for three hours to one credit. The credit structure for us is lab hours count half of theory hours. We actually double the theory but it's equivalent. We call it 6-3, you may call it 3-1.5. Any other such comments? Pretty valuable comments, so please go ahead and make them. Do you discuss design of the front end with the student? Like we are talking about the design of the back end, right? Yeah, so that's a good question. Do we discuss front end design? We don't really have time in this course to cover what are aspects of good design. So, we don't actually do that. So, students pick it up on their own. There is actually a whole course on design which is offered not by computer science in our case, although it would make sense as a computer science course. It's offered by our industrial design center. That's a full-flight design course. It's actually very valuable. Unfortunately, we don't have time in our syllabus for that. But if there's an elective possible on design, that would be very nice. I think a little of introduction about how to make use of low charts or activity model for designing the front end is going to help. It would help. Our experience is we don't have time in this course. But a software engineering course, for example, it might make sense to include design aspects as part of the software engineering. Actually, there are too many things in the database which need actually time, right? Exactly. Any other comments? Thank you.