F10_CSE142_OOPT

= CSE142: Object Oriented Programming Techniques =

Semester:
Fall 2010 ==Instructor: == Imran Khan

**Prerequisites:** CSE 141 Introduction to Programming ==Program: == BS(CS)

===**Course Description ** === This course teaches programming using object oriented programming techniques on windows platform in Java. Students can use their preferred IDE such as Eclipse or Netbeans, but most classroom demonstrations will be in Eclipse. Students will complete several programming assignments to develop their problem-solving skills and to gain experience in detecting and correcting software errors. 

 Learning Objective
 This course is designed to provide an understanding of object oriented programming concepts: abstraction, inheritance, Encapsulation, polymorphism, overloading etc. It is an informative, entertaining and challenging course. Upon successful completion of this course you will use problem-solving and logic skills to develop Windows applications in Java using object-oriented programming techniques.  

Outline
** // Introduction // ** What is object? What is Object Oriented Programming? UML introduction, Programming Techniques, Characteristics of OOPs, Constructor, Grade book case study.

Class, Objects, Methods and Instance Variables, Declaring a Class with a Method and Instantiating an Object of a Class, declaring a Method with a Parameter, set and get Methods, Access control: public and private.
 * // Introduction to Classes and Objects // **

Method overloading, static Methods, static Fields and Class Math, recursion, examples using recursion, Factorial, Fibonacci.
 * // Method overloading & Recursive Method // **

Controlling access to member, Referring to the Current Object’s Members with the this Reference, Overloaded Constructors, default and no argument constructor, Composition, // has-a-relationship //Enumerations, Garbage Collection, static Class Members, static Import, final instance variable,
 * // A deeper look to Classes and Objects // **

Data abstraction and encapsulation, Package access, Creating Packages
 * // Data abstraction and Encapsulation // **

Superclasses and Subclasses, protected Members, Constructors in Subclasses, Object Class.
 * // Inheritance // **

Demonstrating Polymorphic Behavior, Abstract Classes and Methods, Case study: Payroll system using Polymorphism, final Methods and Classes, Downcasting.
 * // Polymorphism // **

Creating and Using Interfaces, Case study: Payroll System using Interfaces, Declaring Constants with Interfaces, common Interfaces of the Java API.
 * // Interfaces // **

Simple GUI-Based Input/Output with JOptionPane, Swing Components, TextFields and Event Handling with Nested Classes, Common GUI Event Types and Listener Interfaces, JButton, JComboBox, JList, JPanel, JTextArea, Key-Event Handling.
 * // GUI Components // **

Generic Methods, Implementation and compile-Time Translation, Overloading Generic Methods Generic Classes.
 * // Generics // **

Overview, try catch, finally block, predefine exception handler, Chained Exceptions, declaring new exception types, Preconditions and Postconditions, java exception hierarchy.
 * // Exception Handling // **

Class arrays, Interface Collection and Class Collections, Lists, Array List, Iterator, Linked Lists, Stack, Queue, Sets, Maps,
 * // Collections // **

Files and Streams using Class, Class File, sequential access text files, object serialization
 * // Files and Streams (Optional) // **

RowSet Interface, Java DB/Apache Derby, PreparedStatements.
 * // Accessing Databases with JDBC (Optional) // **

Introduction to Anroid applications, iphone applications, Symbian applications, Hello world program.
 * // Object Oriented Programming for Mobile Applications (Optional) // **

=== **Tools ** ===
 * Java Standard Edition (SE) and JDK 6
 * Eclipse Classic 3.4.2
 * Rational Rose

 Web link
// http://www.mycplus.com/tutorials/object-oriented-programming/oop-techniques/ // // http://www.aonaware.com/OOP2.htm // // http://java.sun.com/j2se/ (Standard Edition) // // http://www.eclipse.org // // http://java.sun.com/docs/books/tutorial/java/ // // http://www.javaworld.com // // http://jcp.org // // http://eclipsetutorial.sourceforge.net/totalbeginner.html //