BCA 3rd Semester

OOP In JAVA Syllabus

Bachelor In Computer Application

Course Title: Object Oriented Program In JAVA (3 Cr.)

Code No: CACS 204

Year/Semester: II/III

Class Load: 6Hrs./ Week (Theory: 3Hrs, Tutorials:1, Practical: 2Hrs)

Course Description

This course covers preliminary concepts of object-oriented approach in programming with base skills using Java. Control structures, classes, methods and argument passing and iteration; graphical user interface basics, programming and documentation style.

Course Objectives

The general objectives of this course are to provide fundamental concepts of Object Oriented Programming and make students familiar with Java environment and its applications.

Course Contents

Unit 1: Introduction to Java 2 Hrs.

Definition, History of Java, The Internet and Java's Place in IT, Applications and Applets, Java Virtual Machine, Byte Code - not an Executable code, Procedure-Oriented vs. Object-Oriented Programming, Compiling and Running a Simple Program, Setting up your Computer for Java Environment, Writing a Program, Compiling, Interpreting and Running the Program, Handling Common Errors.

Unit 2: Tokens, Expressions and Control Structures 5 Hrs.

Primitive Data Types: Integers, Floating-Point types, Characters, Booleans; User-Defined Data Types, Declarations, Constants, Identifiers, Literals, Type Conversion and Casting; Variables: Variable Definition and Assignment, Default Variable Initializations; Command-Line Arguments; Arrays of Primitive Data Types; Comment Syntax; Garbage Collection; Expressions; Using Operators: Arithmetic, Bitwise, Relational, Logical, Assignment, Conditional, Shift, Ternary, Auto-increment and Auto-decrement; Using Control Statements (Branching: if, switch; Looping: while, do-while, for; Jumping statements: break, continue and return).

Unit 3: Object Oriented Programming Concepts 9 Hrs.

Fundamentals of Classes: A Simple Class, Creating Class Instances, Adding methods to a class, Calling Functions/Methods; Abstraction, Encapsulation, Using this keyword; Constructors: Default constructors, Parameterized constructors; More on methods: Passing by Value, by Reference, Access Control, Methods that Return Values, Polymorphism and Method Overloading, Recursion; Nested and Inner Classes.

Unit 4: Inheritance & Packaging 3 Hrs.

Inheritance: Using extends keyword, Subclasses and Superclasses, super keyword usage, Overriding Methods, Dynamic Method Dispatch; The Object class, Abstract and Final Classes; Packages: Defining a Package, Importing a Package; Access Control; Interfaces: Defining an Interface, Implementing and applying interfaces.

Unit 5: Handling Errors/Exceptions 2 Hrs.

Basic Exceptions, Proper use of exceptions, User defined Exceptions; Catching Exception: try, catch; Throwing and re-throwing: throw, throws; Cleaning up using the finally clause.

Unit 6: Handling Strings 2 Hrs.

Creation, Concatenation and Conversion of a String, Changing Case, Character Extraction, String Comparison, Searching Strings, Modifying Strings, StringBuffer.

Unit 7: Threads 3 Hrs.

Create/Instantiate/Start New Threads: Extending java.lang.Thread, Implementing java.lang.Runnable Interface; Understand Thread Execution, Thread Priorities, Synchronization, Inter-Thread Communication, Deadlock.

Unit 8: I/O and Streams 2 Hrs.

java.io package, Files and directories; Streams: Byte Streams and Character Streams; Reading/Writing Console Input/Output, Reading and Writing files; The Serialization Interface, Serialization & Deserialization.

Unit 9: Understanding Core Packages 3 Hrs.

Using java.lang Package: java.lang.Math, Wrapper classes and associated methods (Number, Double, Float, Integer, Byte, Short, Long, Character, Boolean); Using java.util package: Core classes (Vector, Stack, Dictionary, Hashtable, Enumerations, Random Number Generation).

Unit 10: Holding Collection of Data 3 Hrs.

Arrays and Collection Classes/Interfaces; Map/List/Set Implementations: Map Interface, List Interface, Set Interface; Collection Classes: ArrayList, LinkedList, HashSet and TreeSet; Accessing Collections/Use of an Iterator, Comparator.

Unit 11: Java Applications 8 Hrs.

About AWT & Swing; About JFrame (a top-level window in Swing); Swing components (JLabel, text components like JTextField, JButton); Event Handling in Swing Applications; Layout Management using FlowLayout, BorderLayout, GridLayout; Using JPanel; Choice components like JCheckBox, JRadioButton; Borders; JComboBox & its events; JList & its events with MVC patterns; Key & Mouse Event Handling; Menus in Swing; JTextArea; Dialog boxes in Swing; JTable for Displaying Data in Tabular form; MDI using JDesktopPane & JInternalFrame; Using IDEs like NetBeans, JBuilder for building Java applications using Drag & Drop; Adapter classes.

Unit 12: Introduction to Java Applets 1 Hr.

Definition, Applet lifecycle methods, Build a simple applet, Using Applet Viewer; Adding Controls; Animation Concepts.

Unit 13: Database Programming using JDBC 2 Hrs.

Using Connection, Statement & ResultSet Interfaces for manipulating data with the databases.

Laboratory Works

Laboratory works should be done covering all the topics listed above and a small project work should be carried out using the concepts learnt in this course. Project should be assigned on individual basis.

Teaching Methods

The general teaching pedagogy includes class lectures, group discussions, case studies, guest lectures, research work, project work, assignments (theoretical and practical), and examinations (written and verbal), depending upon the nature of the topics. The teaching faculty will determine the choice of teaching pedagogy as per the need of the topics.

Evaluation

Examination Scheme
Internal AssessmentExternal AssessmentTotal
TheoryPracticalTheoryPractical
2020 (3 Hrs.)60 (3 Hrs.)-100

Text Books

  1. Deitel & Deitel, "Java: How to Program", 9th Edition, Pearson Education, 2011. ISBN: 9780273759768.
  2. Herbert Schildt, "Java: The Complete Reference", 7th Edition, McGraw-Hill, 2006. ISBN: 0072263857.

Reference Books

  1. Bruce Eckel, "Thinking in Java", 4th Edition, Prentice Hall, 2006, ISBN: 0-13-187248-6
  2. Cay Horstmann and Grazy Cornell, "Core Java Volume I-Fundamentals", Ninth Edition, Prentice Hall, 2012, ISBN: 978-0137081899
  3. E. Balagurusamy, "Programming with Java: A Primer", 4th Edition, Tata McGraw Hill Publication, India,