F12_CSE142_OBJECT_ORIENTED_PROGRAMMING_CITY

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

Semester:
Fall 2012

Instructor:
Asma Sanam Larik

**Course Lead:**
Asma Sanam Larik

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

Prerequisite(s):
CSE141, CSE145

Course Description:
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 ( []) **Starting Out in Java 2nd Edition** by Tony Gaddis Pearson 2010  Sun Certified Java Programming Languages 
 * Java: How to Program, **by Harvey M. Deitel, Paul J. Deitel  ISBN-13: 978-0136053064 |Date: March 27, 2009

Web Resources:
[|//http://www.aonaware.com/OOP2.htm//] []//<span style="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="font-family: 'Times New Roman',serif; font-size: 19px;">Mid Term = 15% + 15% <span style="font-family: 'times new roman',serif; font-size: 19px;">Final = 40% <span style="font-family: 'Times New Roman',serif; font-size: 19px;">Assignments = 10% <span style="font-family: 'Times New Roman',serif; font-size: 19px;">Quizes= 5% <span style="font-family: 'Times New Roman',serif; font-size: 19px;">Project= 15%

Class Time Spent On (In Credit Hours):
Theory: 2.5 Problem Analysis: 0.5 Solution Design: 0.5 Social and Ethical Issues: 0.5

|| || class of Car, Vehicle, Student. What are attributes and whatr are methods || || Passing Objects as parameters Returning Objects from methods || || One- Dimensional array passing and returning from methods || || Static Field and methods Array List || || Concept of overriding methods Parent chaining || Lecture 8 continued || Dynamic Binding || || their problems ||  ||
 * ==**<span style="font-family: Arial,sans-serif;">Topics Covered in the Course **== ||
 * S.No || Date of the lecture || Topic of Lecture || Additional Reference Material ||
 * 1 || 3rd Sept 2012 || Introduction to Programming || [[file:lecture1.pptx]] ||
 * 2 || 6th Sept 2012 || Introduction to Computing and basic concepts ||  ||
 * 3 || 10th Sept 2012 || Java fundamentals with sample examples || [[file:Lectureonfuncamentals.pptx]]
 * 4 || 13th Sept 2012 || Decision Structures and Loop Structures || [[file:LectureonDecisionStructures.pptx]]
 * 5 || 17th Sept 2012 || Introduction to classes and objects. How to create
 * 6 || 20th Sept 2012 || Introduction to Accessors, Mutators, Constructors || [[file:Lecture6 on class and constructorss.pptx]] ||
 * 7 || 24th Sept 2012 || Type of Constructors 0-arg, 1-arg, 2-arg ||  ||
 * 8 || 27th sept 2012 || Class Rational Numbers code discussed in detail ||  ||
 * 9 || 1st Oct 2012 || Overloading of Methods, Objects
 * 10 || 4th Oct 2012 || Class PolynomialNumbers discussed in detail
 * 11 || 15th Oct 2012 || Two - dimensional arrays
 * 12 || 18th Oct 2012 || Inheritance || [[file:Lecture8.pptx]] ||
 * 13 || 22nd Oct 2012 || Inheritance continued
 * 14 || 25th Oct || Introduction to Polymorphism
 * 15 || 29th Oct || Examples of Polymorphism ||  ||
 * 16 || 1st Nov || Abstract classes and Abstract methods ||  ||
 * 17 || 5th Nov || Interfaces || [[file:Lecture 10.pptx]] ||
 * 18 || 8th Nov || Polymorphism in interfaces example ||  ||
 * 19 || 12th Nov || Concept of UML Modeling || [[file:UMLClassDiagram.pdf]] ||
 * 20 || 15th Nov || Concepts of Aggregation, Composition and Association ||  ||
 * 21 || 19th Nov || Case Studies of UML modeling discussed || [[file:Lab UML.docx]] ||
 * 22 || 22nd Nov || Project Presentations || Students presented their class diagrams ||
 * 23 || 26th Nov || Midterm 2 Exam ||  ||
 * 24 || 3rd Dec || Exception Handling || [[file:Exception Handling.pptx]] ||
 * 25 || 6th Dec || Exception Handling ||  ||
 * 26 || 10th Dec || File I/O || [[file:File I.pptx]] ||
 * 27 || 13th Dec || File I/O ||  ||
 * 28 || 20th Dec || Graphics/ Applets using Netbeans ||  ||
 * 29 || 24th Dec || Problems discussed regarding Midterm 2 ||  ||
 * 30 || 31st Dec || Threads || [[file:THREADS.pptx]] ||
 * 31 || 31st Dec || Students presented version 1 of their project and discusssed

|| Operations on a 2D array ||
 * ==**<span style="font-family: Arial,sans-serif;">Laboratory Projects/Experiments Covered in the Course (optional) **== ||
 * S.No || Date of the Lab || Topic of the Lab || Additional Reference Material ||
 * 1 ||  ||   ||   ||
 * 2 ||  ||   ||   ||
 * 3 || 10th Sept 2012 || Java Fundamentals examples discussed in lab || [[file:labActivity.txt]] ||
 * 4 || 13th Sept 2012 || Lab on Java fundamentals ||  ||
 * 5 || 17th Sept 2012 ||  || [[file:Lab Assignment 1 f12.docx]] ||
 * 6 || 20th Sept 2012 || Lab on classes and objects || [[file:Lab_1_OOP.docx]] ||
 * 7 || 24th Sept 2012 || Lab on classes || [[file:Lab_2OOP.docx]] ||
 * 8 || 27th Sept 2012 || Example FeetInches Class || [[file:FeetInches Class.docx]] ||
 * 9 ||  ||   || [[file:Lab OOP 3.docx]] ||
 * 10 || 1st Oct 2012 || Amortization Lab Activity || [[file:Amotization.docx]] ||
 * 11 || 4th Oct 2012 || Overloading Methods and Constructors || [[file:Pay.java]]
 * 12 || 15th Oct 2012 || Examples of 2D arrays and arraylist ,

||
 * 13 || 25th Oct 2012 || Lab on Inheritance || [[file:Inheritance.docx]] ||
 * 14 || 5th Nov 2012 || Lab on Abstract Classes and Inheritance || [[file:Lab Polymorphism.docx]]

|| || == ||
 * 15 || 12th Nov 2012 || Lab on Interface || [[file:OOP Lab Interface.docx]]
 * 16 ||  || Lab On exception handling + filing || [[file:LabEHFiling.docx]]