Course Catalogue

Module Code and Title:       CPR203          Java

Programme:                          BCA

Credit Value:                         12

Module Tutor:                       Libni Thomas

General Objective: This module provides students with an overview of the advanced concepts of object oriented programming with Java. In addition, it aims to inculcate knowledge about the design and implementation of small-scale utility programs and the use/integration of built-in utility programs with user-defined utilities in order to develop complete software. It also aims to make students capable of analysing the advantages/disadvantages of different Java programming approaches to choose the most suitable one for a particular scenario.

Learning Outcomes – On completion of the module, learners will be able to:

  1. Apply Object Oriented Programming (OOP) concepts using Java to develop small-scale utility programs.
  2. Use Eclipse IDE to develop java based applications.
  3. Develop complete software using the built-in, library and user-defined functionalities of Java.
  4. Apply code reusability techniques.
  5. Develop library classes for reuse in other applications.
  6. Apply safe and clean java based programming practices.
  7. Generate documentation for applications developed.
  8. Evaluate and decide on the most suited programming approach for the development of a solution for a specific problem.
  9. Identify and include the right Java OOP concepts in order to optimize the performance of an application.
  10. Develop servlets using Java.
  11. Develop basic JSP-based Web applications.
  12. Apply an MVC software architectural pattern on Spring-based applications.

Learning and Teaching Approach:

Approach

Hours per week

Total credit hours

Lecture & discussion

3

45

Lab Practical

2

30

Independent study

3

45

Total

120

 

Assessment Approach:

A. Individual Assignment: Portion of Final Mark: 15%

Students should submit two assignments, each of size 700 words, related to OOPs concepts, Static members, Virtual functions, abstract classes, interfaces and packages to obtain this 15%. The first one will be before the midterm and it constitutes half of the total 15% allocated. They will be submitting an assignment based on basic OOP concepts which will include Encapsulation, Data Abstraction, Polymorphism, and Inheritance and type conversion. The next assignment that is for the other half will be done after the midterm, which will be on topics from Advanced OOP concepts, which includes Static members, Virtual functions, abstract classes, interfaces and packages.

Activity: Solve a problem by writing a program using the OOP concepts mentioned in the question. Students should also include a description on the solution and OOP concepts applied in the program. Assignments will be evaluated on:

20% - Program Logic

20% - Completeness

20% - Debugging

20% - Description of the Solution

20% - Description of the OOP Concepts Used

B. Class Test: Portion of Final Mark: 15%

This is a written test conducted within the class for duration of 30-40 minutes. There will two such tests, one before midterm comprising of topics from the beginning to the quarter point of the subject matter and the other after the midterm comprising of topics from after the midterm to quarter pointer after midterm. Each of these tests require the students to answer/solve 4 questions/problems.

C. Lab Practical Exam: Portion of Final Mark: 15%

These are practical exams conducted in computer labs for duration of 1 hour. There will be two such tests, first one will be a week or two before midterm and the next will be a week or two before the semester end exam. Each will carry 50% of the total 15% allocated. The first lab test will be based on the first half of the subject matter and the next test will be based on the second half.

Activity: Students write two programs to solve two different problems. Both these programs carry equal weightage. Each will be evaluated for the aspects:

35% - Logic

35% - Completion

30% - Debugging and Output

D. Class Participation: Portion of Final Mark: 5%

This component assesses the student’s overall performance in class throughout the semester. This portion is awarded for the active participation in class activities like discussion and question-answer sessions.

Activity: Questions based on previous class are asked to the whole class at the beginning of every lecture session. Students who provide answers are marked (similarly discussion participation is also marked), and these are counted at the end of the semester to assign class participation marks for every student.

E. Midterm Exam: Portion of Final Marks: 10%

This a college wide examination conducted at the half-way into the semester. This examination is conducted for 1 hour and 30 Minutes and it includes all topics till the half-way point in the subject matter.

 

Areas of assignments

Quantity

Weighting

A. Individual Assignment

2

15%

B. Class Test

2

15%

C. Lab Practical Exam

2

15%

D. Class Participation

 

5%

E. Midterm Exam

1

10%

Total Continuous Assessment (CA)

 

60%

Semester-end Examination (SE)

 

40%

 

Prerequisites: CPR101, CSC102, CAP102, CPR202

Subject Matter:

  1. Introduction
    • Brief History
    • Features of java
    • Introduction to eclipse IDE
    • Structure of a java program
    • Data types in Java
    • Variables
    • Arrays
    • Operators
    • Control statements
  2. Classes and objects basics
    • Classes and objects in java
    • Constructors and Destructors
    • Instance variable hiding and ‘this’ keyword
    • Garbage collection
    • Method Overloading
    • Objects as parameters
    • Returning objects
    • Static and final keyword
  3. Inheritance and overriding
    • Inheritance basics
    • Access specifiers
    • Using ‘super’ keyword
    • Inheriting constructors
    • Method overriding
    • Abstract classes
    • ‘Final’ with inheritance
    • String handling
  4. Packages, exception handling, multithreading, streams and I/O
    • Interfaces
    • Packages
    • Exception handling
    • Multithreading
    • Streams in java
    • Performing I/O operations with console and files
    • JDBC connectivity and database access
    • Robust debugging and testing
  5. Applets and AWT
    • Applets
    • Basics
    • Architecture
    • Skelton
    • Simple display methods
    • Repainting
    • Using status window
    • AWT
    • Window components
    • Working with frames
    • Working with graphics
    • Colour and fonts
    • AWT controls
  6. Swing and Java Beans
    • Swing Basics
    • Swing Components
    • Introduction to Java beans
  7. Servlets
    • Servlet Application Architecture
    • Working of a servlet
    • Servlet Container
    • Steps in creating a basic servlet
    • servlet package
    • Servlet life cycle
    • Servlet context
    • Requests and responses
  8. Introduction to JSP
    • JSP architecture
    • Working of JSP
    • JSP syntax
    • Directives
    • Scripting elements
    • Standard actions elements
    • Using servlets from JSP pages
  9. Spring MVC
    • Model View Controller (MVC)
    • Dispatcher Servlet
    • Controller
    • View resolver
    • Forms
  10. Practical components
    • Programs to practice java basics, linear search, string reversal, palindrome, Armstrong number, different series (* and numbers) printing.
    • Matrix Addition, multiplication and transpose to practice java arrays
    • Create the Box class to get familiar with the structure of a java class.
    • Dynamic initialization of arrays using constructors
    • Program of geometrical shapes to practice method overloading.
    • Programs for adding times and complex numbers to get familiar the techniques of passing objects as parameters and returning objects
    • Program to count the number of objects created from a class using static member variable.
    • Box program to illustrate Inheritance.
    • Program to instantiate JFrame class, through Inheritance.
    • Implement multi-level inheritance using Person->Student->In_Service_Student hierarchy
    • Method overriding using Car class.
    • Abstract classes using Figure, Rectangle and Triangle example.
    • Package example with a working directory package and outside package.
    • Create an user defined interface
    • Implement an interface, by implementing Listener Interfaces to detect events on swing controls.
    • An example using exceptions handling.
    • Create two additional threads within an example program and make them run in an interleaved fashion using sleep() method
    • Read/Write to a file from a java program
    • Program to read/write to a database using JDBC.
    • Develop a servlet to process POST and GET requests from a JSP page
    • Develop a basic JSP application for managing contacts
    • Example using MVC architecture on a basic Spring application.
    • Eclipse should be used as a preferred Java Editor

Reading List:

  1. Essential Reading
    • Schildt, H. (2002). Java 2 The complete reference (5th ): McGraw Hill.
    • Kurniawan, B. (2002). Java for the Web with Servlets, JSP, and EJB. New Riders Pub.
    • G, A. (2014). Spring MVC beginner's guide your ultimate guide to building a complete web application using all the capabilities of Spring MVC. Packt Pub.
    • Basham, B., & Sierra, K. (2008). Head first servlets & JSP (2nd ed.). Shroff.
  2. Additional Reading
    • Winder, R., & Roberts, G. (2006).Developing Java software (3rd ed.): Wiley.
    • Kogent Learning Solutions Inc. (2009). Web Technologies: HTML, Javascript, PHP, Java, Jsp, XML and Ajax, Black Book. Dreamtech Press.
    • Kurniawan, B., & Deck, P. (2015). Servlet, JSP & Spring MVC: A tutorial. Brainy Software.
    • Kanetkar, Y. (2012). Let Us Java. BPB PUBLICATIONS.

Date: May 30, 2015