Professor: | Sam Sultan | [sam.sultan@nyu.edu] [Featured Professor] |
Class website: | [workshop.sps.nyu.edu/~sultans/java2] (or) | [samsultan.com/java2] |
Office hours: | By Appointment |
Announcement(s): |
+syllabus +course outline |
+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, 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:
Prerequisite for this course is "Introduction to Java" course INFO1-CE9238 or fundamental knowledge of Java.
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 = 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)
| |
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 |
  | ||
[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 The CLASSPATH 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 Interfaces Polymorphism 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 Iterators |
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) |