المواد
|
CPCS 203
Course Learning Outcomes (CLO) and Student Outcomes (SO)
- Apply String manipulation using Java programming language. (1)
- Apply File Input and Output operations using Java programming language. (1)
- Apply the fundamental concepts of object identity, type constructors, encapsulation, and information hiding, that underlie object-oriented approaches to software development. (1)
- Illustrate classes and objects, and how to design a program as a collection of communicating objects. (2)
- Construct the UML diagrams that depict the Java program structure. (2)
- Analyze a real-world situation in an object-oriented way by interpreting the factors that contribute to a good object-oriented solution. (2)
- Demonstrate the fundamentals and the relationship between object-oriented inheritance and subclasses. (2)
- Apply object-oriented principles of polymorphism using real life examples. (1)
- Construct an arrayList and apply storing, retrieving, and manipulating objects in an ArrayList. (1)
- Apply interfaces and abstract classes to extend the functionality of classes. (1)
- Design classes and class hierarchies from problem statements using sub classes, abstract classes, and interfaces to achieve polymorphism in object-oriented software. (2)
- Describe the benefit of generic classes. (1)
- Apply exception handling mechanisms in Java to make programs more robust. (2)
Grade Distribution
Assessment
|
Percentage
|
Quizzes
|
5
|
Two- Assignments
|
20
|
Lab Activities
Final Lab Exam
|
5
15
|
Midterm Exam
Comprehensive Final Exam
|
25
30
|
Deliverables’ Assignments and Important Dates
Assessment
|
Assigned Date
|
Submission Date & Time
|
Quiz 1
|
W3: Wednesday
|
W3: Wednesday @ 7:00 PM to 11:59 PM
|
Quiz 2
|
W5: Wednesday
|
W5: Wednesday @ 7:00 PM to 11:59 PM
|
Quiz 3
|
W9: Wednesday
|
W9: Wednesday @ 7:00 PM to 11:59 PM
|
Quiz 4
|
W11: Wednesday
|
W11: Wednesday @ 7:00 PM to 11:59 PM
|
Quiz 5
|
W13: Wednesday
|
W13: Wednesday @ 7:00 PM to 11:59 PM
|
Assignment 1
|
W5: Sunday
|
W8: Saturday @ 11:00 PM
|
Assignment 2
|
W9: Sunday
|
W13: Saturday @ 11:00 PM
|
Final Lab Exam
|
W15: TBC
|
TBC
|
Midterm Exam
|
W8: TBC
|
TBC
|
Comprehensive Final Exam
|
W16/ W17 / W8: TBC
|
TBC
|
Assessment Tools’ Content
Assessment
|
Covered Topics
|
Chapters
|
CLO
|
Quiz 1
|
- String
- Text I/O
|
Chapter 10
Chapter 12
|
1, 2
|
Quiz 2
|
- Objects and Classes
|
Chapter 09
|
3
|
Quiz 3
|
- Thinking in Objects
|
Chapter 10
|
4
|
Quiz 4
|
- Inheritance and Polymorphism
|
Chapter 11
|
7, 8
|
Quiz 5
|
- Abstract Classes and Interfaces
|
Chapter 13
|
10, 11
|
Assignment 1
|
- Multi-dimensional Array
- String
- Files
- Objects and Classes
|
Chapter 08
Chapter 10
Chapter 12 (12.10-12.11)
Chapter 09
|
1, 2, 3, 4, 6
|
Assignment 2
|
- All topics of Assignment 1
- Thinking in Objects
- Inheritance and Polymorphism
- Abstract Classes and Interfaces
|
Chapter 10
Chapter 11
Chapter 13
|
1, 2, 3, 4, 6,
7, 8, 9, 10, 11
|
Final Lab Exam
|
- All topics
|
All chapters
|
1-13
|
Midterm Exam
|
- Multidimensional Arrays
- String
- Files
- Objects and Classes
- Thinking in Objects
- Inheritance
|
Chapter 08
Chapter 10 (10.10 – 10.11)
Chapter 12 (12.10-12.12)
Chapter 09
Chapter 10
Chapter 11 (11.1 to 11.3)
|
1, 2, 3, 4, 5, 6, 7
|
Comprehensive Final Exam
|
- All topics
|
All chapters
|
1-13
|
Course Schedule
Week
|
Lecture Topics
|
CLO
|
Quiz
|
Exam
|
Assig.
|
1
|
Chapter 08: Multidimensional Arrays
- To use multidimensional arrays (§ 8.8).
|
|
|
Mid &
Final
|
1
|
2
|
Chapter 10: String
- To use the String class to process immutable strings (§10.10).
- To use the StringBuilder and StringBuffer classes to process mutable strings (§10.11).
|
1
|

|
Mid &
Final
|
1
|
Lab #1: Multidimensional Arrays & String
|
|
|
|
|
3
|
Chapter 12: Text I/O
- To discover file/directory properties, to delete and rename files/directories, and to create directories using the File class (§12.10).
- To write data to a file using the PrintWriter class (§12.11.1).
- To read data from a file using the Scanner class (§12.11.3).
- To understand how data is read using a Scanner (§12.11.4).
- To develop a program that replaces text in a file (§12.11.5).
|
2
|

|
Mid &
Final
|
1
|
Lab #2: String
|
|
|
|
|
4
|
Chapter 09: Objects and Classes
- To describe objects and classes and use classes to model objects (§9.2).
- To use UML graphical notation to describe classes and objects (§9.2).
- To demonstrate how to define classes and create objects (§9.3).
- To create objects using constructors (§9.4).
|
3
|

|
Mid &
Final
|
1
|
Lab #3: Text I/O
|
|
|
|
|
5
|
Chapter 09: Objects and Classes
- To access objects via object reference variables (§9.5).
- To define a reference variable using a reference type (§9.5.1).
- To access an object’s data and methods using the object member access operator (.) (§9.5.2).
- To define data fields of reference types and assign default values for an object’s data fields (§9.5.3).
- To distinguish between object reference variables and primitive-datatype variables (§9.5.4).
- To use the Java library classes Date and Random (§9.6).
- To distinguish between instance and static variables and methods (§9.7).
- To define private data fields with appropriate getter and setter methods (§9.8).
- To encapsulate data fields to make classes easy to maintain (§9.9).
- To develop methods with object arguments and differentiate between primitive-type arguments and object-type arguments (§9.10).
- To store and process objects in arrays (§9.11).
|
4, 5
|

|
Mid &
Final
|
1
|
Lab #3: Objects and Classes
|
|
|
|
|
6
|
Chapter 10: Object Oriented Thinking
- To create immutable objects from immutable classes to protect the contents of objects (§9.12).
- To determine the scope of variables in the context of a class (§9.13).
- To use the keyword this to refer to the calling object itself (§9.14).
- To apply class abstraction to develop software (§10.2).
- To explore the differences between the procedural paradigm and object-oriented paradigm (§10.3).
- To discover the relationships between classes (§10.4).
- To design programs using the object-oriented paradigm (§§10.5 and 10.6).
|
6
|

|
Mid &
Final
|
1
|
Lab #4: Objects and Classes
|
|
|
|
|
7
|
Chapter 10: Object Oriented Thinking
- To create objects for primitive values using the wrapper classes (Byte, Short, Integer, Long, Float, Double, Character, and Boolean) (§10.7).
- To simplify programming using automatic conversion between primitive types and wrapper class types (§10.8).
- To use the BigInteger and BigDecimal classes for computing very large numbers with arbitrary precisions (§10.9)
|
6
|

|
Mid &
Final
|
1
|
Lab #5: Object Oriented Thinking
|
|
|
|
|
8
|
Chapter 11: Inheritance and Polymorphism
- To define a subclass from a superclass through inheritance (§11.2).
- To invoke the superclass’s constructors and methods using the super keyword (§11.3).
- To override instance methods in the subclass (§11.4).
- To distinguish differences between overriding and overloading (§11.5).
- To explore the toString() method in the Object class (§11.6).
- To discover polymorphism and dynamic binding (§§11.7 and 11.8).
- To describe casting and explain why explicit downcasting is necessary (§11.9).
|
7, 8
|

|
Mid &
Final
|
2
|
Lab #6: Object Oriented Thinking
|
|
|
|
|
9
|
Chapter 11: Inheritance and Polymorphism
- To explore the equals method in the Object class (§11.10).
- To store, retrieve, and manipulate objects in an ArrayList (§11.11).
- To construct an array list from an array to sort and shuffle a list, and to obtain max and min element from a list (§11.12).
- To implement a Stack class using ArrayList (§11.13).
- To enable data and methods in a superclass accessible from subclasses using the protected visibility modifier (§11.14).
- To prevent class extending and method overriding using the final modifier (§11.15).
|
8,9
|

|
Final
|
2
|
Lab #7: Inheritance
|
|
|
|
|
10
|
Chapter 13: Abstract Classes and Interfaces
- To design and use abstract classes (§13.2).
- To generalize numeric wrapper classes BigInteger and BigDecimal using the abstract Number class (§13.3).
- To specify common behaviour for objects using interfaces (§13.5).
- To define interfaces and define classes that implement interfaces (§13.5).
|
10, 11
|

|
Final
|
2
|
Lab #8: Polymorphism
|
|
|
|
|
11
|
Chapter 13: Abstract Classes and Interfaces
- To define a natural order using the Comparable interface (§13.6).
- To explore the similarities and differences among concrete classes, abstract classes, and interfaces (§13.8).
- To design classes that follow the class-design guidelines (§13.10).
|
10, 11
|

|
Final
|
2
|
Lab #9: ArrayList and Abstract Classes
|
|
|
|
|
12
|
Chapter 19: Generic
- To describe the benefits of generics (§19.2).
- To use generic classes and interfaces (§19.2).
- To define generic classes and interfaces (§19.3).
- To explain why generic types can improve reliability and readability (§19.3).
|
12
|
|
Final
|
2
|
Lab #10: Interfaces
|
|
|
|
|
13
|
Chapter 12: Exception Handling
- To get an overview of exceptions and exception handling (§12.2).
- To explore the advantages of using exception handling (§12.2).
- To distinguish exception types: Error (fatal) vs. Exception (nonfatal) and checked vs. unchecked (§12.3).
- To declare exceptions in a method header (§12.4.1).
- To throw exceptions in a method (§12.4.2).
- To write a try-catch block to handle exceptions (§12.4.3).
- To explain how an exception is propagated (§12.4.3).
- To obtain information from an exception object (§12.4.4).
|
13
|
|
Final
|
2
|
Lab #11: Generic and Exception Handling
|
|
|
|
|
14
|
Chapter 12: Exception Handling
- To develop applications with exception handling (§12.4.5).
- To use the finally clause in a try-catch block (§12.5).
- To use exceptions only for unexpected errors (§12.6).
- To rethrow exceptions in a catch block (§12.7).
|
13
|
|
Final
|
2
|
Lab #12: Exception Handling
|
|
|
|
|
15
|
Revision/ Final Lab Exam
|
1-13
|
|
|
|
16/ 18
|
Comprehensive Final Exam
|
1-13
|
|
|
|
|
آخر تحديث
9/26/2023 1:27:25 PM
|
|