Introduction to Java Programming Basics

Aug 9, 2024

Basic Concept of Java Programming - Lecture 1

Introduction

  • Welcome to the course on Java Programming
  • Lecturers:
    • Debasis Samanta (IIT Kharagpur)
    • Teaching Assistants: Tauheed Med, Niranjan Sinhababu
  • Open for questions via discussion forum and email

Reference Materials

  • Recommended Books:
    • Complete Reference Java 2 (10th edition, Tata Mc-Graw Hill)
    • Object Oriented Programming with C++ and Java (by Debasis Samanta, Prentice Hall of India)
  • Additional resources available on course webpage

Course Overview

  • 60 lectures with week-wise planning
  • Topics include coding demonstrations and explanations
  • Final week includes a mini project to develop software

Brief History of Java Programming

  • Introduced in 1991 by Sun Microsystems' Green Team (James Gosling, Mike Sheridan, Patrick Naughton)
  • Initially called Greentalk, later renamed Oak, and finally Java in 1995
  • Java's name inspired by the island of Indonesia known for coffee
  • In 1996, Java Development Kit (JDK) was released

Key Features of Java

  • Simplicity, portability, security, high performance
  • Multithreading, interpreted, platform-independent, dynamic
  • Object-oriented, robust

Popularity of Java

  • Java consistently ranks as the most popular programming language
  • Suitable for parallel and distributed programming, especially with mobile technology

Java vs Other Programming Languages

  • Java uses von Neumann architecture: input -> process -> output
  • Programming languages categorized into:
    • Machine-level (binary code)
    • Assembly-level (mnemonics)
    • High-level languages (similar to English)

Translation of Programs

  • Assembler: translates assembly to machine language
  • Compiler: translates entire high-level program at once
  • Interpreter: translates and executes one statement at a time

Generations of Programming Languages

  • 1st Generation: Machine-level programming
  • 2nd Generation: Assembly-level programming
  • 3rd Generation: High-level languages (e.g., C, C++, Java)
  • 4th Generation: High-level languages focusing on what to do (e.g., SQL)

Programming Paradigms

  • Function-oriented Programming: focuses on functions and shared global data
  • Object-oriented Programming: focuses on objects, encapsulation, and localized data

Java Programming Paradigms

  1. Encapsulation: Classes encapsulate data and methods
    • Example: Class definitions for books and borrowers
  2. Inheritance: Classes can inherit features from other classes
    • Example: Textbook and reference books inherit from a general book class
  3. Information Hiding: Restricting access to some methods and data
  4. Polymorphism: Same method name can operate differently based on context
    • Example: add method can add numbers or concatenate strings

Applications of Java Programming

  1. Java Core Programming: System and application software development
  2. Java Applet: Developing graphical user interfaces
  3. Internet Programming: Networking, distributed programming, database connectivity (JDBC), and web scripting (Java JSP)

Conclusion

  • Java's versatility makes it suitable for various applications and programming environments
  • Future classes will cover practical aspects of using Java in different contexts

  • Next class will discuss how Java runs across different operating systems and its application in browsers.