Weekly Distribution:
- 15 Weeks X 4 Hours per Week = 60 Hours
- Lecture
- Seminar
- Tutorial
- Hands-on exercises in the lab
Students will learn Java application development using packages, classes, abstract, interface, inner classes, file i/o, graphical user interface, database connectivity, and many more.
- Introduction- Usage of the official Java Development Kit (JDK) and any appropriate third-party development kit for Java
- Git – version control
- JUnit
 
- Java Fundamentals- Data types, variables, and comments
- Arithmetic operators
- Conversion between primitive data types
- Math and String class
- Scope
- Reading keyboard input using different classes
- Displaying formatted output with System.out.printf
 
- Decision Structures- if, if-else, if-else-if
- logical operators
- comparing String objects
- Conditional operator
- switch
 
- Loops- while, do – while, for
- nested loops
 
- Files- Input and output file processing
 
- Classes- Basic class diagram
- Instance fields and methods
- static class members
- Constructors
- Overloaded methods and constructors
- Passing objects as arguments
- Returning Objects from methods
- toString method
- copy method/constructors
- Aggregation (UML)
- this reference
- inner classes
- Class collaboration (UML)
 
- Arrays and ArrayList- Single and multidimensional arrays
- Passing arrays as arguments to methods
- Returning Arrays from methods
- String Arrays
- Arrays of Objects
- Command-line arguments
- Variable length argument lists
- ArrayList/Vector Class
 
- Introduction to basic Search and Sorting algorithm
- Text Processing and Wrapper Classes- Wrapper classes
- String object and related classes (e.g StringBuilder)
 
- Inheritance, Abstract classes and Interfaces- Calling superclass constructor and methods
- Protected members
- Polymorphism
- Abstract classes and abstract methods
- Interfaces
- Anonymous inner classes
 
- Exceptions and Advanced File I/O- Handling and Throwing Exceptions
- Tokenizing Strings
- Binary and Random Access Files
- Object Serialization
 
- GUI and Event Handling through- Swing and/or JavaFX
 
- Database Programming
At the end of this course the successful student will be able to:
- 
Identify the purpose and behavior of a provided code fragment. 
- 
Modify an existing code fragment to change its behavior. 
- 
Modify conditional and iterative structures in a short program. 
- 
Write well-structured, well- documented, well-commented readable code. 
- 
Design, implement, test, and debug a program that uses each of the following fundamental programming constructs: basic computation, simple I/O, basic conditional and iterative structures, and functions. 
- 
Describe the syntax and semantics of conditional structures. 
- 
Use conditional structures. 
- 
Apply the techniques of decomposition to break a program into smaller pieces. 
- 
Describe the role of formal and actual parameters of a function. 
- 
Describe how strings and arrays are allocated, manipulated and used. 
- 
Compare iterative and recursive solutions for elementary problems such as factorial. 
- 
Formulate loop invariants for simple loops. 
- 
Demonstrate loop termination. 
- 
Implement, test, and debug simple recursive methods. 
- 
Explain the philosophy of object- oriented design and the concepts of encapsulation, abstraction, inheritance, interface and polymorphism. 
- 
Describe how the class mechanism supports encapsulation and information hiding. 
- 
Compare and contrast the notions of overloading and overriding. 
- 
Identify the scope of the variables involved in a given code. 
- 
Access and program databases using various classes. 
- 
Design GUI programs. 
- Implement version control.
- Construct class diagram, aggregation, and collaboration.
- Describe the significance and benefits of version control.
- Learn basic version control, assess the role of Git and create online repositories using Git.
- Describe the basic Junit framework, Design effective unit test cases for Java lasses in Junit Execution Environment.
- 
Design class diagrams which describe the structure of a system by modeling its classes, attributes, methods and relationships among objects.
Means of Assessment
| Assignments | 10%-20% | 
| Quizzes | 10%-30% | 
| Midterm Examination | 20%-30% | 
| Final Examination | 25%-40% | 
| Total | 100% | 
**In order to pass the course, students must, in addition to receiving an overall course grade of 50%, also achieve a grade of at least 50% on the combined weighted examination components (including quizzes, tests, exams).
- Farrell. Java Programming. Latest Edition. Course Technology.
- or any alternative textbook approved by the Department.
- Supplementary materials/references will be provided by the instructor
Courses listed here must be completed prior to this course:
- A grade of C or better in CSIS 1175
Courses listed here must be completed either prior to or simultaneously with this course:
- No corequisite courses
Courses listed here are equivalent to this course and cannot be taken for further credit:
- No equivalency courses