GBIS 710 – INTRODUCTION TO PROGRAMMING
COURSE OUTLINE

Course Objective

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.

Prerequisites

No prior experience in OOP or Java is needed.

Text Books

All books below are recommended. They are listed based on recommendation priority:

  1. Java: How to Program.
    Author(s): Deitel & Associates
    ISBN: 0132222205
    Publisher: Prentice Hall; 6th edition (November 2006)
     
  2. Simply Java : An Introduction to Java Programming.
    Author(s): James Levenick
    ISBN: 1584504269
    Publisher: Charles River Media; 1st edition (September 8, 2005)
     
  3. Java(TM) Essentials for C and C++ Programmers.
    Author(s): Barry Boone
    ISBN: 020147946X
    Publisher: Addison-Wesley Professional (April 16, 1996)
Attendance

Not compulsory, but highly recommended.

Grading

2 Projects 20% each
10 Homework Assignments 5% each
Class Participation 10%

Late assignments will be accepted, but penalized according to the following schedule:

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

All assignments and projects must be submitted via Blackboard's Digital Dropbox before deadline. If you do not receive a confirmation back from the instructor, it is YOUR responsibility to follow up to make sure assignmnet is delivered on time.

All assignments must be done individually, unless otherwise specified. Working together on non-group assignments is not allowed. If you work together on a non-group assignment, both students will be given a zero.

You may use outside code (from web or book) for assignments and projects IF and ONLY IF you ask for permission from the instructor ahead of time. Otherwise, the student will be given a zero.

Schedule

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