Java Programming I
0%
Course Title: Java Programming I
Course No: CSIT.322
Nature of the Course: Theory + Lab
Semester: 6
Full Marks: 60 + 20 + 20
Pass Marks: 24 + 10 + 10
Credit Hours: 3
Course Description
Course Objectives
Course Contents
1.1. Introduction to Java
- History of java
- Characteristics of java
- Architecture of java
1.2. Java Environment and Program Structure
- PATH and CLASSPATH Variables
- Structure of Java Programs
- Compiling & Running Java Programs
1.3. Data Types and Variables
- Review of Data Types
- Comments
- Operators
- Variables
- Converting between Data Types (Type Casting)
- Strings
- Arrays
- Constants
1.4. Utility Classes and Input
- Command Line Arguments
- StringBuffer Class
- Reading form Keyboard using Scanner Class
- Using Math Class
2. Control Flow
4 hrs
2.1. Selection Statements
- if statements
- if....else statements
- else if ladders
- switch statements
2.2. Looping
- While Loop
- Do While Loop
- For Loop
- Enhanced For Loop
2.3. Jump Statements
- Break Statement
- Continue Statement
- Return Statement
3. Class and Objects
6 hrs
3.1. Defining and Using Classes
- Creating Classes
- Defining member variables and methods
- Creating Reference Variables
- Creating Objects
- Using member variables and methods
3.2. Access Specifiers
- Public
- Protected
- Default
- Private
3.3. Class Members and Special Classes
- Static and Non-static members
- Constructors
- This Keyword
- Garbage Collection
- Inner Classes
- Local Classes
3.4. Parameters and Return Values
- Passing Parameters to Methods and Constructors
- Passing Arrays to Methods and Constructors
- Passing Objects to Methods and Constructors
- Returning Values from Methods and Constructors
- Returning Arrays from Methods and Constructors
- Returning Objects from Methods and Constructors
4.1. Overloading and Inheritance
- Method Overloading
- Constructor Overloading
- Creating Subclass
- Different Types of Inheritance
4.2. Method Overriding and Super
- Method Overriding
- Dynamic Method Dispatch
- Using Constructors and Inheritance
- Super Keyword
4.3. Access and Final Modifiers
- Access Specifiers and Inheritance
- Final Methods
- Final Classes
4.4. Relationships and Abstract Classes
- Has-a Relationship (Containership)
- Object Class
- Abstract Classes
5.1. Interfaces
- Defining Interfaces
- Interfaces vs. Classes
- Extending Interfaces
- Implementing Interfaces
- Multiple Inheritance by using interfaces
- Abstract Classes vs. Interfaces
5.2. Packages
- Importance of Packages
- Using Packages
- Creating Packages
6.1. Byte Streams
- Concept of IO Streams
- File Class
- InputStream and OutputStream Class
- FileInputStream and FileOutputStream Class
- BufferedInputStream and BufferedOutputStream Class
6.2. Character Streams
- Reader and Writer Classes
- FileReader and FileWriter Class
- InputStreamReader and OutputStreamWriter Class
- BufferedReader and BufferedWriter Class
6.3. Advanced File Access
- Random File Access
- StreamTokenizer Class
- Using PrintWriter Class
- Using Scanner Class
7.1. Exception Concepts
- Concept of Exception and Exception Handling
- Categories of Exceptions
- Hierarchy of Exception Classes
7.2. Handling Exceptions
- Using Try....Catch
- Multiple Catch Blocks
- Finally Keyword
7.3. Throwing and Custom Exceptions
- Using Throws and Throw Keywords
- Nested Try....Catch
- Creating Exception Classes
8. Multithreading
5 hrs
8.1. Thread Fundamentals
- Concept of Thread and Multithreading
- Main Thread
- Naming a Thread
- Pausing a Thread
- Thread Life Cycle
8.2. Creating and Managing Threads
- Multithreading by Using Runnable Interface
- Multithreading by using Thread Class
- Creating multiple threads
- Joining Threads
- Setting Thread Priority
- Stopping Threads
8.3. Thread Synchronization and Communication
- Thread Synchronization
- Communication between Threads
- Suspending and Resuming Threads
9.1. Generics
- Concept of Generics
- Generic Methods
- Bounded Type Parameters
- Generic Classes
9.2. Collections Framework
- Collections and Collection Framework
- Stack
- Linked List
- Hash Table
- Iterator
- Comparator
Laboratory Works
- 1.Java Programming Exercises
Text Books
- 1.Cay S. Horstmann, Core Java Volume I--Fundamentals Ninth Edition, Prentice Hall, 2012
Reference Books
- 1.Hebert Schildt Java: The Complete Reference, McGraw-Hill Education, Ninth Edition, 2014
- 2.Steven Holzner, Java 7 Programming, Black Book, Dreamtech Press, 2013