abstract data types data from an external file or database in computer programmingan object used to input data into program is sometimes referred to as reader while an object used to output data is referred to as writer define student file reader adt student file reader is used to extract student records from external storage the five data components of the individual records are extracted and stored in storage object specific for this collection of student records studentfilereaderfilename )creates student reader instance for extracting student records from the given file the type and format of the file is dependent on the specific implementation open()opens connection to the input source and prepares it for extracting student records if connection cannot be openedan exception is raised close()closes the connection to the input source if the connection is not currently openan exception is raised fetchrecord()extracts the next student record from the input source and returns reference to storage object containing the data none is returned when there are no additional records to be extracted an exception is raised if the connection to the input source was previously closed fetchall()the same as fetchrecord()but extracts all student records (or those remainingfrom the input source and returns them in python list creating the report the program in listing uses the student file reader adt to produce the sample report illustrated earlier the program extracts the student records from the input sourcesorts the records by student identification numberand produces the report this program illustrates some of the advantages of applying abstraction to problem solving by focusing on the "whatinstead of the "how by using the student file reader adtwe are able to design solution and construct program for the problem at hand without knowing exactly how the data is stored in the external source we import the studentfilereader class from the studentfile py modulewhich we assume will be an implementation of the adt that handles the actual data extraction furtherif we want to use this same program with data file having different formatthe only modifications required will be to indicate different module in the import statement and possibly change to the filename specified by the constant variable file name the studentreport py program consists of two functionsprintreport(and main(the main routine uses an instance of the adt to connect to the external source in order to extract the student records into list the list of records is then