CSE310: PROGRAMMING IN JAVA
L:3 T:0 P:2 Credits:4
Course Outcomes:
- CO1 :: explain basic constructs of Java programming and apply them to solve the real-world problems
- CO2 :: illustrate the Object-oriented programming principles to write efficient and reusable codes.
- CO3 :: demonstrate the concept of inheritance to reuse and extend the features of existing class with access control
- CO4 :: create the uses of abstract classes, interfaces and Lambda expressions
- CO5 :: manage errors and perform I/O operations using exception handling and file streams.
- CO6 :: utilize collections, generics, and JDBC for advanced Java applications.
Unit I
- Introduction to Java : History and Features of Java, Java program structure, Writing simple Java class and main() method, Command-line arguments, Understanding JDK, JRE and JVM
- Data In the Cart : Using primitive data types, Type conversion, Keywords, Identifiers, Variables, Access modifiers, static keyword, Wrapper class
- Operators : Working with Bit-wise, arithmetic, logical, and relational operators, Unary, assignment and Ternary operator, Operator precedence
- Conditional Statements : Using if/else constructs and switch-case statements
Unit II
- Loops : Working with for loop, while loop, do-while loop and for-each loop
- Arrays and Enums : Fundamentals about Arrays, Multi-dimensional arrays, Array Access and Iterations, Using varargs, Enumerations
- OOP Concepts : Basics of class and objects, Writing constructors and methods, Overloading methods and constructors, this keyword, initializer blocks
- String Class : Constructors and methods of String and String Builder class
Unit III
- Inheritance and Polymorphism : Inheritance, Method overriding, super keyword, Object class and overriding toString() and equals() method, Using super and final keywords, Instanced operator
- Abstract Class and Interface : Abstract method and abstract class, Interfaces, static and default methods.
Unit IV
- Nested Class and Lambda Expressions : Nested Class, Understanding the importance of static and non-static nested classes, Local and Anonymous class, Functional Interface, Lambda expressions
- Utility Classes : Working with Dates
- Exceptions and Assertions : Exception overview, Exception class hierarchy and exception types, Propagation of exceptions, Using try, catch and finally for exception handling, Usage of throw and throws, handling multiple exceptions using multi-catch, Autoclose resources with try-with resources statement, Creating custom exceptions, Testing invariants by using assertions
Unit V
- I/O Fundamentals : Describing the basics of input and output in Java, Read and write data from various sources, Using streams to read and write files, Writing and read objects using serialization
- Generics : Creating a custom generic class, Using the type inference diamond to create an object, Using bounded types and Wild Cards.
Unit VI
- Collections : Creating a collection by using generics, Implementing an ArrayList, Implementing TreeSet using Comparable and Comparator interfaces, Implementing a HashMap, Implementing a Deque.
- Java Database Programming : Introduction to JDBC, JDBC Drivers, CRUD operation Using JDBC, Connecting to non-conventional Databases.
List of Practicals / Experiments:
- Exception Handling • Program to demonstrate the use of all the keywords used for exception handling and need of assertion
- Multithreading • Program to implement multithreading using Lambda Expressions.
- Creating a Java Main Class • Program to implement a java class.
- Managing Multiple Items • Program to demonstrate the use of list of items.
- Describing Objects and Classes • Program to demonstrate the instantiation of class and accessing the attributes using object of class.
- Manipulating and Formatting the Data in Your Program • Program to demonstrate the uses of String and StringBuilder
- Using Inheritance • Program to demonstrate the inheritance and its importance using Swing Components.
- Overriding Methods, Polymorphism, and Static Classes • Program to implement polymorphism and using proper access control.
- Abstract and Nested Classes • Program to demonstrate the use of abstract class and nested class.
- Java IO • Program to implement read and write operation using console and File.
Text Books:
- PROGRAMMING WITH JAVA by E. BALAGURUSAMY, MCGRAW HILL EDUCATION
References:
- JAVA THE COMPLETE REFERENCE by HERBERT SCHILDT, MCGRAW HILL EDUCATION
- INTRODUCTION TO JAVA PROGRAMMING by Y. DANIEL LIANG, PEARSON