def search(self, params, validate=False):
        """Return a generator of section objects for the given search params.

        :param params: Dictionary of course search parameters.
        :param validate: Optional. Set to true to enable request validation.

        >>> cis100s = r.search({'course_id': 'cis', 'course_level_at_or_below': '200'})
        """
        if self.val_info is None:
            self.val_info = self.search_params()

        if validate:
            errors = self.validate(self.val_info, params)
        if not validate or len(errors) == 0:
            return self._iter_response(ENDPOINTS['SEARCH'], params)
        else:
            return {'Errors': errors}