Пример #1
0
def comp_missing_3315(student, coursehistory, degree):

    # get necessary information
    ccodes = [c.code for c in coursehistory]
    uterms = dpr.unplanned_terms(student, coursehistory)
    unready = ('MATH 3315' not in ccodes and 'MATH 3316' not in ccodes
               and 'CSE 3365' not in ccodes and 'CS 3365' not in ccodes)

    # return appropriate warning
    if uterms <= 1 and unready:
        return dpr.DPRWarning(
            4,
            "missing MATH 3315: Computational specializaion no longer possible."
        )
    if uterms <= 2 and unready:
        return dpr.DPRWarning(
            3,
            "missing MATH 3315: Computational specializaion becoming unlikely."
        )
    if uterms <= 3 and unready:
        return dpr.DPRWarning(
            2, "please change your schedule to be enrolled in MATH 3315.")
    if uterms <= 4 and unready:
        return dpr.DPRWarning(
            1, "make sure to take MATH 3315 as early as possible.")

    return None
Пример #2
0
def incomplete_foundation(student, coursehistory, degree):

  # get necessary information
  uterms = dpr.unplanned_terms(student, coursehistory)
  fcomp = degree.grplist[0].satisfied

  # return appropriate warning
  if uterms <= 1 and not fcomp:
    return dpr.DPRWarning(4, "Foundation incomplete with <= 2 semesters remaining.")
  if uterms <= 2 and not fcomp:
    return dpr.DPRWarning(3, "Foundation incomplete with <= 3 semesters remaining.")
  if uterms <= 3 and not fcomp:
    return dpr.DPRWarning(2, "Foundation incomplete with <= 4 semesters remaining.")
  if uterms <= 4 and not fcomp:
    return dpr.DPRWarning(1, "Aim to complete foundation by the end of sophomore year.")
  return None
Пример #3
0
def anum_missing_1341(student, coursehistory, degree):

  # get necessary information
  ccodes = [c.code for c in coursehistory]
  uterms = dpr.unplanned_terms(student, coursehistory)
  ready = any([ (a in ccodes) for a in CS ])

  # return appropriate warning
  if uterms <= 1 and not ready:
    return dpr.DPRWarning(4, "missing CS 1340/1341: on-time graduation impossible.")
  if uterms <= 2 and not ready:
    return dpr.DPRWarning(3, "missing CS 1340/1341: on-time graduation becoming unlikely.")
  if uterms <= 3 and not ready:
    return dpr.DPRWarning(2, "you should change your schedule to be enrolled in CS 1340/1341.")
  if uterms <= 4 and not ready:
    return dpr.DPRWarning(1, "it is best to take CS 1340/1341 by the end of Sophomore year.")

  return None
Пример #4
0
def pure_missing_3311(student, coursehistory, degree):

  # get necessary information
  ccodes = [c.code for c in coursehistory]
  uterms = dpr.unplanned_terms(student, coursehistory)
  unready = ('MATH 3311' not in ccodes and 'MATH 3308' not in ccodes)

  # return appropriate warning
  if uterms <= 1 and unready:
    return dpr.DPRWarning(4, "missing MATH 3311: Pure specializaion impossible.")
  if uterms <= 2 and unready:
    return dpr.DPRWarning(3, "missing MATH 3311: Pure specializaion very unlikely.")
  if uterms <= 3 and unready:
    return dpr.DPRWarning(2, "you must change your schedule to be enrolled in MATH 3311.")
  if uterms <= 4 and unready:
    return dpr.DPRWarning(1, "make sure to take MATH 3311 as early as possible.")

  return None
Пример #5
0
def incomplete_foundation(student, coursehistory, degree):

    # get necessary information
    now = dpr.current_term()
    grad = int(student.gterm)
    termsleft = (grad - now) / 5
    fcomp = degree.grplist[0].satisfied

    # return appropriate warning
    if termsleft < 2 and not fcomp:
        return dpr.DPRWarning(
            3, "Foundation incomplete with <= 2 semesters remaining.")
    if termsleft < 4 and not fcomp:
        return dpr.DPRWarning(
            2, "Foundation incomplete with <= 4 semesters remaining.")
    if termsleft < 6 and not fcomp:
        return dpr.DPRWarning(
            1, "Aim to complete foundation by the end of sophomore year.")
    return None
Пример #6
0
def comp_missing_3315(student, coursehistory, degree):

    # get necessary information
    ccodes = [c.code for c in coursehistory]
    uterms = dpr.unplanned_terms(student, coursehistory)
    unready = ('MATH 3315' not in ccodes and 'MATH 3316' not in ccodes
               and 'CSE 3365' not in ccodes)

    # return appropriate warning
    if unready and uterms < 2:
        return dpr.DPRWarning(
            3, "missing MATH 3315: CSE/EMIS specializaion no longer possible.")
    if unready and uterms < 3:
        return dpr.DPRWarning(
            2, "you need to change your schedule to be enrolled in MATH 3315.")
    if unready and uterms < 4:
        return dpr.DPRWarning(
            1, "make sure to take MATH 3315 by Junior year at the latest.")

    return None
Пример #7
0
def comp_missing_1341(student, coursehistory, degree):

    # get necessary information
    ccodes = [c.code for c in coursehistory]
    uterms = dpr.unplanned_terms(student, coursehistory)
    unready = ('CSE 1341' not in ccodes and 'ASIM 1310' not in ccodes
               and 'CRCP' not in ccodes)

    # return appropriate warning
    if unready and uterms < 3:
        return dpr.DPRWarning(
            3, "missing CSE 1341: CSE/EMIS specializaion no longer possible.")
    if unready and uterms < 4:
        return dpr.DPRWarning(
            2, "you need to change your schedule to be enrolled in CSE 1341.")
    if unready and uterms < 5:
        return dpr.DPRWarning(
            1, "it is best to take CSE 1341 by the end of Sophomore year.")

    return None
Пример #8
0
def credits_per_semester(student, coursehistory, degree, threshhold=6.0):

    # assess remaining credits and semesters
    rem_semesters = (int(student.gterm) - dpr.current_term()) * 2 / 10
    rem_credits = degree.hours_rem
    if rem_semesters < 1:
        cps = np.inf if rem_credits > 0 else 0
    else:
        cps = float(rem_credits) / float(rem_semesters)

    # return the appropriate response
    warning = None
    if cps == np.inf:
        return dpr.DPRWarning(4, "graduation not possible by intended date")
    if cps > 11.9:
        return dpr.DPRWarning(3, "courses per semester >= 4")
    if cps > 8.9:
        return dpr.DPRWarning(2, "courses per semester >= 3")
    if cps > 5.9:
        return dpr.DPRWarning(1, "courses per semester >= 2")

    return None
Пример #9
0
def anum_missing_1341(student, coursehistory, degree):

    # get necessary information
    ccodes = [c.code for c in coursehistory]
    uterms = dpr.unplanned_terms(student, coursehistory)
    unready = ('CSE 1341' not in ccodes and 'ASIM 1310' not in ccodes
               and 'CRCP' not in ccodes)

    # return appropriate warning
    if unready and uterms < 2:
        return dpr.DPRWarning(
            4, "missing CSE 1341: will not be able to graduate on time.")
    if unready and uterms < 3:
        return dpr.DPRWarning(
            3, "you won't graduate unless you add CSE 1341 to your schedule.")
    if unready and uterms < 4:
        return dpr.DPRWarning(
            2, "CSE 1341 not taken by the end of Junior year: inadvisable.")
    if unready and uterms < 5:
        return dpr.DPRWarning(
            1, "make sure to take CSE 1341 by the end of Junior year.")

    return None