Java 2 Week Summer Intensive

Course: INFO1-CE9226
Summer 2017

Professor:Sam Sultan [sam.sultan@nyu.edu]
Class website: [oit2.scps.nyu.edu/~sultans/java2] (or) [samsultan.com/java2]
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

Session - 1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18  


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

COURSE LEARNING GOALS:

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, 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.

2. Student Learning Outcomes:


COURSE REQUIREMENTS AND POLICIES:

See [Requirements and Policies]


BOOKS - (Required / Suggested)

Required Books -

Recommended Books -

GRADES AND GRADING POLICY

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 = 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)

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: http://www.scps.nyu.edu/academics/academic-policies-and-procedures/graduate-academic-policies-and-procedures.html

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 http://www.scps.nyu.edu/academics/noncredit-offerings/academic-noncredit-policies-and-procedures.html#Obtaining_Grades
  2. Log into Albert using your net id, at: https://admin.portal.nyu.edu/psp/paprod/EMPLOYEE/EMPL/h/?tab
  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


OUTLINE

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)




All contents © Sam Sultan.
For more information, send e-mail to: sam.sultan@nyu.edu