Professor: | Sam Sultan [sam.sultan@nyu.edu] | |
Class website: | [workshop.sps.nyu.edu/~sultans/java] (or) | [samsultan.com/java/] |
Course Days: | Mondays | |
Course Hours: | 6:00pm - 9:30pm |
Announcement(s): |
+syllabus +course outline |
+grades & evaluation +student listing |
+examples & demos +homework submission |
+student feedback +student evaluation & comments |
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 much more. Reinforce these new concepts with hands-on exercises and complete Java programming projects.
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.
Required 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
DATE | SESSION | TOPIC[s] COVERED |
[Week 1] | 1a 1b |
Introduction to Computer Science and 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 Packages 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 |
Using the Scanner class Using the Console class Using the Java IO package 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 Using the Java NIO package |
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 |