This course covers object oriented programming (OOP) concepts and principles
such as objects, polymorphism, inheritance, encapsulation, etc. A few design
patterns and best programming practices in solving real-world challenges will
also be covered using an OOP approach. The language used to demonstrate those
principles will be Java. This course will also serve as an introduction to
Java including some advanced concepts such as exceptions, I/O, threads, developing
Swing/GUI applications, etc. The emphasis will be on the concepts of those
technologies rather than covering them in depth. You will, however, be writing
a lot of code in this class. We will be covering the newest version
of Java [1.6 (6.0)].
Instructor
Mo Alkhafaji
malkhafa@dom.edu
Best way to contact instructor is through email (above) or course's BlackBoard.
No prior experience in OOP or Java is needed.
Text BooksAll books below are recommended. They are listed based on recommendation priority:
Not compulsory, but highly recommended.
Grading
| 2 Projects | 20% each |
| 10 Homework Assignments | 5% each |
| Class Participation | 10% |
| Within 24 hours late | 5% off |
| Within 48 hours late | 10% off |
| Within 1 week late | 25% off |
| Within 2 weeks late | 50% off |
| Over 2 weeks late | 100% off |
Course meets every Tuesday and Thursday between May 15 and June 28 (2007).
Class starts at 6:30 PM and ends at 9:30 PM. The schedule below is approximate.
Topics and assignment dates may change and the change will be announced in
class without changing the web syllabus.
| Date | Description | Homework Assigned | Homework Due @ 5:49:59 PM (Blackboard Time) |
| May 15 | Introduction to Java Programming. This intro will cover programming essentials and environment setup. |
Hw1 Java essentials. |
|
| May 17 | Introduction to OOP. This lecture will cover concepts and principles of OOP with emphasis on encapsulation. |
Hw2 OOP concepts. |
Hw1 |
| May 22 | Java language. This lecture covers keywords in Java and static vs. non-static. |
Hw3 Java language. |
Hw2 |
| May 24 | Understanding inheritance. Understanding the Object class. |
Hw4 Inheritance. |
Hw3 |
| May 29 | Understanding inheritance (continued). Introduction to packages, interfaces, classes, methods, etc. |
Hw5 Inheritance. |
Hw4 |
| May 31 | Understanding Polymorphism. | Hw6 Polymorphism |
Hw5 |
| June 05 | The 3 OOP principles wrap-up. I/O and streaming in Java. | Project I You will implement some of the concepts learned earlier in designing an advanced application. |
Hw6 |
| June 07 | Introduction to Generics. |
Hw7 | |
| June 12 | New Java Features. Variable length arguments, Enumerations, Scanner, Concurrency API, AutoBoxing/UnBoxing, etc. | Hw8 | Hw7 |
| June 14 | Introduction to Threads | Project II You will implement some of the concepts learned earlier in designing an advanced application. |
Hw8 |
| June 19 | Threads - Cont. | Hw9 | |
| June 21 | Introduction to Swing. You will learn how to design simple Swing applications. |
Hw10 Swing. |
Project I |
| June 23 | Swing - Cont. You will design Swing applications using LayoutManager. |
Hw9 | |
| June 28 | Swing - Cont. Event listening and handling. |
Hw10, Project II |