Skip to main content
  1. Resources/
  2. Study Materials/
  3. Information & Communication Technology Engineering/
  4. ICT Semester 4/
  5. Java Programming (4343203)/
  6. Java Programming Slidev Presentations/

·
Milav Dabgar
Author
Milav Dabgar
Experienced lecturer in the electrical and electronic manufacturing industry. Skilled in Embedded Systems, Image Processing, Data Science, MATLAB, Python, STM32. Strong education professional with a Master’s degree in Communication Systems Engineering from L.D. College of Engineering - Ahmedabad.
Table of Contents

Java Programming (4343203) - Complete 42 Lecture Plan
#

Course Code: 4343203
Institution: Gujarat Technological University (GTU)
Curriculum: Competency-focused Outcome-based Green Curriculum-2021 (COGC-2021)
Semester: IV
Programme: Diploma in Information and Communication Technology
Total Teaching Hours: 42 hours

Course Outcomes (COs)
#

  • a) Write simple Java programs for given problem statements.
  • b) Apply OOP concepts to solve real-world problems.
  • c) Develop programs using inheritance and package concepts.
  • d) Create programs incorporating multithreading and exception handling.
  • e) Build programs using files and the collection framework.

UNIT I: Introduction to Java Programming Language (8 Lectures)
#

Lecture 1: Introduction to Java
#

  • Topics:
    • Java history and evolution
    • Features of Java (Simple, Portable, Robust, Secure, Platform-independent)
    • Applications of Java
  • Learning Outcomes: Understand Java’s significance and features
  • Practical: Install JDK and verify installation

Lecture 2: Java Environment and Program Structure
#

  • Topics:
    • JVM (Java Virtual Machine)
    • JRE (Java Runtime Environment)
    • JDK (Java Development Kit)
    • Bytecode concept
    • Garbage collection basics
  • Learning Outcomes: Understand Java execution environment
  • Practical: Write, compile, debug, and execute “Hello World” program

Lecture 3: Java Program Structure and Comments
#

  • Topics:
    • Basic program structure
    • Compilation and execution process
    • Types of comments (single-line, multi-line, documentation)
    • Coding conventions
  • Learning Outcomes: Write well-structured Java programs
  • Practical: Create programs with proper structure and comments

Lecture 4: Data Types and Variables
#

  • Topics:
    • Primitive data types: byte, short, int, long, float, double, char, boolean
    • Identifiers and naming rules
    • Constants and variables
    • Variable scope and lifetime
  • Learning Outcomes: Declare and use variables with appropriate data types
  • Practical: Programs demonstrating different data types

Lecture 5: Type Conversion and Arrays
#

  • Topics:
    • Implicit and explicit type conversion
    • Type casting
    • One-dimensional arrays
    • Two-dimensional arrays
  • Learning Outcomes: Handle type conversions and work with arrays
  • Practical: Array programs (matrix operations, searching)

Lecture 6: Operators in Java
#

  • Topics:
    • Arithmetic operators (+, -, *, /, %)
    • Bitwise operators (&, |, ^, ~, «, »)
    • Relational operators (==, !=, <, >, <=, >=)
    • Logical operators (&&, ||, !)
  • Learning Outcomes: Use different operators effectively
  • Practical: Find maximum of three numbers using conditional operator

Lecture 7: Assignment and Special Operators
#

  • Topics:
    • Assignment operators (=, +=, -=, *=, /=)
    • Conditional/Ternary operator (?:)
    • Increment and decrement operators (++, –)
    • Operator precedence and associativity
  • Learning Outcomes: Apply complex expressions with operators
  • Practical: Programs using increment/decrement and ternary operators

Lecture 8: Control Statements
#

  • Topics:
    • Decision statements: if, if-else, switch
    • Loop statements: while, do-while, for
    • Jump statements: break, continue, return
  • Learning Outcomes: Control program flow effectively
  • Practical: Reverse digits of a number using while loop, generate first n prime numbers

UNIT II: Object-Oriented Programming Concepts (11 Lectures)
#

Lecture 9: Introduction to OOP
#

  • Topics:
    • Procedure-Oriented Programming vs Object-Oriented Programming
    • Basic OOP concepts overview
    • Advantages of OOP
  • Learning Outcomes: Differentiate POP and OOP paradigms
  • Practical: Compare POP and OOP approaches with examples

Lecture 10: OOP Fundamentals
#

  • Topics:
    • Class and Object concepts
    • Encapsulation principle
    • Polymorphism introduction
    • Abstraction basics
    • Inheritance overview
  • Learning Outcomes: Understand core OOP principles
  • Practical: Create Student class with enrollmentNo and name, instantiate 3 objects

Lecture 11: Classes and Objects
#

  • Topics:
    • Defining classes
    • Instance variables (fields)
    • Methods definition
    • Object creation and manipulation
  • Learning Outcomes: Create and use classes and objects
  • Practical: Create Rectangle class with height and width

Lecture 12: Access Modifiers
#

  • Topics:
    • Access rules: public, private, protected, default
    • Data hiding and encapsulation
    • Getter and setter methods
  • Learning Outcomes: Control access to class members
  • Practical: Demonstrate access modifiers with examples

Lecture 13: Keywords - this, static, final
#

  • Topics:
    • ’this’ keyword usage
    • ‘static’ keyword for variables and methods
    • ‘final’ keyword for constants, methods, and classes
  • Learning Outcomes: Use Java keywords effectively
  • Practical: Demonstrate use of this, static, and final keywords

Lecture 14: Constructors
#

  • Topics:
    • Default constructor
    • Parameterized constructor
    • Copy constructor
    • Constructor chaining
    • Passing objects to constructors
  • Learning Outcomes: Initialize objects using constructors
  • Practical: Rectangle class initialization via constructor

Lecture 15: Method and Constructor Overloading
#

  • Topics:
    • Method overloading concept
    • Constructor overloading
    • Compile-time polymorphism
    • Rules for overloading
  • Learning Outcomes: Implement method and constructor overloading
  • Practical: Shape class with overloaded area() methods for circle and rectangle

Lecture 16: String Class - Part 1
#

  • Topics:
    • String class overview
    • String immutability
    • String methods: charAt(), length()
  • Learning Outcomes: Work with String class basic methods
  • Practical: Use charAt() and length() methods

Lecture 17: String Class - Part 2
#

  • Topics:
    • String methods: contains(), format(), split()
    • String comparison methods
    • String manipulation techniques
  • Learning Outcomes: Use advanced String class methods
  • Practical: Use contains(), format(), split() methods

Lecture 18: User Input and Command Line
#

  • Topics:
    • Scanner class for user input
    • Command-line arguments
    • Reading different data types
  • Learning Outcomes: Handle user input in Java programs
  • Practical: Interactive programs using Scanner

Lecture 19: Review and Practice
#

  • Topics:
    • Review of Unit II concepts
    • Problem-solving practice
    • Common mistakes and best practices
  • Learning Outcomes: Consolidate OOP knowledge
  • Practical: Comprehensive programs combining all Unit II concepts

UNIT III: Inheritance, Packages & Interfaces (11 Lectures)
#

Lecture 20: Introduction to Inheritance
#

  • Topics:
    • Inheritance concept and benefits
    • Types of inheritance: single, multiple, multilevel, hierarchical, hybrid
    • IS-A relationship
    • ’extends’ keyword
  • Learning Outcomes: Understand inheritance fundamentals
  • Practical: Demonstrate single inheritance

Lecture 21: Single and Multilevel Inheritance
#

  • Topics:
    • Single inheritance implementation
    • Multilevel inheritance concept
    • Inheritance chain
    • Super and sub classes
  • Learning Outcomes: Implement single and multilevel inheritance
  • Practical: Demonstrate multilevel inheritance

Lecture 22: Hierarchical Inheritance
#

  • Topics:
    • Hierarchical inheritance concept
    • Multiple classes inheriting from one parent
    • Common base class benefits
  • Learning Outcomes: Implement hierarchical inheritance
  • Practical: Demonstrate hierarchical inheritance

Lecture 23: Method Overriding
#

  • Topics:
    • Method overriding concept
    • Runtime polymorphism
    • Rules for method overriding
    • Dynamic method dispatch
  • Learning Outcomes: Override methods for specialized behavior
  • Practical: Demonstrate method overriding

Lecture 24: Object Class Methods
#

  • Topics:
    • Object class as root class
    • toString() method
    • equals() method
    • hashCode() method
    • finalize() method
  • Learning Outcomes: Override Object class methods
  • Practical: Car class, override toString(), instantiate and print 5 instances

Lecture 25: Interfaces - Part 1
#

  • Topics:
    • Interface concept and syntax
    • Interface vs abstract class
    • ‘implements’ keyword
    • Interface constants
  • Learning Outcomes: Understand interface fundamentals
  • Practical: Basic interface implementation

Lecture 26: Interfaces - Part 2
#

  • Topics:
    • Multiple inheritance using interfaces
    • Interface inheritance
    • Default and static methods in interfaces (Java 8+)
  • Learning Outcomes: Implement multiple inheritance using interfaces
  • Practical: Implement multiple inheritance using interfaces

Lecture 27: Abstract Classes
#

  • Topics:
    • Abstract class concept
    • Abstract methods
    • Concrete methods in abstract classes
    • Abstract vs final classes
  • Learning Outcomes: Create and use abstract classes
  • Practical: Abstract Shape class with Triangle, Rectangle, Circle subclasses

Lecture 28: Final Classes and Methods
#

  • Topics:
    • Final classes (cannot be extended)
    • Final methods (cannot be overridden)
    • Use cases for final keyword
  • Learning Outcomes: Use final keyword appropriately
  • Practical: Demonstrate use of final class

Lecture 29: Packages - Part 1
#

  • Topics:
    • Package concept and benefits
    • Creating packages
    • Package naming conventions
    • Directory structure
  • Learning Outcomes: Organize classes using packages
  • Practical: Create simple packages

Lecture 30: Packages - Part 2
#

  • Topics:
    • Importing packages
    • Static imports
    • Access control with packages
    • Built-in packages (java.lang, java.util, etc.)
  • Learning Outcomes: Use and import packages effectively
  • Practical: Demonstrate use of packages

UNIT IV: Exception Handling & Multithreading (6 Lectures)
#

Lecture 31: Errors and Exceptions
#

  • Topics:
    • Types of errors: compile-time, runtime, logical
    • Exception hierarchy
    • Checked vs unchecked exceptions
    • Common built-in exceptions
  • Learning Outcomes: Distinguish between different types of errors
  • Practical: Examples of different error types

Lecture 32: Exception Handling Mechanisms
#

  • Topics:
    • try-catch blocks
    • Multiple catch blocks
    • finally block
    • Exception propagation
  • Learning Outcomes: Handle exceptions using try-catch-finally
  • Practical: Banking application with exception handling

Lecture 33: Throw and Throws
#

  • Topics:
    • ’throw’ keyword for throwing exceptions
    • ’throws’ keyword in method signature
    • User-defined exceptions
    • Exception chaining
  • Learning Outcomes: Create and throw custom exceptions
  • Practical: User-defined exception for ‘Divide by Zero’

Lecture 34: Multithreading Concepts
#

  • Topics:
    • Thread concept and benefits
    • Multithreading advantages
    • Thread lifecycle (states)
    • Thread creation methods
  • Learning Outcomes: Understand multithreading fundamentals
  • Practical: Basic thread creation examples

Lecture 35: Thread Creation and Management
#

  • Topics:
    • Extending Thread class
    • Implementing Runnable interface
    • Thread priority
    • Thread scheduling
  • Learning Outcomes: Create and manage threads
  • Practical: Execute two threads displaying “Thread1” every 1000ms and “Thread2” every 2000ms

Lecture 36: Thread Synchronization
#

  • Topics:
    • Thread synchronization concept
    • Synchronized methods and blocks
    • Thread communication
    • Exception handling in threads
  • Learning Outcomes: Synchronize threads for thread safety
  • Practical: Execute two threads printing even and odd numbers from 1 to 200

UNIT V: File Handling and Collections Framework (6 Lectures)
#

Lecture 37: Stream Classes and File Operations
#

  • Topics:
    • Stream classes overview
    • InputStream and OutputStream
    • FileInputStream and FileOutputStream
    • Text file vs binary file operations
  • Learning Outcomes: Understand file handling concepts
  • Practical: Basic file operations

Lecture 38: File Reading and Writing
#

  • Topics:
    • Text file creation
    • Reading from text files
    • Writing to text files
    • File handling best practices
  • Learning Outcomes: Perform file read and write operations
  • Practical: Perform read and write operations on text file

Lecture 39: Collections Framework Introduction
#

  • Topics:
    • Collections Framework overview
    • Collection interfaces hierarchy
    • List, Set, Map interfaces
    • Iterator concept
  • Learning Outcomes: Understand Collections Framework structure
  • Practical: Basic collection operations

Lecture 40: List Implementation Classes
#

  • Topics:
    • ArrayList characteristics and usage
    • LinkedList characteristics and usage
    • Vector and Stack
    • Choosing appropriate List implementation
  • Learning Outcomes: Use ArrayList and LinkedList effectively
  • Practical: Use ArrayList for weekdays and LinkedList for months, display both

Lecture 41: Set and Map Collections
#

  • Topics:
    • HashSet characteristics and usage
    • TreeSet and LinkedHashSet
    • HashMap characteristics and usage
    • TreeMap and LinkedHashMap
  • Learning Outcomes: Use Set and Map collections
  • Practical: Create HashSet with colors, iterate using for-each loop; Create HashMap with student data

Lecture 42: Review and Integration
#

  • Topics:
    • Review of all five units
    • Integration of concepts
    • Real-world applications
    • Best practices and coding standards
  • Learning Outcomes: Integrate all Java concepts for complete applications
  • Practical: Comprehensive project combining multiple concepts

Assessment Distribution
#

  • Theory CA (30 marks): 20 marks from tests + 10 marks micro-project
  • Theory ESE (70 marks): End semester examination
  • Practical CA (25 marks): Continuous assessment of practicals
  • Practical ESE (25 marks): Practical examination
  • Total: 150 marks

*Key Practical Exercises (Compulsory - marked with )
#

  1. Lecture 2: Install JDK, write, compile, debug, and execute “Hello World” program *
  2. Lecture 11: Create Rectangle class with height and weight, initialize via constructor *
  3. Lecture 15: Create Shape class with overloaded area() methods for circle and rectangle *
  4. Lecture 24: Create Car class, override toString(), instantiate and print 5 instances *
  5. Lecture 27: Create abstract Shape class with Triangle, Rectangle, Circle subclasses *
  6. Lecture 33: Develop Banking Application with deposits/withdrawals, throwing ‘Not Sufficient Fund’ exception *
  7. Lecture 35: Execute two threads displaying “Thread1” every 1000ms and “Thread2” every 2000ms *
  8. Lecture 38: Perform read and write operations on text file *
  9. Lecture 41: Create HashMap, add 5 students’ data, retrieve names by enrollment number *

Suggested Micro-Projects
#

Choose one for 10 marks CA component:

  1. Student Record Keeping System
  2. Inventory Management System
  3. Library Management System
  4. Bank Management System
  5. Quiz Management System

Learning Resources
#

  • Primary: Java: The Complete Reference by Herbert Schildt
  • Secondary: Programming with Java by E Balagurusamy
  • Online: Oracle Java Documentation, GeeksforGeeks, W3Schools

This 42-lecture plan strictly follows the GTU syllabus 4343203 and ensures comprehensive coverage of all required topics within the allocated teaching hours.