21SC1203 Computational Thinking For Object Oriented Design Modified
21SC1203 Computational Thinking For Object Oriented Design Modified
Syllabus:
Classes and Objects: object, class vs object and object instantiation. Abstraction and
encapsulation using accessors and mutators. Constructors – default, user-defined and parametrized.
Introduction to Java API, Scanner class, console-based IO. Constructor chaining, this keyword,
array of objects, aggregation vs composition, ArrayList, SOLID design principles. Inheritance,
method overriding, dynamic polymorphism, dynamic method dispatch, Singleton classes. Inner
classes.
Abstraction & Applications: Abstract classes, abstract methods, final keyword for methods and
classes, template pattern, Introduction to interfaces, Interfaces vs implementation, Factory classes,
factory method pattern, Generic classes, application of interfaces to build abstract data structures,
Java API for Vector and LinkedList, comparable, comparator and cloneable, iterator interfaces.
Anonymous classes, Decorator pattern. Event driven programming with event listeners.
Exception handling & File IO: Introduction to exceptions & errors, Java API for exceptions, try,
catch, finally, throw and throws keywords, try with resources, user defined exceptions. File IO,
byte streams, character streams, wrapper classes for Object IO using serializable. String based
algorithms using StringBuffer and String Builder, String constant pool, regex, garbage collection.
Text Books:
1. Introduction to Java Programming, Comprehensive Version, 10th Edition by Y.
Daniel Liang.
2. Herbert Schildt, “The Complete Reference Java”, 7th edition TMH.
3. Timothy A. Budd, “An Introduction to Object-Oriented Programming”, 3/e,
Pearson, 2008.
Reference Books: