Transcript for:
Introduction to Java Programming Basics

First of all I wish like to welcome you all to the course. So, this is the first lecture. In this first lecture I will try to cover the Basic Concept of Java Programming. Now this course is being offered with a huge effort, I would like to introduce the team who are involved. So myself, Debasis Samanta from IIT Kharagpur and then Tauheed med is a Research Scholar in our institution and then another Research Scholar is Niranjan Sinhababu. So, they are basically will act as a TA and then will support me, and then also they will be always available for any queries that you can have right. So, you are feel free to ask any questions there is a discussion forum, so that we can write attend your questions and then give the answer as within a shortest possible time. And also we are always available and you can contact us using our email address anytime; whatever it is required for you. Now, this course needs few reference materials. So, there is a very good book on programming with Java the title is called Complete Reference Java 2; as on today 10th edition is available and it is published from the Tata Mc-Graw Hill Indian edition. In addition to this there is a one another book is available publish from the Prentice Hall of India written by me: this is the Object Oriented Programming with C++ and Java. The second book is very useful for the beginners because it is written in a very simple and easy way so that you can understand as quick as possible. Other than these two books I advise you to look into the web page; that is the link it is given here. And this link will give you a lot of materials and then the programs which will be covered in this course, so that you can access it and you can use the quotes for your practice. So, in addition to the code also some explanation and then why, and then frequently asked questions all these things is also included in this link. So, this is a very good link and you should use this link while you are attending this course. Now, I just want to tell about the overview of the course, this course is paid over the 60 lectures. And here we can see the week wise planning of the course; that mean what are the topics that will be covered in a particular week that is planned in a well manner. In addition to this lecture schedules time to time we will cover the demonstration; that means, you will see that if this is the code and you see how to run this code, and if you run this code why this code is giving this output for this input or why this code needs a special attention, so that you can learn many detail things about the programming. So, lectures as well as the demonstrations is very useful, and then I think it is very helpful for you to learn the course very easily. And at the end of the course basically the last week, the week 12 we will cover a project right. And then we will discuss about that how a software can be developed using the experience that you have gathered, right. So, I hope we the running skill that you will earn from this course will helpful for you to develop a projects; obviously, this is a mini project that can be covered in 5 lecture hours actually. So, you will get a full flavor of the programming and then, it will boost your confidence to develop any software of your own. Now let us come to the Concept of Java Programming. Just give a brief history of Java programming. So, Java programming is now little bit matured, maybe say I can say 23 years old or so. But the first time it was introduced the 1991, there is a team they are called the Green Team. Green Team from the sun micro system lab, Sun system lab is very famous for developing hardware and software, and they have many contributions in the field of information and technology. Now, from this green team the pioneer is James Gosling and his colleagues Mike Sheridan and Patrick Naughton. They first time introduce the concept of object oriented programming. And they give the name of the programming has Greentalk initially; as it is from the green team so they call it as a Greentalk. And then Java initially was designed for a small embedded system and suitable for many electronic appliances like set of boxes and then fees and all these things, but it was too advanced technology for the digital cable television industry at that time in fact. So, later on they developed a more improved version of the concept and they gave the name is called Oak. And this is basically under a green project proposed by the green team. And then later the same concept has been included in a very famous the giant in software industries call the Netscape. So, Netscape is basically very famous for networking, network related programming. So, they adapted this Oak technology in their own work. Later on, the Oak actually they gave initially the name Oak, because Oak is very famous and is basically nationality in many European countries like Canada, USA, UK fine Germany right. So, they later on was searching that the name should be very suitable as the programming favor it is. In fact, they have an idea about that this programming really is very cool, lively, dynamic, revolutionary and easy to spell and fun to say. So, they were searching many names replacing Oak. Then in 1995 the Gosling introduced the name Java. In fact, Java is an island of Indonesia, where best coffee of the world is produced. In fact, Gosling was very fond of coffee, that is why he choose the name Java for this programming setup. In fact, the Java is so, popular that in 1995 the Time Magazine awarded the Java as one of the best product. And then, with this popularity and then maturity in 1996 this is the Sun Micro system first times, introduced a full set of programming environment, they call it as JDK- Java Development Kit it was released in January 23 1996. So, this gives you a brief history of the Java and why the name of the programming is Java. Now, the developer in fact, claim that the Java programming is very simple it is portable; that means, you can use it any environment and, it is very secure and it is high performed high performance, the multithreaded, interpreted, platform independent, dynamic architecturally neural, object oriented and finally, it is a robust. So, basically these are the different what is call the features, or you can say the parameters or specifications that Java programming has its. And this is a really a unique programming environment that is why it is a best programming language so far in fact. In fact, so far the popularity score is concerned, here is the graph I have given you can see the graph here. And in this graph we can see the score, that the different programming language has so, for their popularities are concerned. And as you see out of any programming language Java stands on the top. Java has the highest popularity score compared to any other programming languages. There are similar programming languages for object oriented programming like C++, C star whatever it is, but Java is one unique of its own. In fact, Java has consistently been more popular, than any other programming language that I have listed here around the year. And so, I can say that Java has worldwide popularity. Java is really very good for parallel and distributed program development and, the Java is basically is a basic programming environments suitable for android mobile operating system android platform. And you know, android programming is now increasing its demand, because of the huge development of mobile communication, and mobile technology. And platform independence, we will discuss in details about how Java is platform; that means, it can run in any machine in any software in any operating system and then more precisely Java is very much reliable and high speed and then very good and accurate programming environment. So, this is why Java is now very popular. Now, I will just discuss about how Java is different from the other programming environment. Now, in any programming environment, we know the concept that is used is that it basically take an input and then produce an output. In order to do these things it basically use an architecture and that architecture is popularly called von Neumann architecture. So, in this von Neumann architecture the program is loaded into this memory. And then from this program is then executed by the CPU it is called the control unit as well as the arithmetic and logic unit this is basically mainly for the; this part is basically for the execution. So, this is the architecture that is used. So, it is not a new things so, this is the old known things and starting from the inception of computer, this is the architecture the von Neumann architecture being followed. Sir, . . It clear that a may be like this . ok. fine. thank you sir. So basically the idea about the programming is that we can handle the different types of input and, also we should produce output suitable for the different.Here basically we have discuss the what are the different types of the input that a program should take care. And then the output also the program should produce. So, this is the ideal about it. And now, in order to have this kind of flavor; that means, to deal with the different input and then the different outputs using the conventional programming or whatever the programming, what are the different practices are available. So, I just want to quickly give a brief overview of the different the programming practices that it is there. So, programming is of three types actually: the first is called the program whenever it is written in machine level. So, it is shown in the machine level programming. And then the program can be written in assembly level and the program can be written in high level language. So, machine level language actually the code if you see it is stored in the binary form, in terms of 1 and 0s, whereas, the program if you write in an assembly language it is in the form of some new mini codes like add MOV sub like this. So, these are the basically codes for different operations. And third generation language or it is call the high level programming language is basically more or similar to English look like. So, definitely the third high level programming language is most suitable for many programmer, because it is easy to write their own program in contrast to the machine level and then assembly level. Now, if you write a program in assembly language, then it does not record to do anymore processing it will straightway can run your program. However, if you write a program in assembly language, then we need to translate this program into machine level language. And there is a program is known for this is called the assembler. So, assembler will convert or rather we can say translate a program written in machine level assembly level language to machine level language. On the other high level programming language also need to be translated into machine level language. So, far this translation there are two modes available one is the compiler another interpreter. So, compiler will translate the entire program at one go and produce the machine level code whereas, interpreter will run one statement at a time. It will basically translate one statement and then run it then next statement and run it and on the way if they find any error in the program. So, the exhibition will hold or it will just bypass that statement and then proceed to the next statement so these are. But on the other hand compiler will check that the program is written correctly, then only it will produce the machine level code. So, this is a concept that is being used. So, for the programming different programming language is concerned, I mention these thing because you will be able to understand that how it basically makes a sense so that the comparable to other programming languages. Before going to these things I just want to say few I mean generation of language. In fact, the machine level programming is it is the first generation of programming language. Later on the second generation programming language is basically with assembly language programming, those are basically suitable for microprocessor level programming. And then next level programming is called the third generation programming language. There are different programming languages like C, C++, C sharp, Java, the visual BASIC, FORTRAN all these are basically belongs to this third generation programming language. Now, third generation programming language needs a skill from the programmer that how to solve a problem. Now recently there is another high level programming is called the fourth generation programming popularly called the 4 GL. And these basically does not require so, much programming afford from the user the programmer should tell what to do. So, the third generation language if it is how to do, then the fourth generation language is what to do. And example of fourth generation language is SQL structured query language that we used to delete the database. So, in this course we will also use this 4 GL; that means, Java can interact from its 3 GL flavor to the 4 GL things. So, there are different programming languages paradigm of course, Java belongs to third generation programming languages. Now let us see; what are the principles that the different high level programming languages follows. Now, whatever the principles are there, they can be broadly classified into two broad categories one is called the function oriented programming and, then another is called the object oriented programming. In the concept of function oriented programming, the entire program is decomposed into last set of small functions. So, in this program I can see that we see that there are last these are the basically function. So, these are the different functions. So, you can decompose the entire program into a small set of a last set of functions you can need so; that means, it is fragmented. And all these functions basically shared a data which are common to all functions. So, this is called the global data. So, this is the global data and any functions can use this data, either they can read as an input from this global data process. And then after processing they can store the result into this global data. So, it is the idea about that there is a set of functions. And all functions can share some data which is stored in a common pool. Now, this is the concept of function oriented programming that is mean writing the program as a function for example, C programming language is based on this concept. On the other hand, there is another concept is called the object oriented programming concept; here the program is concept in the form of a set of objects. So, as an example here we can see these are the one object, these are the one object. So, writing a program is nothing but writing a set of objects whereas, in terms of functional programming we have to write a set of functions so, here we have to write a set of objects. And here you can see one another interesting difference is that, there is no global database as it was there in function oriented programming. So, there is no global database, then whatever the data it the programs required all these data will be stored within each objects. So, they are basically data are distributed among the different objects and then is a localized. So, that is fine. So, data is there and the objects are there, then the programming task is basically carried out by communicating among the different objects. So, if we want to solve a problem, then this object will communicate to other objects and by this communication the program can be solved. So, there is a now obviously, it is interesting to learn that how this object communication help us to solve our problem. So, this is the two concept the function oriented programming and then object oriented programming. And obviously, there are many I mean good points and bad points of the both programming, I have listed brief summary about the different facilities that the functionality programming and then object oriented programming provide us. So, first of all the program that is organized in function oriented programming by means of function whereas, in object oriented programming by means of objects, here importance is given to the function whereas, in object oriented programming importance is given to the objects. Function oriented programming in fact follow the approach is called the top down approach, whereas the object oriented programming follows the bottom of the approach. And there are many other such that the function oriented can do, whereas the object oriented cannot and vice versa. . So, all these things we will discuss in details, while we will discuss about the programming and you will be able to learn that time only. And then I will discuss about what is the peculiarity or the specialty that the Java programming has, it is called the Java programming modelling or the Java programming paradigms. So, there and mainly four Java programming paradigms, these are the paradigms for any object oriented programming concept actually. So, the four paradigms are encapsulation, inheritance, information hiding, and polymorphism. So, quickly learn about all though you will learn all these things in details while discuss these topics individually, but today I just want to give an overview of the four different paradigms one by one. So, first of all is the encapsulation, as I already told that the object oriented programming based on the concept of objects that means we had to develop the objects. So, how the objects can be developed? So object is basically developed by means of defining classes. And then defining a class concept in object oriented programming is called encapsulation. So, here it is called encapsulation because in a class we have to encapsulate two things, both the data as well as how to manipulate the data, it is just like a function. Function basically, know how to manipulate data. So, both data and the function are punch together and then put into a class and this class basically is responsible for building objects. So, this concept is called encapsulation in Java. Now, I can give few examples so, that you can understand say book is basically set of objects; that means, the all books belongs to a particular class. And then the books has the different data to define it, such as title who is the authors of the book, the accession number, cost, borrower date of issue like this one. And the different methods that is required in order to process a book, I like issue whether if it is late return then fine, then return open a book, close a book, whatever it is there so, these are the methods. Now, all these methods are there to define a class of what is called the book. Now, another example say borrower, borrower is also set of objects they are the different leaders actually. And the a borrower has the different fields or the data actually, they are called member elements like name, roll number, address, marks and then they can borrow any books what about the books they borrow it is basically name of those books. Now other than these data, they are also has some methods like request that mean with this method they can send a request to book. So, that this book should be suit to him renew a book, enroll for the library and if you want to exit from the library so, that that exist methods are there. So, these are the different methods are there. Now, all these data and methods basically defined a class here for example, class book and then class borrower. And all these methods and then member elements the data basically put together and define the classes for example, the classes as an encapsulation, as well as the borrower crosses as an encapsulation. Once the classes are develop; we can create a number of objects. And then they can communicate it. For example, if a book can send a message that you have already issued a book which is already not return, within a billing it so, you have to impose fine like this only. So, this basically objects can send, the message to different objects and then accordingly the task can we carried out. For example IP information system will be developed based on this concept. Now, I will come to the discussion of inheritance in Java. The concept of inheritance is basically if you have a class how you can derive another class; that means, we can existing class how one can build many other classes are there. So, this concept is basically the concept of inheritance, here for an example a book is already defined class, but the thing is that book has many categories. For example, a book can be of textbook type, if it is a textbox when in addition to all the common data and method that is there in the book, it may have some extra some features. So, those extra features if we include in addition to the previous features, then it is called the inheritance. Likewise textbook we can also inherit to another category of book is called the reference. This means that from the book class which is the base class, we can develop few more subclass call the derived class. And so, this way the inheritance is basically help us to build from one class to another class and the very last software. Now, I will come to the discussion about information hiding. So, information hiding the concept is that, how we can make some methods or data that it should not be easily accessible to anybody. So, there are many concept of information hiding is known and, they are basically hide some data or method from the public accessible or restricted access. So, this is the idea and then polymorphism is a very important concept, here the concept is that with the same name, but it can execute a different operations. So, this concept is called the polymorphism it look same. So, that it is very simple and user friendly, but it will do the its acts according to its own what is called the context. For example, if we use a print one operation. So, definitely printing and image and printing a document, should not use the same operation rather, it will use the different way to print different way, different task, different operations to print actually. So, to a user print method will appear that printing an image or printing a document, but inside its the different stories should be there. So, this is the concept of polymorphism as an another example you can see, if we write say add x and y. So, add is a method this basically add two numbers, similarly the same add method also we can define it in a polymorphic way so, that it can concatenate two string. Likewise add image and document we can use, but the operation will be different, but if these operation will basically print an image paste an image to a document. Similarly at the same method in a polymorphic way can be used to merge two documents together. So, here we can see the add methods has a different polymorphism. The name is same, but they are argument that is called the input is different and, their function is different their task is different this concept is called the polymorphism concept. And so, just I am almost in finishing this lectures today, before going to these things, we will just have an idea about that what the Java programming can do for us. In fact, Java programming can do a lot for us, what about the task that Java programming can support a programmer can be divided into three broad categories. The first the category is called Java core programming using the Java programming, we can develop many software’s those are basically very large software maybe system software or may be an application software. So, Java Core is basically useful for developing system software as well as application software and to do these things the multithreading, the interfaces, the input output handling, Java beans, packages, exception handling all that the key issues are to be plan for that. So, if you learn all these concept, then we are fit for writing application software using Java core concept. Next is Java Applet. As you know different operating systems give you even the mobile also, they give you lot of what is called the user interface. It is called the graphical user interface, or interface with speech interface with registers, touch whatever it is there. Now so, Java applet programming is basically suitable for developing such kind of interface and here, we use Java multimedia Java script and then windows toolkit and Java swing. So, these are the basic concept that we have to learn, before use before going to develop our own system and their user interface in the form of GUI like. Then the third part is the most advanced part of this Java programming, here basically the Java can be used for internet programming. So, as a task of internet programming we can do networking, developing different network protocol for communication. The distributed programming this is basically the client server model. So, that program can be run distributed across the different machines, remotely distributed throughout the different geographically distributed space. And then database connectivity; that means, Java can be used to connect any database which is stored in a server database. So, from your program you can pass some comments so that comment will remotely go to the server which is connected through net. And then you will be able to access the data in the remote server, or you can load some data into their server. So, it is called the JDBC Java database connectivity. And then Java JSP also scripting for programming, this is for developing the browser program different web pages that can be developed using JSP also we use nowadays Java script. However, Java script is totally different and needs a different what is called the study and learning, other than this Java programming. Java script is basically maintained by Netscape nowadays ok, with this I just want to say few things. So, right so we have not introduction about the basic concept of Java programming. Then it is very interesting to learn about how the Java can be used to develop the programs so that it can runs in any operating system in any architecture any hardware. And then it is also very interesting to learn how a browser like say internet Explorer the Mozilla the Chrome all these things can works in our mobile or in our computer. So, all these things we will be discussed in our next class. Thank you.