Object-Oriented Programming and Problem Solving Dr. Ramzi Saifan
Expected Background A one-semester college course in programming. I assume you can write a program in some language, understand variables, control structures, Arrays, functions/subroutines. If in doubt, lets talk.
Course Outline 1. Background, basics of O-O, first Java program, 2. Raw materials: types, variables, operators, program control, Arrays, and Strings 3. Classes: declarations, constructors, cleanup & garbage collection 4. Packages, access specifiers, finals, class loading
Course Outline (cont.) 5. Polymorphism, abstract classes, design patterns 6. Interfaces & extends, inner classes, callbacks via inner classes 7. Arrays, container classes, iterators 8. Exception handling, threads 9. Java I/O, networking
Administrative Details Professor: Ramzi Saifan Office: CPE 408 Office Hours: Sun, Tue, Thu 11-12, or knock the door whenever it is open
Administrative Details (cont.) Required Text: Horstmann & Cornell, Core Java, Volume 1 - Fundamentals, Sun Microsystems Press Additional Online Texts: The Java Tutorial Thinking in Java by Bruce Eckel
Administrative Details (cont.) 15 weeks Two 60-minute lectures per week Course notes in PowerPoint. Class attendance will be taken. You will be banned from the final exam if you are absent 6 or more times. Homeworks are complementary to the lectures. No make-up exams Grading corrections: not later than one week from receiving your grade.
Administrative Details (cont.) Homework: 10% Midterm exam 20% Final exam: 30% Lab: 40%
My Policy on Cheating Cheating means submitting, without proper attribution, any computer code that is directly traceable to the computer code written by another person. This doesnt help your job prospects. It is programming
My Policy on Cheating You may discuss homework problems with classmates, after you have made a serious effort in trying the homework on your own. You can use ideas from the literature (with proper citation). You can use anything from the textbook/notes. The code you submit must be written completely by you.
Course Etiquette No cell phones No random comings and goings If you are sleepy, go home If you want to read or surf the Web, please do it elsewhere
Programming Language Evolution Machine language Assembler 3rd generation (COBOL, FORTRAN, C) Specialized (Lisp, Prolog, APL) 4th generation (SQL, spreadsheets, Mathematica) 5th generation (example, anyone?)
Object-Oriented Languages Smalltalk, C++, Java, etc… You can make any kind of objects you want
Making Java Work It's easy as pie to write procedural code in Java. It takes some discipline (an attitude) to think O-O. It's worthwhile to do it.
O-O Languages Everything is an object. A program is a bunch of objects telling each other what to do, by sending messages. Each object has its own memory, and is made up of other objects. Every object has a type (class). All objects of the same type can receive the same messages.