Professor: | Sam Sultan | [sam.sultan@nyu.edu] |
Class website: | [oit2.sps.nyu.edu/~sultans/java2w] (or) | [samsultan.com/java2w] |
Course Days: | M/T/W/Th/F | |
Course Hours: | 9:00pm - 5:00pm | |
Location: | 7 E 12th Street |
Announcement(s): |
+
outline
+ books |
+
grades policy
+ student listing |
+
examples & demos
+ homework submission |
+
student feedback
+ student evaluation & comments |
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, collection classes and generics, Oracle and MySql database access through JDBC. User interface using AWT, Swing window components, event handling, multi-threading and networking, web development using JSP, Java Servlets, XML and Web Services and application build and deploy using ANT.
Required Books -
Your final grade will be based on the following:
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 -
Grade | Verbal Interpretation | Gardation, Conversion and Scale | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
A | Exceptional work Superior effort | A = 93-100 = 4.0
A- = 90-92 = 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)
| |
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.
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:
DATE | SESSION | TOPIC[s] COVERED |
[Day 1] | 1 |
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 JDK What is Path and Classpath Compiling and Running a Java Program The java Language Keywords |
---|---|---|
Reading: | Chapter 1 | |
  | ||
[Day 1] | 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 | |
  | ||
[Day 2] | 3 |
Program Logic 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 | |
  | ||
[Day 2/3] | 4 |
Defining Strings Comparing Strings Joining Strings with + String and subsctring methods The StringBuffer Object Using a StringTokenizer Declaring Arrays Initializing and Using Arrays Accessing Array Elements Array of Arrays (Multi-Dimensional Arrays) Iterating through Arrays The Enhanced for (element : array) loop Arrays methods Sorting Arrays Sorting with a Comparator object |
Reading: | Chapter 4, Chapter 15 (1st half) | |
  | ||
[Day 3/4] | 5 |
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 The CLASSPATH Access Control to Class Members |
Reading: | Chapter 5 | |
  | ||
[Day 4] | 6 |
What is a Superclass, what is a Subclass Class Inheritance Extending Classes Overriding Methods Abstract Classes Interfaces Polymorphism The Universal Object Superclass The Class class Determining the type of an Object Inheritance and Polymorphism |
Reading: | Chapter 6 | |
  | ||
[Day 5] | 7 |
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 | |
  | ||
[Day 5] | 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 | |
  | ||
  | ||
[Day 6] | 9 |
Downloading Eclipse Installing Eclipse Launching Eclipse Compile/Build Java Classes Run Java Classes Pass JVM Parameters to Programs Debugging Programs with Eclipse |
Reading: | None | |
  | ||
[Day 6] | 10 |
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 Iterators |
Reading: | Chapters 13-14 | |
  | ||
[Day 7] | 11 |
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 | |
  | ||
[Day 7] | 12 |
Java and XML XML Document structure XML DOM (Document Object Model) Working with XML Data Accessing XML Data Directly Using XML Parsers |
Reading: | Chapters 22-23 | |
  | ||
[Day 8] | 13 |
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 | |
  | ||
[Day 8] | 14 |
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 | |
  | ||
[Day 9] | 15 |
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) | |
  | ||
[Day 9] | 16 |
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 |
Reading: | None | |
  | ||
[Day 10] | 17 |
The Date Class The Calendar Class The GregorianCalendar Class The Format Class The DateFormat Class The SimpleDateFormat Class The NumberFormat Class The DecimalFormat Class The Random Class Regex - Regular Expression The System Class |
Reading: | Chapter 15 (2nd half) | |
  | ||
[Day 10] | 18 |
Building a Java Application Creating JAR Files Manifest Files Using ANT ANT Build Files ANT Tasks and subTasks |
Reading: | None | |
  | ||
[Day 10] |
- Final Exam - (2 hours) |