CSC3001 Java Programming
L      T      P     J      C
                                                                            3      0      2     0      4
Pre-requisite: CSC2002
Preamble
This course is an introductory course to Java Programming Language. It introduces fundamental
structured and object-oriented programming concepts and techniques, for developing application using
Java. This will serve as foundation for the advanced studies that solves real world problems.
Objective of the course
    To learn the basic syntax and semantics of the Java language and programming environment
    Understand fundamentals of object-oriented programming in Java, including defining classes,
       invoking methods, Inheritance, Polymorphism, Interfaces etc.
    Have the ability to write a java program to solve specified problems.
    Be able to use Java SDK environment to create, debug and run simple Java programs.
    Introduce event driven Graphical User Interface (GUI) programming
Expected Outcome
After successfully completing the course the student should be able to
    1. Analyze and explain the behaviour of programs involving the fundamental program constructs
    2. Design, write, and test a Java program to implement a solution to a given problem specification.
    3. Identify and describe the properties of a variable such as its associated value, scope and lifetime
    4. Develop Desktop applications & Multi-threaded programs in java.
    5. Update themselves with Advance frameworks of java
Module                                    Topics                                  L Hrs         SLO
1             INTRODUCTION TO JAVA PROGRAMMING                                    5             2
                  Overview of JAVA Language: Introduction, Java Virtual
                  Machine, Simple Java Program, Java Program Structures, Java
                  Tokens, Java Statements, Programming style, Constants,
                  Variables, Data Types, Declaration of Variables, Standard
                  Default Values Scope of Variables, Symbolic Constants.
                  Getting the values of Variables (Buffered Reader, Scanner and
                  Data Input Stream), Displaying the values of Variables
Proceedings of the 37th Academic Council [16.6.2015]        124
2                OPERATORS AND EXPRESSIONS
                 Type Casting, Implementing a Java Program, Command Line
                 Arguments , Operator and Expressions, Java Special Operators,          5   2
                 Precedence of Operators, Associativity, Arithmetic Expressions,
                 Evaluation of Expressions, Mathematical Functions.
3                DECISION MAKING, BRANCHING AND LOOPING
                 Decision Making and Branching: Introduction, Decision Making with
                 IF Statement, Simple IF Statement, The if…else Statement, Nesting of
                 if….else statements, The else if Ladder, The Switch Statement, The?:   5   9
                 Operator. Decision Making and Looping: Introduction, The While
                 statement, do-while statement, for loop, Enhanced for loop, break,
                 continue.
4                ARRAYS AND STRINGS
                 Methods, Arrays, Strings and Vectors: Arrays, Creating an Array, One
                                                                                        6   9
                 dimensional Arrays, Two dimensional Arrays, Strings, String Methods,
                 StringBuffer classes, Wrapper Classes, Vectors
5                CLASSES AND OBJECTS
                 Introduction and Defining a Class, Adding Variables, Adding Methods    6   9
                 ,Creating Objects, Accessing Class members, Constructors
6                INHERITANCE
                 Methods Overloading, Static Members, Nesting of Methods,
                                                                                        6   9,18
                 Inheritance, Extending a class, Visibility Control, Multilevel and
                 Hierarchical Inheritance.
7                INTERFACES AND ABSTRACT CLASSES
                 Interface-Defining, Accessing and Implementing an Interface.
                                                                                        6   9
                 Overriding Methods, Final Variables and Methods, Finalizer Methods,
                 Abstract Methods and Classes.
8                MULTITHREADED PROGRAMMING
                 Multithreaded Programming, Creating Threads, Extending the Thread
                 Class, Lifecycle of a Thread, Thread Exceptions, Implementing the      6   18
                 Runnable Interface, Applet Programming
Proceedings of the 37th Academic Council [16.6.2015]   125
Lab (Indicative List of Experiments (in the areas of )                                  30hrs   9,18
   1. Write a Java program to print sum of the squares of first n natural numbers.
   2. Write a Java program to find the maturity value of a principal(P) due to the
       rate of compound interest(r).
   3. Get a string from the user and perform the following
       (i)      Take the last char and return a new string with the last char added at
                the front and back.("bat"”tbatt”)
       (ii)     Return a new string where the first and last chars have been
                exchanged. (“bat””tab”)
    4. Write a Java Program to sort the string in a given array.
   5. Write a Java code to find the distance from VIT University to major cities of
       India.
      Hint: Create String array of major cities and integer array of
      distances. User gives the city name and the same is searched (use
      binary search) in the respective array and displays result.
   6. Write a Java program which has two classes which initializes a String in its
       constructor
       (i)      A Generic class with 2 type Parameters
       (ii)     Create a Generic Class reference for the above 2 Class and try to
                print the message inside the constructor (Use to string method).
   7. Create a superclass, Student, and two subclasses, Undergrad and Grad. The
       superclass Student should have the following data members: name, ID,
       grade, age, and address.
       The superclass, Student should have one method:
       boolean isPassed (double grade)
       The purpose of the isPassed method is to take one parameter, grade (value
       between 0 and 100) and check whether the grade has passed the requirement
       for passing a course.In the Student class this method should be empty as an
       abstract method. The two subclasses: Grad and Undergrad, will inherit all
       data members of the Student class and override the method isPassed. For
       the UnderGrad class, if the grade is above 70.0, then isPassed returns true,
       otherwise it returns false. For the Grad class, if the grade is above 80.0, then
       isPassed returns true, otherwise returns false.
       Create a test class for your three classes. In the test class, create one Grad
       object and one Undergrad object. For each object, provide a grade and
       display the results of the isPassed method.
   8. Write a Java program which has Interface class for Stack Operations.
       (i)        A Class that implements the Stack Interface and creates a fixed
                  length Stack.
       (ii)       A Class that implements the Stack Interface and creates a Dynamic
                  length Stack.
   9. Write a Java program using Synchronized Threads, which demonstrates
       Producer Consumer concepts.
   10. Write a Java program which handles Mouse and Keyboard Event using
       Applet.
TextBooks
1. E. BalaGuruswamy- Programming with JAVA, A Primer 5th Edition -2014.
Reference Books
1. P. Naughton and H.Schildt - The Complete Reference Java -9th Edition-2014.
2. K. Arnold and J.Gosling- Java Programming Language- Pearson Education -4th Edition– 2006.
Proceedings of the 37th Academic Council [16.6.2015]   126