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