Intermediate/Advanced Java


Professor:Sam Sultan []    [Featured Professor]
Class website: [] (or) []
Office hours: By Appointment

+course outline
+grades policy
+student listing
+examples & demos
+homework submission
+student feedback
+student evaluation & comments

Prerequisite Knowledge - pre1   pre2   pre3   pre4   eclipse  
Java Course Sessions -     1   2   3   4   5   6   7   8   9   10   Extra: x1   x2  

ITS - Java Resources - Java Download PC, MAC Install - Java Documentation - Eclipse IDE - SQL*Tester© - Java*Tester©
Site Helpful?


1. Course Objectives:

This course is a foundation course for learning software programming using the Java language. The course will introduce the student to programming concepts, programming techniques, and other software development fundamentals. Students will learn the concepts of Object Oriented programming using Java. The course will present an extensive coverage of the Java programming language including how to write, compile and run Java applications.

The purpose of this course is to learn programming concept and Object Oriented fundamentals using Java. Students will receive a solid understanding of the Java language syntax and semantics including Java program structure, defining classes and instantiating objects, information hiding and encapsulations, inheritance, exception handling, input/output data streams, memory management, collection classes and generics, Oracle and MySql database access through JDBC. User interface using AWT, Swing window components, event handling, multi-threading and networking.

The focus of the course will be on the following topics:

2. Student Learning Outcomes:

Prerequisite for this course is "Introduction to Java" course INFO1-CE9238 or fundamental knowledge of Java.


See [Requirements and Policies]

BOOKS - (Required / Suggested)

Required Books -

Recommended Books -


Your final grade will be based on the following:

Details of Assignment and Evaluation. Grades are FINAL.

Please do not negotiate for a better grade. If you are expecting to receive a grade of an "A" at the end of the semester, then I expect you to attend all sessions, to participate in class, to turn in your homework on time, and to keep up with the class reading material. If you see yourself falling behind do not hesitate to ask for help. This will ensure that you stay current with the class, and will ensure that you get a good grade on your work.

NYU/SPS Grading Scale -

GradeVerbal InterpretationGardation, Conversion and Scale
A Exceptional work
Superior effort
A = 95-100 = 4.0
A- = 90-94 = 3.7
(there is no A+)
B Very good work B+ = 87-89 = 3.3
B = 83-86 = 3.0
B- = 80-82 = 2.7
C Satisfactory work C+ = 77-79 = 2.3
C = 73-76 = 2.0
C- = 70-72 = 1.7
(mininum passing grade)
F Fail. Unsatisfactory work F = below 70 = 0.0
IP Incomplete -
Failure to complete assigned work
(see note below)
IF Incomplete Fail -
Failure to complete assigned work
(see note below)

Notes for IP and IF -

Grade IP - Work to date was passing. Incomplete Pass (IP) may be granted only in extraordinary extenuating circumstances. It is not given automatically but only when it is deemed to have met the criteria and when a contract is signed by both the student and faculty prior to the end of the course. Pre-approval by the Academic Department is required before an Incomplete Grade can be awarded. Students must have completed at least 50% of the course to be considered for an IP. If the terms of the IP are not met within the time frame stated on the contract, the grade will convert to an F and cannot be changed or further appealed. Students will have to retake the course.

NOTE: A student who receives an IP grade may not simply retake a test or exam already taken. The student must do additional new work to remove the IP as outlined in the contract. There is a grade point deduction from the overall grade for late submission of work.

Grade IF - Work to date was failing. Students must have completed at least 50% of the course to receive an Incomplete. An IF that is not removed by the established time in the Contract becomes an F and cannot be changed or further appealed. Students will have to retake the course.

Please Note: The Office of the University Registrar maintains individual records of students enrolled in NYU and is the only department authorized to record an official grade. Final grades are reported on NYU-Albert.
For more information:

If you are a non-credit student, and are not interested in a grade, or you do not submit your homeworks/project or take the exams, then you will receive a grade of an "NE" (Non-Evaluative). A grade of NE is final, and cannot be changed. A grade of NE cannot be applied as partial fulfillment for any NYU certificate program.

To receive your final grade at the end of the semester, follow these steps:

  1. click on
  2. Log into Albert using your net id, at:
  3. Click on "Student Center"
  4. Within your student center, in the "academics" section click on the dropdown: "other academic"
  5. From the dropdown select "grades"
  6. For complete instructions click here


[Week 1] 1 Object Oriented Concepts
Defining Classes
Defining Fields and Methods in a cLass
Instance vs. Static fields and methods
Instantiating Objects
Defining Constructors
Data Encapsulation
Defining getters and setters
Method Overloading
The 'this' variable
Creating objects from within the same class
Creating and Importing Packages
Access Control to Class Members
Reading: Chapter 5
  2 What is a Superclass, what is a Subclass
Class Inheritance
Extending Classes
Overriding Methods
Abstract Classes
The Universal Object Superclass
The Class class
Determining the type of an Object
Inheritance and Polymorphism
Reading: Chapter 6
[Week 2] 3 What are Exceptions
Type of Exceptions
Handling Exceptions
The try/catch Block
Define and Throw your own Exception
Extend a generic Exception
Reading: Chapter 7
  4 Input and Output Streams
Using Readers, using Writers
Working with the File Object
Testing for Files and Directories
File Input and Output
Dealing with Buffers
Reading from Files, writing to Files
Reading: Chapters 8-11
[Week 3] 5 Collection Classes
Differences between Arrays & Collection classes
Types of Data Structures
Java <Generics>
Lists: ArrayList, Vector, LinkedList
Stacks and Queues
Sets: HashSet, TreeSet
Maps (key/value pairs): HashMap, TreeMap
Reading: Chapters 13-14
  6 Using Databases with Java
The SQL Language
Reading data from databases
Inserting, Updating and Deleting Data
Creating database tables and indexes
Connecting Java to a database using JDBC
Working with a ResultSet
Reading: Chapters 24-25
[Week 4] 7 Creating windows
Swing components
Menus, text, buttons & other components
Using containers
The Flow Layout Manager
Creating Dialog Boxes
Adding menus to windows
Event, Event Listeners and Event Handlers

Reading: Chapters 17-19
  8 Understanding Java Threads
Multi-Threading vs. Multi-Processing
Lifecycle and States of a Java Thread
The Thread Class & the Runnable Interface
Creating Threads
User vs. Daemon Threads
Interrupting/Terminating Threads
Making Threads Safe with Synchronization
Communicating Between Threads
Preventing Threads Deadlocks
Reading: Chapter 16
[Week 5] 9 What is a Networking?
The Internet IP Address
Domain Name Server (DNS)
Port Numbers - standard, non-standard
Network Sockets
The Java socket Classes
The InetAddress Class
TCP/IP Communication Protocol
The ServerSocket and Socket Class
UDP/IP Communication Protocol
The DatagramPacket and DatagramSocket Class
Building Client/Server Applications
Reading: Chapter 15 (Thinking in Java)
  10 Java Servlets, JSP and Web Services
Dynamic web output
Tomcat and other JSP/Servlet Containers
Java Server Pages
The HTTP protocol
Java Request/Response Objects
The GET and POST methods
Java Web Services
Client Side Request
Server Side Response
Reading: None
    - Final Exam - (1:15 hours)

All contents © Sam Sultan.
For more information, send e-mail to: