Introduction to Java


Professor:Sam Sultan []
Class website: [] (or) []
Course Days: Mondays
Course Hours: 6:00pm - 9:30pm

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

Session - 1a 1b   2   3   4a 4b   5/6   7   8   9   10   Extra Topics: Eclipse   Swing  

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


Learn the fundamental concepts of object-oriented programming and the Java programming language. Understand Java's write-once, run-anywhere philosophy and the Java Virtual Machine, which allows any Java program to run on any platform. Gain a solid understanding of the Java language syntax and semantics, including Java program structure, data types, program control flow, defining classes and instantiating objects, information hiding and encapsulation, inheritance, method overloading and overriding, exception handling, input/output data streams, memory management, and some Swing UI window components. Reinforce these new concepts with hands-on exercises and a complete Java programming project.


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, data types, program control flow, defining classes and instantiating objects, information hiding and encapsulations, inheritance, exception handling, input/output data streams, memory management and Swing window components.

2. Student Learning Outcomes:

BOOKS - (Required / Suggested)

Required Books -

Suggested Books -


Your final grade will be based on the following:

Details of Assignment and Evaluation.

NE and P/F Grades
If you are not interested in receiving a grade, and you simply require an NE (non-evaluative) or P/F (pass/fail) grade, please fill out the appropriate form listed

NYU SPS Grading Scale and Policies>

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 (unless you previously notify me), to participate in every 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.

To Receive Your Final Grade at the end of the semester, follow these steps:

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


[Week 1] 1a 1b Introduction to Programming
What is a Programming Language
Compiled vs. Interpreted Languages
Procedural vs. Object Oriented Languages
The Java Environment
The Java Compiler, The JVM Java Virtual Machine
Downloading and Installing the SDK
What is Path and Classpath
Compiling and running a Java Program
The Java Language Keywords
Reading: Chapter 1
[Week 2] 2 Declaring Variables
Java Primitive Data Types
Variable Assignment
Casting to another Data Type
Automatic Data Type Promotion
Mathematical Operators
Operator Precedence
Comments and Documentation
Reading: Chapter 2
[Week 3] 3 Decision Making
The if statement, and the switch statement
Loops and Iterations
The for and while statements
Boolean Expressions
Logical Operators
Conditional Operators
Variable Scope
Creating and Using Methods
Reading: Chapter 3
[Week 4] 4a 4b The String class
String and Substring Operations
Comparing Strings for equality and inequality
Array of Strings
StringBuffer Objects
Declaring Arrays
Array of Arrays (Multi-dimensional Arrays)
Iterating through arrays
Sorting arrays
Sorting arrays with a comparator object
Introduction to Java ArrayList
Reading: Chapter 4
[Week 5/6] 5/6 Object Oriented Concepts
Defining Classes
Defining Variables and Methods in a Class
Instantiating Objects
Defining Constructors

- Midterm Exam (week 6) -

Method Overloading
Access Control to Class Members
Abstraction and Encapsulation
Reading: Chapter 5
[Week 7] 7 What are Exceptions
Type of Exceptions
Handling Exceptions
The try/catch Block
Define and Throw your own Exception
Reading: Chapter 7
[Week 8] 8 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 9] 9 Class Inheritance
Abstract Classes
Extending Classes
What is a Superclass, what is a Subclass
The Universal Superclass
The toString( ) Method
Determining the type of an Object
Inheritance and Polymorphism
Reading: Chapter 6
[Week 10] 10 - Final Exam -
[Extra] Swing Creating windows
Swing components
Menus, text, buttons & other components
Using containers
The Flow Layout Manager
Adding menus to windows
Event Handling, Event Listeners
Reading: Chapters 17-19

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