S12_CSE142_OBJECT_ORIENTED_PROGRAMMING_CITY

=CSE142: Object Oriented Programming: = BS(CS)

Semester:
Spring 2012

Instructor:
Asma Larik Teaching Assistant : Miss Sameeta

**Course Lead:**
Abdul Wajed

**Credit Hours:**
4 (3 credit hours for theory + 1 credit hour for lab)

Prerequisite(s):
CSE141, CSE145

=
This course describes another paradigm as a better replacement for structured/procedural programming paradigm (CSE141) for managing large programs to segregate code into reusable chunks called classes. Principles of Abstraction, Encapsulation, Inheritance and Polymorphism are explored as well as developing an understanding of code structuring and design philosophies. It requires a thorough understanding of fundamentals of programming. Topics include class definition, constructors, destructors, access control, method overloading and overriding, inheritance, static and dynamic binding, exception handling, object life cycle and garbage collection, and namespaces. Java is used as a tool for implementation of concepts learnt in this course. =====

Books:
**Thinking in Java (eBook)**by Bruce Eckel ( <span style="font-family: 'Times New Roman','serif'; font-size: 19px;">[] <span style="color: black; font-family: 'Times New Roman','serif'; font-size: 19px;">) <span style="color: black; font-family: 'Times New Roman','serif'; font-size: 19px;">**Starting Out in Java 2nd Edition** by Tony Gaddis Pearson 2010 <span style="color: black; font-family: 'Times New Roman','serif'; font-size: 19px;"> <span style="color: black; font-family: 'Times New Roman','serif'; font-size: 19px;">Sun Certified Java Programming Languages <span style="color: black; font-family: 'Times New Roman','serif'; font-size: 19px;">
 * Java: How to Program, **<span style="color: black; font-family: 'times new roman','serif'; font-size: 19px;">by Harvey M. Deitel, Paul J. Deitel <span class="bylinepipe" style="color: black; font-family: 'times new roman','serif'; font-size: 19px;"> ISBN-13: <span style="color: black; font-family: 'times new roman','serif'; font-size: 19px;">978-0136053064 <span class="bylinepipe" style="color: black; font-family: 'times new roman','serif'; font-size: 19px;">|Date: <span style="color: black; font-family: 'times new roman','serif'; font-size: 19px;">March 27, 2009

<span style="font-family: Arial,Helvetica,sans-serif;">Web Resources:
[|//http://www.aonaware.com/OOP2.htm//] []//<span style="color: black; font-family: 'Times New Roman','serif'; font-size: 19px;"> (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//]

<span style="font-family: Arial,Helvetica,sans-serif;">Grading Policy:
<span style="color: black; font-family: 'Times New Roman','serif'; font-size: 19px;">Mid Term = 15% + 15% <span style="color: black; font-family: 'times new roman','serif'; font-size: 19px;">Final = 40% <span style="color: black; font-family: 'Times New Roman','serif'; font-size: 19px;">Assignments = 10% <span style="color: black; font-family: 'Times New Roman','serif'; font-size: 19px;">Quizes= 5% <span style="color: black; font-family: 'Times New Roman','serif'; font-size: 19px;">Project= 15%

<span style="font-family: Arial,Helvetica,sans-serif;">Uploaded Reference Course Outline:
<span style="font-family: Arial,Helvetica,sans-serif;">You may also upload a course outline here.

<span style="font-family: Arial,Helvetica,sans-serif;">Class Time Spent On (In Credit Hours):
<span style="font-family: Arial,Helvetica,sans-serif;">Theory: 2.5 <span style="font-family: Arial,Helvetica,sans-serif;">Problem Analysis: 0.5 <span style="font-family: Arial,Helvetica,sans-serif;">Solution Design: 0.5 <span style="font-family: Arial,Helvetica,sans-serif;">Social and Ethical Issues: 0.5

Structured and conventional programming, Object Oriented Programming || || Passing by value and passing by reference ||  || Overloaded Methods Passing objects as arguments to methods Returning objects from methods || || Sequential Search Algorithm Binary Search || || Case study of Library Management System ||  || How to declare variables in interfaces || ||
 * ==<span style="font-family: Arial,Helvetica,sans-serif;">**Topics Covered in the Course** == ||
 * <span style="font-family: Arial,Helvetica,sans-serif;">S.No || <span style="font-family: Arial,Helvetica,sans-serif;">Date of the lecture || <span style="font-family: Arial,Helvetica,sans-serif;">Topic of Lecture || <span style="font-family: Arial,Helvetica,sans-serif;">Additional Reference Material ||
 * <span style="font-family: Arial,Helvetica,sans-serif;">1 || 2nd Feb 2012 || Overview of Programming, Programming Languages,
 * <span style="font-family: Arial,Helvetica,sans-serif;">2 || 6th Feb 2012 || What is an Object ? What is a class ? What are attributes and methods? || [[file:Lecture2.pptx]] ||
 * <span style="font-family: Arial,Helvetica,sans-serif;">3 || 9th Feb 2012 || Access Modifiers, Accessors and Mutators, Encapsulation and Datahiding || [[file:Lecture3.pptx]] ||
 * <span style="font-family: Arial,Helvetica,sans-serif;">4 || 13th Feb 2012 || What are constructors? Default, N-argument constructor || [[file:Lecture4.pptx]] ||
 * <span style="font-family: Arial,Helvetica,sans-serif;">5 || 16th Feb 2012 || Constructors example and a deeper look covering copy constructor.
 * <span style="font-family: Arial,Helvetica,sans-serif;">6 || 20th Feb 2012 || Example of Constructor Overloading || [[file:Lab Assessment 1.docx]] ||
 * <span style="font-family: Arial,Helvetica,sans-serif;">7 || 23th Feb 2012 || Polymorphism, Method Overloading ||  ||
 * <span style="font-family: Arial,Helvetica,sans-serif;">8 || 27th Feb 2012 || Static Class Members
 * <span style="font-family: Arial,Helvetica,sans-serif;">9 || 1st March || Introduction to 1 dimensional arrays
 * <span style="font-family: Arial,Helvetica,sans-serif;">10 || 5th March || Introduction to 2 dimensional array
 * <span style="font-family: Arial,Helvetica,sans-serif;">11 || 15th March || Introduction to Array List and 2D arrays || [[file:Lecture7.pptx]] ||
 * <span style="font-family: Arial,Helvetica,sans-serif;">12 || 19th March || Inheritance || [[file:Lecture8.pptx]] ||
 * <span style="font-family: Arial,Helvetica,sans-serif;">13 || 22nd March || Inheritance discussed in detail || [[file:Quiz3.docx]] ||
 * <span style="font-family: Arial,Helvetica,sans-serif;">14 || 26th March || Polymorphism and Abstract classes ||  ||
 * <span style="font-family: Arial,Helvetica,sans-serif;">15 || 29th March || Polymorphism example || [[file:Polymorphism.rar]][[file:Lecture 9.pptx]] ||
 * <span style="font-family: Arial,Helvetica,sans-serif;">16 || 2nd April || Interfaces what are interfaces ?
 * <span style="font-family: Arial,Helvetica,sans-serif;">17 || 5th April || Polymorphism in interfaces || [[file:Lecture 10.pptx]]

||
 * <span style="font-family: Arial,Helvetica,sans-serif;">18 || 9th April || Discussion of Aggregation, Composition || [[file:UMLClassDiagram.pdf]] ||
 * <span style="font-family: Arial,Helvetica,sans-serif;">19 || 12th April || Discussion of Case Study of Hospital Management System || [[file:Hospital Management System.docx]] ||
 * <span style="font-family: Arial,Helvetica,sans-serif;">20 || 16th April || Discussion of relationships with focus on the provided case study || =<span style="font-family: Arial,Helvetica,sans-serif;">[[file:AcademicStaff.docx]] = ||
 * <span style="font-family: Arial,Helvetica,sans-serif;">21 || 26th April || Design classes and their relationship using UML modeling

Poject Proposal Ideas / Deliverables || || || ||
 * <span style="font-family: Arial,Helvetica,sans-serif;">22 || 30th April || UML in detail, association, aggregation etc ||  ||
 * <span style="font-family: Arial,Helvetica,sans-serif;">23 || 3rd May || Presentations on Project Proposals ||  ||
 * <span style="font-family: Arial,Helvetica,sans-serif;">24 || 7th May || Exception Handling using try,catch throw and custom exceptions || [[file:Exception Handling.pptx]] ||
 * <span style="font-family: Arial,Helvetica,sans-serif;">25 || 11th May || File I/O binary file, text file || [[file:File I.pptx]]
 * <span style="font-family: Arial,Helvetica,sans-serif;">26 || 14th May || Examples of File I/O codes, Object Serialization, Object Deserialization || [[file:FilingHelpFiles.rar]] ||
 * <span style="font-family: Arial,Helvetica,sans-serif;">27 || 17th May || Lab Assessment 2 ||  ||
 * <span style="font-family: Arial,Helvetica,sans-serif;">28 || 21st May || Introduction to GUI || [[file:Chapter 11.rar]]
 * 29 || 23rd May || Introduction to Applets || [[file:Chapter 13.rar]] ||
 * 30 || 24th May || Introduction to Threads || [[file:THREADS.pptx]] ||

students ||  || GradeBook and a test driver program to call its methods || || concept taught in class. The students themselves understood the problem and created the class, getters, setters, methods required || || one argument, 2 argument and default constructors || || || || ||
 * ==<span style="font-family: Arial,Helvetica,sans-serif;">**Laboratory Projects/Experiments Covered in the Course (optional)** == ||
 * <span style="font-family: Arial,Helvetica,sans-serif;">S.No || <span style="font-family: Arial,Helvetica,sans-serif;">Date of the Lab || <span style="font-family: Arial,Helvetica,sans-serif;">Topic of the Lab || <span style="font-family: Arial,Helvetica,sans-serif;">Additional Reference Material ||
 * <span style="font-family: Arial,Helvetica,sans-serif;">1 || 2nd Feb 2012 || Introduction to Eclipse. Introduction to Programming. A simple program of GCD was developed by
 * <span style="font-family: Arial,Helvetica,sans-serif;">2 || 6th Feb 2012 || Introduction to classes, objects, attributes and methods. Students developed simple class of
 * <span style="font-family: Arial,Helvetica,sans-serif;">3 || 9th Feb 2012 || A simple case study class of television was given to the students demonstrating the encapsulation
 * <span style="font-family: Arial,Helvetica,sans-serif;">4 || 13th Feb 2012 || Constructors discussed. A simple case study of Resistance class was discussed giving an insight into
 * <span style="font-family: Arial,Helvetica,sans-serif;">5 || 16th Feb 2012 ||  || [[file:Amotization.docx]] ||
 * <span style="font-family: Arial,Helvetica,sans-serif;">6 ||  ||   ||   ||
 * <span style="font-family: Arial,Helvetica,sans-serif;">7 || 19th March || ArrayList code examples || [[file:Lab on 19th MArch.zip]] ||
 * <span style="font-family: Arial,Helvetica,sans-serif;">8 || 22nd March || Inheritance Bank Account Activity || [[file:Inheritance.docx]]
 * <span style="font-family: Arial,Helvetica,sans-serif;">9 || 5th April 2012 || Activity on Abstract Classes || [[file:Lab_Polymorphism.docx]]
 * <span style="font-family: Arial,Helvetica,sans-serif;">10 || 5th April 2012 || Activity on Interfaces || [[file:Interfaces in Java.docx]] ||
 * <span style="font-family: Arial,Helvetica,sans-serif;">11 ||  || Lab assessments || [[file:Lab Assessment 1.docx]] ||
 * <span style="font-family: Arial,Helvetica,sans-serif;">12 ||  ||   || [[file:Lab Assessment 1B.docx]] ||
 * <span style="font-family: Arial,Helvetica,sans-serif;">13 || 30th April || Lab on Exception Handling || [[file:Lab OOP Exception handling.docx]] ||
 * <span style="font-family: Arial,Helvetica,sans-serif;">14 ||  ||   || [[file:Lab on Streams.docx]]