Final answer:
The program requires creating subclasses for English, Math, and History under a Course superclass, entering course data into an array list, sorting them by category and CRN, and implementing search functionality.
Step-by-step explanation:
In a Java program to manage courses across multiple disciplines, a parent class named Course is given. The task involves creating three subclasses named English, Math, and History, each with unique attributes. Specifically, English courses have levels and types, Math courses distinguish between STEM and non-STEM and offer different modalities, while History courses are marked as Area E eligible or not and have various modalities.
The program should continuously prompt the user for course entries, storing them in an array list. Upon completion, the program must sort the courses by category and Course Registration Number (CRN) using the Comparable interface. If no courses are entered, the program prints "No courses entered." and exits. Otherwise, the courses are displayed, with functionality to search for a specific course by name, ignoring case differences, and display the result based on whether the course is found.