Java Programming

CISC 3400

Professor:Sam Sultan [sam.sultan@fordham.edu]
TA:Amanda Martin [amartin95@fordham.edu]
Office hours:   Tuesday 3:30-4:30pm, via Zoom, make an appointment first
Class website: [storm.cis.fordham.edu/~sultan/java]   (or)   [fh.samsultan.com/java]
Course Days: Wednesdays, 1/17-5/1 (No class 3/27, Final exam 5/8 4:00pm)
Course Hours: 2:30pm-5:15pm
Location: RH - John Mulcahy Hall - room 330

Announcement(s):

+ outline
+ syllabus
+ textbooks
+ grades policy
+ examples & demos
+ storm DB demos
+ attendance Sheet
+ student listing
+ student evaluation
+ student feedback

Weeks/Sessions - 1   2   3   4   5   6   7-9   8   10   11a   11b   12   13   Additional Topics: Eclipse   x1   x2   x3   x4   x5   x6   F


Java Tutorial1 - Java Tutorial2 - Java SE Download - Java EE Download - Java Documentation - Eclipse IDE - Java*Tester© - SQL*Tester©
Site Helpful?

COURSE LEARNING GOALS:

Course Objectives:

This course teaches the students the Java Programming Language. This is course covers Java from begining to advanced topics. The course will introduce the student to the Java programming language and to Java object oriented programming concepts and techniques. Students will learn the fundamentals of object oriented design including object creation including static and instance variables, constructors and methods. Object encapsultion, super and subclassing, inheritance, abstraction, polymorphism, interfaces, and Collection classes. The course will present coverage of Java files and streams, utility classes and other more advanced topics.

The purpose of this course is to learn Java programming and Object Oriented concepts and methodologies. 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 files and data streams, memory management, collection classes and other Java topics.

Student Learning Outcomes:


TEXTBOOKS - (Required / Suggested)

Required Books -

Recommended Books -

GRADES AND GRADING POLICY

Your final grade will be based on the following:

Details of Assignment and Evaluation.

Fordham Grade Scale

Grades are FINAL.

Please do not negotiate for a better grade. Instructor will compute grades to 2 decimal places. 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 homeworks 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.

Please Note: Professor will not entertain any request for assignment "redo" or extra credit assignment to improve grade

Statement on Academic Integrity:

Fordham University is a high level academic institution that takes academic integrity very seriously. Students must present their own original work. Students suspected of violating this policy including cheating and/or plagiarism and/or copying from others or published materials on assignments or exams will be severely penalized for their action.


COURSE OUTLINE:

DATE SESSION TOPIC[s] COVERED
 
[Week 1] 1 The History of Java
The Java Environment
2 Steps - Compiler then Interpreter
The JVM virtual Machine
Downloading and Installing the JDK
What is Path and Classpath
Compiling a Java Program
Running a Java Program
The Java Language Keywords
Object Oriented Concepts
Objects and Classes
Reading: Chapters 1 and 2
 
[Week 2] 2 Introduction to Programming and Computer Science
What is a Programming Language
Common/popular current languages
Computer languages throughout the years
Bits and Bytes
Decimal, Binary, Octal, Hexadecimal
The ASCII character set, Unicode character set
Compiled vs. Interpreted Languages
Programming Constructs & Fundamentals
Software Development as Layers concept
Example of code in various computer languages
Reading: Online Reading and Professor Notes
 
[Week 3] 3 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 3 (pages 39-54)
 
[Week 4] 4 Logic and Program Control
Making Decisions
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 5
 
[Week 5] 5 The String class
Creating a String Object
Mutable vs. Immutable
String and Substring Functions
Comparing Strings for equality and inequality
The StringBuffer class
Reading: Chapter 17
 
[Week 6] 6 Java Arrays
Declaring Arrays
Array of Arrays (Multi-dimensional Arrays)
Iterating through arrays
Sorting arrays
Introduction to Java ArrayList
Reading: Chapter 3 (pages 55-65)
 
[Week 7-9] 7-9 Object Oriented Concepts
Defining Classes
Defining Variables and Methods in a Class
Instantiating Objects
Defining Constructors
Method Overloading
Packages
Access Control to Class Members
Abstraction and Encapsulation
Reading: Chapters 6 and 7
 
[Week 8] 8 - Midterm Exam -
 
[Week 10] 10 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: Chapters 8 and 9
 
[Week 11] 11a What are Exceptions
Type of Exceptions
Handling Exceptions
The try/catch Block
Define and Throw your own Exception
Reading: Chapter 10
 
[Week 11] 11b 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 13 (pages 315-329), and chapter 21
 
[Week 12] 12 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: Online Reading and Professor Notes
 
[Week 13] 13 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 14 and 19
 
[Extra] x1 Utility Classes
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 and Environment variables
Creating enumerations with "enum"
Reading: Online Reading and Professor Notes
 
[Extra] x2 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: Chapter 35
 
[Extra] x3 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 11
 
[Extra] x4 What is 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 Class and Socket Class
UDP/IP Communication Protocol
The DatagramPacket Class and DatagramSocket Class
Building Client/Server Applications
Reading: Chapter 23
 
[Week 15] F - Final Exam -



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