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 )#
- Lecture 2: Install JDK, write, compile, debug, and execute “Hello World” program *
- Lecture 11: Create Rectangle class with height and weight, initialize via constructor *
- Lecture 15: Create Shape class with overloaded area() methods for circle and rectangle *
- Lecture 24: Create Car class, override toString(), instantiate and print 5 instances *
- Lecture 27: Create abstract Shape class with Triangle, Rectangle, Circle subclasses *
- Lecture 33: Develop Banking Application with deposits/withdrawals, throwing ‘Not Sufficient Fund’ exception *
- Lecture 35: Execute two threads displaying “Thread1” every 1000ms and “Thread2” every 2000ms *
- Lecture 38: Perform read and write operations on text file *
- Lecture 41: Create HashMap, add 5 students’ data, retrieve names by enrollment number *
Suggested Micro-Projects#
Choose one for 10 marks CA component:
- Student Record Keeping System
- Inventory Management System
- Library Management System
- Bank Management System
- 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.

