Java Programming Syllabus#
Course Code: 4343203
Institution: Gujarat Technological University (GTU)
Curriculum: Competency-focused Outcome-based Green Curriculum-2021 (COGC-2021)
Semester: IV
Programme: Diploma in Information and Communication Technology
1. Rationale#
This course introduces object-oriented programming (OOP) concepts, techniques, and applications using Java. Java is a simple, portable, robust, secure, and dynamic OOP language designed for developing reliable, high-performance applications across various platforms, including embedded systems and enterprise solutions. The course aims to equip students with skills to develop platform-independent Java applications for advanced technologies like three-tier architecture, cloud computing, web development, and hardware programming.
2. Competency#
Develop Java applications using an object-oriented approach.
3. Course Outcomes (COs)#
Students will demonstrate the following outcomes through practical exercises and theoretical knowledge:
- a) Write simple Java programs for given problem statements.
- b) Apply OOP concepts to solve real-world problems.
- c) Develop programs using inheritance and package concepts.
- d) Create programs incorporating multithreading and exception handling.
- e) Build programs using files and the collection framework.
4. Teaching and Examination Scheme#
Teaching Scheme (Hours) | Total Credits | Examination Scheme | ||||||
---|---|---|---|---|---|---|---|---|
Classroom (Cl) | Tutorial (T) | Practical (P) | (Cl + T/2 + P/2) | Theory CA | Theory ESE | Practical CA | Practical ESE | Total Marks |
3 | 0 | 4 | 5 | 30 | 70 | 25 | 25 | 150 |
Note: Theory Continuous Assessment (CA) includes 10 marks for a micro-project and 20 marks from two tests assessing cognitive domain outcomes.
5. Suggested Practical Exercises#
The following practical outcomes (PrOs) align with the COs. Exercises marked with ‘*’ are compulsory and must be performed at the ‘Precision Level’ of Dave’s Taxonomy.
Sr. No. | Practical Outcomes (PrOs) | Unit | Approx. Hrs. |
---|---|---|---|
1* | Install JDK, write, compile, debug, and execute a “Hello World” Java program. | I | 2 |
2 | Find the maximum of three numbers using a conditional operator. | I | 1 |
3 | Reverse the digits of a number using a while loop. | I | 1 |
4 | Add two 3x3 matrices. | I | 2 |
5 | Generate the first n prime numbers. | I | 2 |
6 | Create a Student class with enrollmentNo and name, instantiate 3 objects. | II | 1 |
7* | Create a Rectangle class with height and weight, initialize via constructor. | II | 1 |
8 | Demonstrate the use of the “this” keyword. | II | 2 |
9 | Demonstrate the use of the “static” keyword. | II | 2 |
10 | Demonstrate the use of the “final” keyword. | II | 2 |
11* | Create a Shape class with overloaded area() methods for circle and rectangle. | II | 2 |
12 | Demonstrate constructor overloading. | II | 2 |
13 | Use String class methods: charAt(), contains(), format(), length(), split(). | II | 1 |
14 | Demonstrate single inheritance. | III | 1 |
15 | Demonstrate multilevel inheritance. | III | 2 |
16 | Demonstrate hierarchical inheritance. | III | 2 |
17 | Demonstrate method overriding. | III | 2 |
18* | Create a Car class, override toString(), instantiate and print 5 instances. | III | 2 |
19 | Implement multiple inheritance using interfaces. | III | 2 |
20* | Create an abstract Shape class with Triangle, Rectangle, Circle subclasses. | III | 4 |
21 | Demonstrate the use of a final class. | III | 2 |
22 | Demonstrate the use of a package. | III | 2 |
23 | Develop a user-defined exception for ‘Divide by Zero’. | IV | 2 |
24* | Develop a Banking Application with deposits and withdrawals, throwing ‘Not Sufficient Fund’ exception. | IV | 2 |
25* | Execute two threads displaying “Thread1” every 1000ms and “Thread2” every 2000ms. | IV | 2 |
26 | Execute two threads printing even and odd numbers from 1 to 200. | IV | 2 |
27* | Perform read and write operations on a text file. | V | 2 |
28 | Use ArrayList for weekdays and LinkedList for months, display both. | V | 2 |
29 | Create a HashSet, add colors, iterate using for-each loop. | V | 2 |
30* | Create a HashMap, add 5 students’ data, retrieve names by enrollment number. | V | 2 |
6. Major Equipment/Instruments and Software Required#
Sr. No. | Equipment/Software | PrO. No. |
---|---|---|
1 | Computer with Windows/Linux/Unix OS | All |
2 | JDK Version 8 or above | All |
3 | Editor (Notepad++, VS Code, Eclipse, NetBeans) | All |
7. Affective Domain Outcomes (ADOs)#
- Motivation and attitude towards learning.
- Learning methodology and communication styles.
- Use of technology.
- Work as a leader/team member.
- Follow ethical practices.
Development Levels (Krathwohl’s Affective Domain Taxonomy):
- 1st Year: Valuing Level
- 2nd Year: Organization Level
- 3rd Year: Characterization Level
8. Underpinning Theory#
Unit | Unit Outcomes (UOs) | Topics and Sub-topics |
---|---|---|
I: Introduction to Java Programming Language | 1a. Describe Java features, applications, and environment setup. 1b. Install Java components. 1c. Write simple programs. 1d. Describe data types, identifiers, constants, variables. 1e. Write programs using arrays. 1f. List operator types. 1g. Use decision and control structures. | 1. Java history, features, applications. 2. JVM, JRE, JDK, bytecode, garbage collection. 3. Environment setup, program structure, compilation, execution, comments. 4. Primitive data types: byte, short, int, long, float, double, char, boolean. 5. Identifiers, constants, variables, type conversion, scope. 6. Arrays: one-dimensional, two-dimensional. 7. Operators: arithmetic, bitwise, relational, logical, assignment, conditional, ternary, increment, decrement. 8. Control statements: if, if-else, switch, while, do-while, for, break, continue, return. |
II: Object-Oriented Programming Concepts | 2a. Differentiate POP and OOP. 2b. List OOP concepts. 2c. Develop programs using classes. 2d. Use this and final keywords. 2e. Use constructors. 2f. Use String class. | 1. POP vs. OOP. 2. OOP basics: class, object, encapsulation, polymorphism, abstraction, inheritance. 3. Defining classes, fields, methods, objects. 4. Access rules: public, private, protected, default. 5. Keywords: this, static, final. 6. Constructors: default, parameterized, copy, passing objects. 7. Method and constructor overloading. 8. String class methods: charAt(), contains(), format(), length(), split(). 9. User input: Scanner, command-line arguments. |
III: Inheritance, Packages & Interfaces | 3a. List inheritance types. 3b. Implement single, multilevel, hierarchical inheritance. 3c. Implement method overriding. 3d. Override Object class methods. 3e. Implement multiple inheritance. 3f. Create and use packages. | 1. Inheritance types: single, multiple, multilevel, hierarchical, hybrid. 2. Method overriding, Object class methods: equals(), toString(), finalize(), hashCode(). 3. Interfaces, multiple inheritance via interfaces. 4. Abstract and final classes. 5. Creating, importing, and accessing packages. |
IV: Exception Handling & Multithreading | 4a. Describe errors and exceptions. 4b. List error types. 4c. Write user-defined exceptions. 4d. Define threads, multithreading, priority, synchronization. | 1. Errors, exceptions, try-catch, multiple catch, throw, throws, finally, user-defined exceptions. 2. Multithreading, thread creation (Thread class, Runnable interface), thread lifecycle, priority, exception handling. |
V: File Handling and Collections Framework | 5a. Describe streams, file handling. 5b. Describe Collections framework. 5c. Use ArrayList and LinkedList. 5d. Use Map classes. | 1. Stream classes, FileOutputStream. 2. Text file creation, reading, writing. 3. Collections framework: ArrayList, LinkedList. 4. Map class: HashMap. |
9. Suggested Specification Table for Question Paper Design#
Unit No. | Unit Title | Teaching Hours | R Level | U Level | A Level | Total |
---|---|---|---|---|---|---|
I | Introduction to Java Programming Language | 8 | 4 | 4 | 6 | 14 |
II | Object-Oriented Programming Concepts | 11 | 3 | 6 | 9 | 18 |
III | Inheritance, Packages and Interfaces | 11 | 3 | 6 | 9 | 18 |
IV | Exception Handling and Multithreading | 6 | 2 | 3 | 5 | 10 |
V | File Handling and Collections Framework | 6 | 2 | 3 | 5 | 10 |
Total | 42 | 14 | 22 | 34 | 70 |
Legends: R = Remember, U = Understand, A = Apply and above (Revised Bloom’s Taxonomy)
10. Suggested Student Activities#
- Undertake micro-projects in teams.
- List Java versions and their features.
- Prepare charts explaining key topics.
- Use virtual labs (e.g., https://java-iitd.vlabs.ac.in/).
- Enroll in MOOCs (Swayam, edX, Coursera, Udemy).
- Solve competitive programming problems (e.g., https://www.codechef.com).
- Form institute-level coding clubs to support slow learners.
11. Suggested Special Instructional Strategies#
- Use MOOCs for teaching.
- Guide students on micro-projects.
- Manage learning environments effectively.
- Diagnose and address missed concepts.
- Encourage personalized and group learning.
- Promote self-learning for simpler topics (20% of content).
- Create opportunities for co-curricular activities.
- Guide students on addressing environmental and sustainability issues using course knowledge.
12. Suggested Micro-Projects#
Students undertake one group-based micro-project (3-5 students in semesters 1-4, max 3 in semesters 5-6) requiring ~16 hours of engagement. Examples:
- Student Record Keeping System
- Inventory Management System
- Airline Reservation System
- Electricity Billing System
- Healthcare Management System
- Library Management System
- Bank Management System
- Medical Management System
- Quiz Management System
- Survey System
- Stock Management System
- Tic Tac Toe Game
- Chess Game
- Battleship Console Game
13. Suggested Learning Resources#
Sr. No. | Title | Author | Publication |
---|---|---|---|
1 | Java: The Complete Reference, 12th Ed. | Herbert Schildt | Tata McGraw Hill |
2 | Programming with Java, 6th Ed. | E Balagurusamy | Tata McGraw Hill |
3 | Programming in JAVA, 2nd Ed. | Sachin Malhotra, Saurabh Choudhary | Oxford |
4 | Head First Java, 3rd Ed. | Kathy Sierra, Bert Bates, Trisha Gee | Shroff/O’Reilly |
14. Suggested Learning Websites#
- https://docs.oracle.com/javase/tutorial/ (Documentation)
- https://www.w3schools.com/java/default.asp (Blog)
- https://www.javatpoint.com/java-tutorial (Blog)
- https://www.geeksforgeeks.org/java/ (Blog)
- https://cse.iitkgp.ac.in/~dsamanta/java/ch3.htm#Introduction (Blog)
- https://www.youtube.com/playlist?list=PLbRMhDVUMngcX5xHChJ-f7ofxZI4JzuQR (Video Series)
- https://onlinecourses.nptel.ac.in/noc23_cs46/preview (Certification)
- https://in.coursera.org/specializations/java-programming (Certification)
- https://www.edx.org/course/software-development-fundamentals (Certification)
- https://www.w3schools.com/java/tryjava.asp?filename=demo_compiler (Online Editor)
15. Course Curriculum Development Committee#
Sr. No. | Name and Designation | Institute | Contact No. | |
---|---|---|---|---|
1 | Shri S. N. Sampat, HOD | LE College, Morbi | 9033777389 | snsampat@gmail.com |
2 | Smt. M. P. Mehta, HOD | Government Polytechnic, Himmatnagar | 9879578273 | manishamehtain@gmail.com |
3 | Smt. M. V. Prajapati, Lecturer | Government Polytechnic, Gandhinagar | 9428049861 | mvprajapati2014@gmail.com |
4 | Shri M. J. Dabgar, Lecturer | Government Polytechnic, Palanpur | 8128576285 | milav.dabgar@gujgov.edu.in |