mis-started degree parsing

This commit is contained in:
Coding with Peter 2023-05-31 12:30:01 -07:00
parent e339795c94
commit 6adaa6a1c4
7 changed files with 1355 additions and 23 deletions

View File

@ -816,6 +816,39 @@ def unenroll_student(courseid,enrolid):
# return fetch(t,1)
def enroll_id_list_to_shell(id_list, shell_id, v=0):
id_list = set(id_list)
existing = course_enrollment(shell_id) # by user_id
existing_ids = set( [ x['user_id'] for x in existing.values() ])
if v: print("To Enroll: %s" % str(id_list))
if v: print("\n\Already Enrolled: %s" % str(existing_ids))
enroll_us = id_list.difference(existing_ids)
if v: print("\n\nTO ENROLL %s" % str(enroll_us))
(connection,cursor) = db()
for j in enroll_us:
try:
q = "SELECT name,canvasid FROM users WHERE canvasid=%s" % j
cursor.execute(q)
s = cursor.fetchall()
if s:
s = s[0]
print("Enrolling: %s" % s[0])
t = url + '/api/v1/courses/%s/enrollments' % shell_id
data = { 'enrollment[user_id]': j, 'enrollment[type]':'StudentEnrollment',
'enrollment[enrollment_state]': 'active' }
r3 = requests.post(t, headers=header, params=data)
#print(r3.text)
time.sleep(0.600)
except Exception as e:
print("Something went wrong with id %s, %s, %s" % (j, str(s), str(e)))
def enroll_stem_students_live():
the_term = '178'
do_removes = 0
@ -960,6 +993,61 @@ def enroll_bulk_students_bydept(course_id, depts, the_term="172", cautious=1):
#print(r3.text)
def enroll_gott_workshops_su23():
r = requests.get("https://www.gavilan.edu/staff/tlc/db.php?a=signups")
signups = json.loads(r.text)
# update w/ users.py #1
all_staff = json.loads(codecs.open('cache/ilearn_staff.json','r','utf-8').read())
by_email = { x['email'].lower():x for x in all_staff }
#print(by_email.keys())
workshop_ids = {
'GOTT 2: Intro to Async Online Teaching and Learning2023-07-09 17:00:00': 17992,
'GOTT 4: Assessment in Digital Learning2023-07-09 17:00:00': 17995,
'Restricted to STEM faculty. Humanizing (STEM) Online Learning 2023-06-18 17:00:00': 17996,
'GOTT 6: Online Live Teaching and Learning2023-06-11 17:00:00': 17986,
'GOTT 5: Essentials of Blended Learning2023-06-25 17:00:00': 17987,
'GOTT 5: Essentials of Blended Learning (HyFlex)2023-06-25 17:00:00': 17987,
'GOTT 1: Intro to Teaching Online with Canvas2023-05-29 17:00:00': 17985,
'GOTT 1: Intro to Teaching Online with Canvas2023-08-20 17:00:00': 17994
}
#print(json.dumps(signups,indent=4))
#print(json.dumps(by_email,indent=4))
subs = {'csalvin@gavilan.edu':'christinasalvin@gmail.com',
'karenjeansutton@gmail.com': 'ksutton@gavilan.edu',
'flozana@gmail.com': 'flozano@gavilan.edu',
'fyarahmadi2191@gmail.com': 'fyarahmadi@gavilan.edu',
'jacquelinejeancollins@yahoo.com': 'jcollins@gavilan.edu',
'bt@gavilan.edu': 'btagg@gavilan.edu',
'tagg.brian@yahoo.com': 'btagg@gavilan.edu',
'tmiller.realestate@gmail.com': 'tmiller@gavilan.edu',
}
for wkshp,su_list in signups.items():
if wkshp not in workshop_ids:
continue
to_enroll = []
for s in su_list:
e = s['email'].lower()
if e in subs:
e = subs[e]
#print( f"{wkshp} {e} {s['name']}" )
if e in by_email:
user = by_email[e]
#print(f"\t{user['name']} {e} {user['login_id']}")
to_enroll.append(user['id'])
else:
#print("** ** NOT FOUND")
pass
print(f"Workshop: {wkshp} \n\tEnrolling: {str(to_enroll)}")
this_id =workshop_ids[wkshp]
enroll_id_list_to_shell(to_enroll, this_id)
def enroll_art_students_live():
depts = "THEA ART DM MUS MCTV".split(" ")
@ -1550,6 +1638,8 @@ if __name__ == "__main__":
30: ['Quick course list', quick_sem_course_list ],
31: ['Cross list CWE courses', xlist_cwe],
34: ['Create calendar event', create_calendar_event],
40: ['Enroll GOTT Workshops', enroll_gott_workshops_su23],
# 24: ['Add course evals to whole semester',instructor_list_to_activate_evals],
# 21: ['Add announcements to homepage', change_course_ann_homepage],
# TODO wanted: group shell for each GP (guided pathway) as a basic student services gateway....

View File

@ -453,7 +453,7 @@ def path_style_2_html():
# - might be single number or a range min/max
current_item_number = 0
for line in aw["Program Requirements"]:
t1 = re.search(r'Program\sBlock\sDefinitions\/(\d+)/cqid_\d+/Program\sBlock\sDefinitions\/(.*)$', line)
if t1:
@ -463,22 +463,27 @@ def path_style_2_html():
t2 = re.search(r'Requirements\/\d+\/Program\sBlock\sDefinitions\/(\d+)\/cqid_\d+\/Program\sBlock\sDefinitions\/Course\sBlock\sDefinition\/(.*)$', line)
if t2:
req_prebuild[pbd_number].append( ('h3', '0', t2.groups()[1]) )
current_item_number = 0
continue
t3 = re.search(r'Definitions\/\d+\/Program\sCourses\/(\d+)\/cqid_\d+\/Program\sCourses\/\d+\/\[Discipline\sand\sCourse\schained\scombo\]\/Course\/(.*)$',line)
if t3:
req_prebuild[pbd_number].append( ('course', t3.groups()[0], splitclassline( t3.groups()[1], t3.groups()[0] )) )
current_item_number = t3.groups()[0]
continue
t3a = re.search(r'Definitions\/\d+\/Program\sCourses\/(\d+)\/cqid_\d+/Program\sCourses\/\d+\/\[Condition\sSection\]\/Condition\/or$',line)
if t3a:
req_prebuild[pbd_number].append( ('or', t3a.groups()[0]) )
current_item_number = t3a.groups()[0]
continue
t3b = re.search(r'Definitions\/\d+\/Program\sCourses\/(\d+)\/cqid_\d+/Program\sCourses\/\d+\/\[Condition\sSection\]\/Condition\/and$',line)
if t3b:
req_prebuild[pbd_number].append( ('and', t3b.groups()[0]) )
current_item_number = t3b.groups()[0]
continue
t4 = re.search(r'Definitions\/(\d+)\/cqid_\d+/Program\sBlock\sDefinitions\/\d+\/Program\sCourses/(\d+)/cqid_\d+/Program\sCourses\/Non\-Course\sRequirements\/(.*)$',line)
if t4:
req_prebuild[pbd_number].append( ('noncourse', t4.groups()[1], t4.groups()[2]) )
current_item_number = t4.groups()[1]
continue
t5 = re.search(r'Definitions\/(\d+)\/cqid_\d+\/Program\sBlock\sDefinitions\/Override\sUnit\sCalculation\/1$',line)
if t5:
@ -500,9 +505,9 @@ def path_style_2_html():
continue
t9 = re.search(r'Definitions\/Block\sHeader\/(.*)$',line)
if t9:
req_prebuild[pbd_number].append( ('blockheader', t9.groups()[0]) )
req_prebuild[pbd_number].append( ('blockheader', 0.1, t9.groups()[0]) )
continue
req_prebuild[pbd_number].append( ('', t1.groups()[1]) )
req_prebuild[pbd_number].append( ('unknown', current_item_number, t1.groups()[1]) )
award_build[AW]["requirements"] = req_prebuild
award_build[AW]["unit_calcs"] = pbd_unit_calcs

4
degree_vars.py Normal file

File diff suppressed because one or more lines are too long

View File

@ -1,6 +1,6 @@
from lark import Lark, Transformer, v_args
import json, sys, re
import json, sys, re, codecs
import lark
"""describe college courses, their number of units, any other courses that are prerequisites, as well as various degrees which
@ -12,7 +12,36 @@ consist of groups of courses that must be taken. The groups have rules associate
def num(s):
if s == '': return 0
try:
return int(s)
except ValueError:
return float(s)
def num_units(s):
if s == '': return 0
m = re.match(r'^(\d+)\.?(\d+)?\s?(units)?$',s)
if m:
if m.group(1) and m.group(2):
if m.group(2) == '0':
return int(m.group(1))
return float(f"{m.group(1)}.{m.group(2)}")
elif m.group(1):
return int(m.group(1))
else:
try:
return int(s)
except ValueError:
return float(s)
class CourseOr:
def __init__(self, subs):
self.names = subs
self.name = " or ".join(self.names)
def __repr__(self):
return f"[{self.name}]"
class Course:
@ -21,22 +50,63 @@ class Course:
self.units = units
self.prerequisites = prerequisites
def __repr__(self):
return f"{self.name} ({self.units} units)"
#return f"{self.name} ({self.units} units)"
return f"{self.name}"
class CourseList:
def __init__(self, name, course_list):
self.name = name
self.course_list = course_list
self.l = len(course_list)
def __iter__(self):
return iter(self.course_list)
def __len__(self):
print("What is this len? ", len(self.course_list), str(list(self.course_list)), str(type(self.course_list)))
i = 1
for c in self.course_list:
i += 1
return i
#return len(self.course_list)
def __repr__(self):
return ", ".join([f"\"{str(x)}\"" for x in self.course_list]) # .course_list
#return f"{s}"
#return f"CourseList({self.name}, {s})"
class DegreeRule:
def __init__(self, rule_type, course_list):
self.rule_type = rule_type
if 'n' in rule_type.__dict__: self.n = rule_type.n
self.course_list = course_list
print("COURSELIST: ", type(self.course_list), self.course_list)
def mz_rule(self,n):
s = ",".join( [ f"{x}" for x in self.course_list])
i = 0
for c in self.course_list:
i += 1
#print("What is this len? ", len(self.course_list), str(list(self.course_list)), str(type(self.course_list)))
t = len(list(self.course_list))
if not type(self.course_list)==tuple:
t = self.course_list.l
return f"array[1..{t}] of string: rule_{n}_courses = [{s}];"
def __repr__(self):
return f"DegreeRule({self.rule_type}, {self.course_list})"
return self.mz_rule(1)
#return f"DegreeRule({self.rule_type}, {self.course_list})"
class Degree:
def __init__(self, name, degree_rules):
self.name = name
self.degree_rules = degree_rules
def mz_rule(self):
n = 1
s = f"% Degree: {self.name}\n"
for r in self.degree_rules:
s += r.mz_rule(n) + "\n"
n += 1
return s
def __repr__(self):
return f"Degree({self.name}, {self.degree_rules})"
#x = ", ".join([str(x) for x in self.degree_rules])
#return f"Degree({self.name}, {x})"
return self.mz_rule()
class RuleType():
def __init__(self,what,n=0):
@ -70,10 +140,20 @@ class DSLTransformer(Transformer):
def __init__(self):
self.courses = {}
self.degrees = {}
self.lists = {}
def course_declaration(self, name, units):
#return Course(name, int(units), prerequisites.children)
self.courses[name.value] = Course(name.value, int(units))
#print(items)
#if type(items[0]) == str:
c = Course(name.value, units)
self.courses[name.value] = c
#else:
#options = [x.value for x in items[0].children]
#label = "[OR " + options[0] + "...]"
#c = CourseOr(label, options)
#self.courses[label] = c
'''def program(self, name, rules):
self.degrees[name.value] = Degree(name.value, rules)
@ -95,11 +175,33 @@ class DSLTransformer(Transformer):
def take_n_units(self, n):
return TakeNUnits(n)
def degree_rule(self, rule_type, course_list):
def degree_rule(self, rule_type, *course_list):
#if type(course_list[0])==type([]):
# return DegreeRule(rule_type, course_list[0])
print("making DegreeRule: ", rule_type, type(course_list), course_list)
return DegreeRule(rule_type, course_list)
def course_list(self, *courses):
return [c.value for c in courses]
def list_declaration(self, name, course_list):
print("declared course list: ", name.value, course_list)
cl = CourseList(name.value, course_list)
self.lists[name.value] = cl
return cl
def list_ref(self, name):
print("referenced course list: ", name.value, type(self.lists[name.value]), self.lists[name.value])
return self.lists[name.value]
def course(self, *items):
return Course(items[0].value,"")
def course_or(self, *items):
return CourseOr([x.value for x in items])
def course_list(self, *items):
#print(str(items))
print("course list: ", items)
return CourseList("temp", items)
#return [c for c in items]
def program(self, *items):
#print(items)
@ -126,29 +228,43 @@ print(dsl.degrees)
#(course ","?)*
grammar = """
start: _spec+
_spec: program | course_declaration
_spec: program | course_declaration | list_declaration
program: "program" PROGRAMNAME degree_rule*
degree_rule: "take" rule_type course_list
degree_rule: "take" rule_type [course_list | list_ref]
list_ref: LISTNAME
rule_type: "all from" -> take_all
| "at least" INT "units from" -> take_n_units
| "at least" INT "courses from" -> take_n_courses
| "at least" INT "course from" -> take_n_courses
course_declaration: "course" COURSECODE INT "units" ["prerequisites" (COURSECODE ","?)*]
list_declaration: "list" LISTNAME ":" course_list
course_list: (COURSECODE ","?)*
course_declaration: "course" COURSECODE UNITAMOUNT "units" ["prerequisites" (COURSECODE ","?)*]
course_list: [course | course_or] ["," [course | course_or]]*
course: COURSECODE
course_or: COURSECODE "or" COURSECODE
COURSECODE: ("A".."Z")+ INT+ ["A".."Z"]*
PROGRAMNAME: ("A".."Z" | "a".."z")+
LISTNAME: ("a".."z"["A".."Z" | "a".."z" | INT]+)
UNITAMOUNT: NUMUNITS | NUMUNITS "-" NUMUNITS
NUMUNITS: INT | INT "." INT
%import common.INT
%import common.WS
%ignore WS
@ -168,17 +284,39 @@ def parser():
course BOT100 3 units
course BOT105B 3 units
list a1: CMUN1A, CMUN5, CMUN8, CMUN10
list a2: ENGL1A
list a3: PHIL2, PHIL4, ENGL1C, CMUN3
list b1: ASTR1, CHEM1A, CHEM1B, CHEM12A, CHEM12B
list b2: AH15, ANTH1, BIO1, BIO2, BIO4, BIO5
list b3: CHEM1A, ANTH1, BIO4, BIO5
list b4: BUS14, BUS11 or ECON11, ECON14, MATH1A, MATH1B
list c1: BUS1, ENGL250, ACCT120, BOT100, ACCT121, BOT105B
program BusinessAccountingOption
take all from CSIS1, CSIS2
take at least 6 units from ACCT120, ACCT20
take at least 3 courses from BUS1, ENGL250, ACCT120, BOT100, ACCT121, BOT105B
take at least 6 units from ACCT120, ACCT20 or ECON20
take at least 3 courses from MUS5, MUS10, BUS1, ENGL250, ACCT120, BOT100, ACCT121, BOT105B
take at least 1 course from c1
program CSUGenEd
take at least 1 course from a1
take at least 1 course from a2
take at least 1 course from a3
"""
do_parse(dsl)
def do_parse(dsl):
parser = Lark(grammar)
print(parser.parse(dsl).pretty())
print("\n\n\n")
print("\nTRANSFORMER: ")
parser = Lark(grammar)
transformer = DSLTransformer()
@ -194,9 +332,16 @@ def parser():
print()
print(transformer.degrees)
print()
print(transformer.lists)
print()
[print(c) for c in transformer.courses]
print()
[print(d) for d in transformer.degrees]
print("\nDEGREES: ")
for d,i in transformer.degrees.items():
print(str(i))
print()
[print(d) for d in transformer.lists]
@ -267,13 +412,254 @@ def compute_degree_progress(student_courses, degree):
"""
word_to_num = {'course':1, 'One':1, 'one':1, 'two':2, 'three':3, 'four':4, 'five':5, 'six':6,
'seven':7, 'eight':8, 'nine':9, 'ten':10, 'eleven':11,}
def word2num(word, verbose=0):
word = word.lower()
ret = word_to_num[word] if word in word_to_num else word
if verbose:
print(f" word2num({word}) -> {ret}")
return ret
lab_classes = {}
def load_lab_classes():
global lab_classes
if lab_classes:
return lab_classes
for c in json.loads(codecs.open('cache/courses/courses_built.json','r','utf-8').read()).values():
#print(c)
if 'min_lab_hour' in c and float(c['min_lab_hour']) > 0:
lab_classes[c['dept'] + c['number']] = 1
print(lab_classes)
return lab_classes
def is_lab_class(c):
lab_classes = load_lab_classes()
if c in lab_classes:
return True
return False
def is_noncourse_new_section(noncourse_line):
from degree_vars import note_true_section, note_false_section
for non in note_false_section:
if re.search(non, noncourse_line):
#print(f"- {noncourse_line}")
return False
for yes in note_true_section:
if re.search(yes, noncourse_line):
#print(f"+ {noncourse_line}")
return True
print(f" -> should this start a new rule/section? [{noncourse_line}]")
return False
rule_lookup = {
'take_all_prereq': ['RN PROGRAM PREREQUISITES', 'PREREQUISITES', ],
'take at least n courses': ['(\d+) courses total', 'SELECT (ONE|TWO) OF THE FOLLOWING', 'Select (one|two|three)', 'Select (\d+) courses',
'Choose (one) or more', 'Choose (one|two|three) of the classes listed',
'Choose (\w+) of the following','Choose (one|two|three)', 'Choose ([\d\w]+) courses from',
'ANY (COURSE) NOT USED IN', 'Select (1)', 'Select (one) of the following REQUIRED CORE',
'(One) of the following:', 'LIST [AB]: Select (\d)', 'Choose (One) Course:', ],
'take at least n units': ['LIST A \((\d+) units\)', 'LIST B \((\d+) units\)', 'LIST C \- Any course .*\((\d+) units\)', '(\d+) units total', 'Select (\d+) units', 'Any combination totaling (\d+) units',
'Choose (\w+) units from classes listed', 'Choose a minimum of ([\w\d]+) units from',
'Choose any combination of courses for a minimum of ([\w\d]+) units',
'Choose ([\w\d]+) units', 'Choose courses for at least ([\w\d]+) units',
'Choose a minimum of (\d+) units', 'Select any (\d+)\-\d+ units from the following'],
'electives': ['Electives', 'Recommended electives?:', ],
'take_all': ['RN PROGRAM', 'REQUIRED CORE', 'CORE COURSES', 'ADDITIONAL REQUIREMENTS','REQUIREMENTS:', 'Requirements', 'Core Requirements',
'Required Core', 'REQUIRED', 'LVN PROGRAM', 'Student Teaching Practicum', '^LIST A:?$', '^LIST B:$',
'Program Requirements', 'Required Courses:', 'PROGRAM REQUIREMENTS (5 Units)', 'PROGRAM REQUIREMENTS (162 Hours)',
],
}
def lookup_rule(line):
verbose = 0
for key in rule_lookup.keys():
for each in rule_lookup[key]:
m = re.search(each, line)
if m:
num = None
try:
if m.group(1):
num = m.group(1)
except Exception as e:
pass
if verbose: print(f"line: {line} matched: {each} with {num}")
return key,num
return None,None
def examine(li,award, verbose=0):
summary = [x[0] for x in li]
if summary[1] in ['and','or']:
if verbose: print(" - ", summary)
def check_ands_ors_pbd(award, pbd, verbose=0):
verbose = 0
if verbose: print(f"check_ands_ors_pbd({award}, ...)")
summary = [x[0] for x in pbd]
if verbose: print(" ", summary)
# iterate through in groups of 3, from 0/1/2 up to 3/4/5
# (for length 6. length n: n-2, n-1, n)
for i in range(len(pbd)-2):
examine(pbd[i:i+3], award, verbose)
if verbose: print()
def build_catalog():
cfile = "cache/courses/courses_active_built.json"
pfile = "cache/programs/programs_built.json"
courses = json.loads(codecs.open(cfile,'r','utf-8').read())
programs = json.loads(codecs.open(pfile,'r','utf-8').read())
course_spec = []
for index,c in courses.items():
try:
d = c['dept']
n = c['number']
name = c['name']
u2 = num_units(c['min_units'])
if 'max_units' in c:
u1 = num_units(c['max_units'])
else:
u1 = u2
if u1 == u2:
units = {'units': u1}
u = u1
else:
units = {'min_units': u2, 'max_units': u1}
u = f"{u2}-{u1}"
course_spec.append(f"course {d}{n} {u} units")
except Exception as e:
pass
#print(e)
#print(json.dumps(c,indent=2))
d_out = codecs.open('cache/prog_debug.txt','w','utf-8')
def d(s): d_out.write(str(s) + "\n")
for index,p in programs.items():
v2 = 0 # print debugging stuff
# Each award (degree or certificate)
award = p['award'] + " " + p['program_title']
d("\n" + p['award'] + " " + p['program_title'])
print("\n" + award)
this_program = p['award'] + " " + p['program_title']
this_rule = ""
r = p['requirements']
course_count = 0
# Each numbered chunk (k) in the requirements section
for k in sorted(r.keys()):
# Each 'program block definition'
# 1st is dict with unit totals, rest are lists.
check_ands_ors_pbd( award, sorted( r[k][1:], key=lambda x: float(x[1])) )
for each_r in sorted( r[k][1:], key=lambda x: float(x[1])):
if each_r[0] in ['and','or']:
#print(' ', each_r[0],each_r[1])
pass
if isinstance(each_r, list):
#print(each_r)
if each_r[0] == 'h3' or (each_r[0]=='noncourse' and is_noncourse_new_section(each_r[2])):
# This is a rule title
if this_rule and course_count:
d(this_rule) # + f" ({course_count}) "
course_count = 0
raw_rule = each_r[2]
good_rule, num = lookup_rule(raw_rule)
if good_rule:
#print(f"\t{good_rule}")
n = word2num(num) if num else ""
if v2: print(f"\tn = {n}")
actual_rule = re.sub(r'\sn\s',f' {n} ',good_rule)
if v2: print(f"\tactual rule is: {actual_rule}")
#this_rule = f"{good_rule} ({n}) [{raw_rule}] from "
this_rule = f"{actual_rule} from "
else:
#print(f"\t{raw_rule}")
if not this_rule:
this_rule = "take_all from "
this_rule = " * " + raw_rule + " " + "from "
#elif each_r[0] == 'noncourse': # also a rule title, some kind of sub-rule?
# d( f" ++ (noncourse) {each_r[2]}")
elif each_r[0] == 'course': # course in a rule
if not this_rule:
this_rule = "take_all from "
is_lab = '[L]' if is_lab_class(each_r[2]['code']) else ''
#this_rule += f"{each_r[2]['code']}{is_lab}({each_r[1]}), "
this_rule += f"{each_r[2]['code']}{is_lab}, "
if v2: print(f"\t\tthis rule is now: {this_rule}")
course_count += 1
if course_count:
d(this_rule) # + f" ({course_count})"
d_out.close()
d_in = codecs.open('cache/prog_debug.txt','r','utf-8').readlines()
progs = []
this_prog = []
for line in d_in:
if line.strip() == '':
if this_prog:
progs.append(this_prog)
this_prog = []
else:
this_prog.append(line.strip())
okay = []
notokay = []
for p in progs:
ok =1
for line in p:
if line[0] == '*':
notokay.append(p)
ok = 0
continue
if ok:
okay.append(p)
print("These programs are okay:")
for p in okay:
for l in p:
print(l)
print()
print("\n\nThese programs are not okay:")
for p in notokay:
for l in p:
print(l)
print()
print(f"okay: {len(okay)}")
print(f"not okay: {len(notokay)}")
return
do_parse('\n'.join(course_spec))
## TODO or and and
## How to see this as a 'fake' course: Eligible for English 1A ?
## How to include this as part of a list: 'ANY COURSE NOT USED IN LIST A (3 units)'
if __name__ == "__main__":
options = { 1: ['parsing example',parser] ,
2: ['rule check by units',rule_check_units] ,
3: ['load all programs',build_catalog] ,
}
print ('')

778
out.txt Normal file
View File

@ -0,0 +1,778 @@
Performing: load all programs
A.A.-T Degree Theatre Arts
- take_all from THEA1, THEA12A, THEA13A, THEA14,
- take at least n courses from THEA27, THEA25, THEA26, THEA12B, THEA15,
- take at least n courses from THEA13A, THEA14,
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
A.A. Degree Theater Arts-Television Performance
- take_all from THEA1, THEA2A, THEA12A, THEA13A, THEA14,
- take_all from THEA17B, MCTV17B, THEA16, MCTV16, THEA19, MCTV 19, MCTV 17A, THEA17A, THEA20, HUM25,
- take at least n courses from
A.A. Degree Theatre Arts: Technical Production
- take_all from THEA1, THEA2A, THEA12A, THEA13A, THEA14,
- take_all from THEA19, MCTV 19, THEA4, CMUN2, THEA15, THEA2B, THEA12B, ART2A, THEA7, ART8A, ART10A, ART12A, ART12B, ART13, THEA14,
- take at least n courses from
A.A. Degree Theatre Arts: Acting
- take_all from THEA1, THEA2A, THEA12A, THEA13A, THEA14,
- take_all from THEA19, MCTV 19, THEA4, CMUN2, THEA13B, THEA13C, THEA13D, THEA2B, THEA12B, MUS8A, MUS8B, MUS8C, MUS8D, THEA7, THEA11,
- take at least n courses from
Certificate of Achievement Spanish Native Speakers Option 4
- take at least n courses from HIST12, HUM12, SPAN 12A, SPAN12B, SPAN23, ART14A, THEA3,
Certificate of Achievement Spanish Non-Native Speakers Option 3
- take at least n courses from SPAN2A, SPAN2B, SPAN 12A, SPAN12B, SPAN23,
Certificate of Achievement Spanish Non-Native Speakers Option 2
- take at least n courses from SPAN1B, SPAN2A, SPAN2B, SPAN 12A, SPAN12B, SPAN23,
Certificate of Achievement Spanish Non-Native Speakers Option 1
- take at least n courses from SPAN1A, SPAN1B, SPAN2A, SPAN2B,
Certificate of Achievement Music Composition and Production
- take_all from MUS3A, MUS3B, MUS4A, MUS7, MUS16A, MUS21, MUS1A, MUS1B, MUS2, MUS6,
A.A.-T Degree Music
- take_all from MUS3A, MUS3B, MUS3C, MUS3D, MUS11A, MUS11B, MUS14,
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
A.A. Degree Music
- take_all from MUS3A, MUS3B, MUS4A, MUS4B, MUS1A, MUS1B, MUS6, MUS7, MUS16A, MUS21, MUS5A, MUS5B, MUS5C, MUS5D, MUS8A, MUS8B, MUS9B, MUS12,
- take at least n courses from
A.S.-T Degree Mathematics
- take_all from MATH1A, MATH 1B, MATH1C, MATH2, MATH2C,
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
A.S. Degree Mathematics
- take_all from ENGR5, MATH1A, MATH 1B, MATH1C, MATH2, MATH2C,
- take at least n courses from MATH5, PHYS 4A, PHYS 4B, PHYS 4C,
- take at least n courses from
A.A. Degree Liberal Arts: Social Science Emphasis- Behavioral and Organizational Social Sciences
- take_all from PSYC2, CD2, JOUR10, SOC10, CD3, PSYC3, POLS6, CMUN6, PSYC6, PSYC7, CD7, BIO15, AH15, AJ10, AJ18, AH3, ECON1, ECON2, MATH5, MATH6, POLS1, POLS3, POLS4, PSYC10, PSYC11, SOC1A, SOC1B, SOC3, SOC 4, SOC21,
- take at least n courses from
A.A. Degree Liberal Arts: Social Science Emphasis- Cultural and Historical Sciences
- take_all from HIST12, HUM12, POLS6, CMUN6, PSYC6, ART21, HIST21, KIN6, CD6, ANTH1, ANTH2, ANTH3, ANTH5, ART10A, CD5, ECON1, ECON2, GEOG2, HIST1, HIST2, HIST3, HIST4A, HIST4B, HIST5, HIST 6, HIST7A, HIST7B, POLS1, SOC1A, SOC1B, SOC3, SOC 4,
- take at least n courses from
A.A. Degree Liberal Arts: Natural Science Emphasis
- take_all from BIO9, AH9, BIO8, AH8, BIO15, AH15, BIO 1, BIO4, BIO5, BIO7, BIO21, CHEM1A, CHEM1B, CHEM12A, CHEM12B, ECOL1, GEOL1, MATH1A, MATH 1B, MATH1C, MATH2, MATH2C, MATH5, MATH7, MATH8A, MATH8B, PHYS2A, PHYS2B, PHYS 4A, PHYS 4B, PHYS 4C,
- take at least n courses from
A.A. Degree Liberal Arts: Language Arts & Humanities Emphasis
- take_all from SOC10, POLS6, CMUN6, PSYC6, CMUN129, CSIS129, THEA4, CMUN2, CMUN1A, CMUN4, CMUN5, CMUN8, CMUN10, PHIL1, PHIL2, PHIL3A, PHIL3B, PHIL4, PHIL6, PHIL9, ENGL1B, ENGL2B, ENGL2C, ENGL2E, ENGL2F, ENGL2J, ENGL4A, ENGL4B, ENGL5A, ENGL5B, ENGL9A, FRNH1A, FRNH1B, JPN1A, JPN1B, SPAN1A, SPAN1B, SPAN 12A, SPAN12B, JOUR16A, JOUR10,
- take at least n courses from
A.A. Degree Liberal Arts: Expressive Arts Emphasis
- take_all from ART25A, CD25A, ART25B, CD25B, THEA17B, MCTV17B, ART21, HIST21, DM74, CSIS74, DM76, CSIS76, DM 77, CSIS 77, DM80, CSIS80, DM 85, CSIS 85, DM110, CSIS110, DM114, CSIS114, DM117, CSIS117, THEA19, MCTV 19, MCTV 17A, THEA17A, ART1A, ART1B, ART6, MUS1A, MUS1B, THEA1, THEA3, THEA7, ART2A, ART3A, ART3B, ART8A, ART10A, ART12A, ART12B, ART13, ART14A, ART15A, ART15B, ART34A, ART34B, MUS4A, MUS4B, MUS5A, MUS5B, MUS5C, MUS5D, MUS8A, MUS8B, MUS8C, MUS8D, MUS9A, MUS9B, MUS12, THEA2A, THEA2B, THEA12A, THEA12B, THEA13A, THEA13B, THEA13C, THEA13C, THEA21, ART11,
- take at least n courses from
A.A. Degree Liberal Arts: Computer Science & Information Systems Emphasis
- take_all from CSIS6, DM6, CSIS7, DM7, CSIS73, DM73, CSIS75, DM75, DM74, CSIS74, DM76, CSIS76, DM 77, CSIS 77, DM80, CSIS80, DM 85, CSIS 85, CD12, CSIS9, CSIS5, CSIS8, CSIS10, CSIS12, CSIS12L, CSIS18, CSIS18L, CSIS24, CSIS26, CSIS43, CSIS44, CSIS45, CSIS46, CSIS47, CSIS49, CSIS51, CSIS54, CSIS54L, CSIS84, DM113, DM114,
- take at least n courses from
A.A. Degree Liberal Arts: Business Emphasis
- take_all from CSIS2L, CSIS2, BUS11, ECON11, BUS1, ECON1, ECON2, ACCT20, ACCT21, BUS14, BUS80, CSIS 1, ECON1, ECON2,
- take at least n courses from
A.A. Degree Liberal Arts: Administration of Justice Emphasis
- take_all from POLS6, CMUN6, PSYC6, AJ10, AJ12, AJ14, AJ16, AJ18, AJ19, AJ20, AJ21, AJ32, AJ173, AJ176,
- take at least n courses from
A.A.-T Degree Journalism
- take_all from JOUR10, JOUR16A, JOUR18A, JOUR18B, ART8A, PHIL2, PHIL4, ENGL1C,
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
A.S. Degree Health Science
- take_all from BIO9, AH9, BIO8, AH8, BIO15, AH15, AH 11, BIO11, AH3, CHEM1A, CHEM1B, CHEM30A, CHEM30B, BIO 1, BIO10, BIO7, MATH233, ECOL1, PSYC10,
- take at least n courses from
A.S.-T Degree Administration of Justice
- take at least n courses from AJ10, AJ14,
- take at least n courses from AJ12, AJ16, AJ18, AJ19, AJ20,
- take at least n courses from SOC1A, PSYC10, MATH5,
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
A.A. Degree Law Enforcement, Option 1
- take_all from AJ10, AJ12, AJ14, AJ16, AJ18,
- take at least n courses from AJ5, AJ19, AJ20, AJ21, AJ32, AJ173, AJ176, AJ184,
- take at least n courses from
Certificate of Achievement Law Enforcement, Option 1
- take_all from AJ10, AJ12, AJ14, AJ16, AJ18,
- take at least n courses from AJ5, AJ19, AJ20, AJ21, AJ32, AJ173, AJ176, AJ184,
A.A. Degree Law Enforcement, Option 2
- take_all from JLE100, JLE142, JLE143, JLE 144, AJ100A,
- take at least n courses from AJ5, AJ20, AJ19, AJ21, AJ32, AJ173, AJ176, AJ184,
- take at least n courses from
A.S. Degree Registered Nursing
- take at least n courses from ENGL 1A, MATH240, AH8, BIO8, AH9, BIO9, MATH235, MATH 242, CMUN1A, SOC1A, AH51, AH52, AH53, AH54, AH16,
- take at least n courses from AH55, AH56,
- take at least n courses from
Certificate of Achievement Registered Nursing
- take at least n courses from AH8, BIO8, AH9, BIO9, ENGL 1A, CMUN1A, SOC1A, MATH235, MATH240, MATH 242, AH51, AH52, AH54, AH53, AH16,
- take at least n courses from AH55, AH56,
- take at least n courses from
Certificate of Achievement Registered Nursing 30 Unit Option
- take at least n courses from BIO9, AH9, BIO8, AH8, AH55, AH56,
Certificate of Proficiency Nursing Assistant
- take_all from AH 280,
Certificate of Proficiency Clinical Medical Assisting
- take_all from AH170, AH171,
A.A.-T Degree Studio Art
- take_all from ART2A, ART13, ART3A, ART1B,
- take at least n courses from ART1A,
- take at least n courses from ART15A, ART34A, ART10A, ART12A, ART8A,
- take_all from
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
A.A.-T Degree Art History
- take at least n courses from ART3A, ART1A, ART1B,
- take at least n courses from ART21, HIST21,
- take at least n courses from ART13, ART2A, ART34A, ART10A, ART12A, ART8A,
- take at least n courses from ART2A, ART8A, ART10A, ART12A, ART13, ART34A,
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
A.S. Degree Biological Science
- take_all from CHEM1A, CHEM1B, BIO 1, BIO4, BIO5, PHYS2A, PHYS2B,
- take at least n courses from BIO9, AH9, BIO8, AH8, BIO15, AH15, BIO7, BIO13, BIO21, ECOL1, MATH1A, MATH 1B,
- take at least n courses from
Certificate of Achievement Biotechnology
- take_all from BIOT103, BIOT104, BIO10, CHEM30A, CHEM30B,
A.A. Degree Accounting
- take at least n courses from CSIS12L, CSIS2, BOT 100, BUS 100, CSIS8, MATH402, MATH411, ACCT20, ACCT 103, CSIS 1, ECON1, BUS1, BOT 291A, BOT 291B, BOT 291C, ENGL250,
- take_all from CSIS 120, ACCT 120, CSIS121, ACCT121, ACCT20, BOT 212, CSIS128, ACCT105,
- take at least n courses from ACCT21, ACCT190, BUS80, CSIS122,
- take at least n courses from
Certificate of Achievement General Business
- take at least n courses from CSIS2L, CSIS2, BUS11, ECON11, ACCT20, ACCT21, ECON1, ECON2, MATH5,
- take at least n courses from BUS1, BUS80, MATH1A, MATH 1B, MATH1C, MATH2, MATH2C, MATH6, MATH7, MATH8A, MATH8B, ANTH3, HIST7A, HIST7B, PHIL2, PSYC10, SOC1A,
Certificate of Achievement School Age Child Care
- take_all from CD1, CD2, CD5, CD7, CD9, CD19,
- take_all from CD3, CD8A, CD 14A, CD 14B, CD31, CD97,
Certificate of Achievement Early Intervention Assistant
- take at least n courses from CD1, CD2, CD5, CD9, CD10, CD 13, CD19, CD35, CD36, CD160, CD190, CD 30A, CD 30B,
Certificate of Proficiency Child Development: Spanish Early Childhood Education
- take at least n courses from CD1, CD2, CD5, CD9, CD 13, CD160, CD 219,
Certificate of Proficiency Computer Hardware
- take at least n courses from CSIS181, CSIS182,
- take at least n courses from CSIS2L, CSIS2, CSIS122,
Certificate of Proficiency Introduction to Computer Networking
- take at least n courses from CSIS178, CSIS 179, CSIS183,
- take at least n courses from CSIS2L, CSIS48, CSIS181, MATH205,
A.S. Degree CSIS: Programming for the Internet
- take_all from CSIS6, DM6, CSIS7, DM7, CSIS75, DM75, DM 85, CSIS 85, CSIS51, CSIS54, CSIS54L, CSIS84, CSIS5, CSIS45, CSIS78,
- take at least n courses from MATH233,
- take at least n courses from
Certificate of Achievement CSIS: Programming for the Internet
- take_all from CSIS6, DM6, CSIS7, DM7, CSIS75, DM75, DM 85, CSIS 85, CSIS51, CSIS54, CSIS54L, CSIS84, CSIS5, CSIS45, CSIS78,
- take at least n courses from MATH233,
A.S. Degree Computer Networking
- take_all from CSIS48, CSIS178, CSIS 179, CSIS181, CSIS182, CSIS183,
- take at least n courses from
Certificate of Achievement Computer Networking
- take_all from CSIS48, CSIS178, CSIS 179, CSIS181, CSIS182, CSIS183,
A.S. Degree UNIX Operating System
- take_all from CSIS48, CSIS49, CSIS18, CSIS18L, CSIS45, CSIS5, CSIS24, CSIS46, CSIS54, CSIS54L,
- take at least n courses from
Certificate of Achievement UNIX Operating System
- take_all from CSIS48, CSIS49, CSIS18, CSIS18L, CSIS45, CSIS5, CSIS24, CSIS46, CSIS54, CSIS54L,
Certificate of Proficiency Esthetician
- take_all from COS220, COS221,
Certificate of Achievement Digital Design and Imaging
- take_all from CSIS75, DM75, DM 77, CSIS 77, DM107, CSIS107, DM76, CSIS76,
- take at least n courses from CSIS 85, DM 85, DM74, CSIS74, DM80, CSIS80,
Certificate of Achievement Interactive Media
- take_all from CSIS75, DM 75, DM 77, CSIS 77, DM107, CSIS107, DM76, CSIS76,
- take_all from DM6, CSIS6, CSIS42, CSIS45, CSIS84, DM160, CSIS160,
A.S.-T Degree Business Administration
- take_all from ACCT20, ACCT21, ECON1, ECON2, BUS80,
- take at least n courses from BUS11, ECON11, MATH5, MATH6, MATH7,
- take at least n courses from CSIS2, BUS1, BUS 100,
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
Certificate of Achievement Child Development and Educational Studies
- take_all from CD1, CD2, CD 40, CD5, CD7, CD9, CD19,
- take at least n courses from CD4, CD5, CD7, CD10, CD12, CD 13, CD 15, CD16, CD17, CD18, CD 20, CD22, CD23, CD32, CD97, CD98,
A.S.-T Degree Physics
- take_all from PHYS 4A, PHYS 4B, PHYS 4C, MATH1A, MATH 1B, MATH1C,
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
A.A.-T Degree Psychology
- take_all from MATH5, PSYC10, PSYC32,
- take at least n courses from BIO10, BIO12,
- take at least n courses from PSYC11,
- take at least n courses from PSYC 40, PSYC3,
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
A.S.-T Degree Early Childhood Education
- take_all from CD 40, CD5, CD1, CD32, CD4, CD 30A, CD9, CD7,
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
A.S.-T Degree Economics
- take_all from BUS11, ECON11, ECON1, ECON2, MATH5, MATH6, MATH1A,
- take at least n courses from MATH7, MATH 1B, ACCT20, ACCT21, CSIS2, BUS 100, CSIS51,
- take at least n courses from ECON14, MATH1C, MATH2, BUS14,
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
Certificate of Achievement Law Enforcement, Option 2
- take_all from JLE100, JLE142, JLE143, JLE 144, AJ100A,
A.A.-T Degree Anthropology
- take_all from ANTH1, ANTH2, ANTH3,
- take at least n courses from MATH5,
- take at least n courses from BIO7, ANTH32, PSYC32,
- take at least n courses from ANTH1L, ANTH5, ANTH6, HIST4A, HIST4B, HIST12, MUS6, POLS3, POLS4, SOC1A, SOC1B, SOC3, SOC 4,
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
A.S.-T Degree Biology
BIO 1, BIO4, BIO 2, BIO 1, BIO5, CHEM1A, CHEM1B, MATH1A, PHYS2A, PHYS2B, PHYS 4A, PHYS 4B,
- take at least n courses from
A.A.-T Degree History
- take_all from HIST1, HIST2,
- take at least n courses from HIST4A, HIST7A, HIST4B, HIST7B,
- take at least n courses from HIST3, HIST5, HIST 6, HIST12, HIST21, ART21,
- take at least n courses from ANTH3, ANTH5, ANTH6, ART1A, ART1B, MUS1A, MUS1B, POLS6, PSYC6, POLS9, SOC9, SOC1B, SOC3, SOC 4, THEA1,
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
Certificate of Achievement Fire Science
- take_all from JFT17, JFT 8,
A.S. Degree Aviation Maintenance Technology
- take_all from AMT100, AMT101, AMT110, AMT111, AMT120, AMT121,
- take at least n courses from CSIS 1,
- take at least n courses from
A.S.-T Degree Computer Science
- take_all from CSIS5, CSIS45, CSIS24, CSIS46, CSIS27, CSIS28, CSIS26, MATH1A, MATH 1B, PHYS 4A, PHYS 4B,
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
A.A. Degree Digital Media (with options)
- take_all from DM75, CSIS75, DM76, CSIS76, DM 77, CSIS 77, DM107, CSIS107,
- take at least n courses from DM 85, CSIS 85, DM74, CSIS74, DM80, CSIS80,
- take at least n courses from
- take at least n courses from DM60, DM61, DM113,
- take at least n courses from DM6, CSIS6, CSIS42, CSIS45, CSIS84, DM160, CSIS160,
- take at least n courses from
- take at least n courses from
A.S.-T Degree Chemistry
- take_all from CHEM1A, CHEM1B, CHEM12A, CHEM12B, PHYS 4A, PHYS 4B, MATH1A, MATH 1B,
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
A.S. Degree Licensed Vocational Nursing
- take at least n courses from AH 11, BIO11, AH3, ENGL 1A, PSYC10, MATH240, BIO7, BIO9, BIO8, AH8, AH9, MATH 242, MATH235, AH 280, CMUN1A, SOC1A,
- take at least n courses from AH 51, AH 52, AH 53, AH 54,
- take at least n courses from
Certificate of Proficiency Home Health Aide
- take_all from AH 280, AH182,
Certificate of Achievement Aviation Maintenance Technology: Airframe
- take_all from AMT100, AMT101, AMT110, AMT111,
- take at least n courses from AMT190,
Certificate of Achievement Aviation Maintenance Technology
- take_all from AMT100, AMT101, AMT110, AMT111, AMT120, AMT121,
- take at least n courses from CSIS 1,
Certificate of Achievement Aviation Maintenance Technology: Powerplant
- take_all from AMT100, AMT101, AMT120, AMT121,
- take at least n courses from AMT190,
A.A.-T Degree Spanish
- take_all from SPAN1A, SPAN1B, SPAN2A, SPAN2B,
- take at least n courses from SPAN8A, ANTH3, SOC1A, CMUN4, SPAN8B,
- take at least n courses from SPAN 12A, SPAN12B, FRNH1A, FRNH1B,
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
A.A. Degree Child Development
- take at least n courses from CD1, CD2, CD4, CD9, CD19, CD 20, CD32, CD5, CD7, CD 30A, CD 30B, CD 40,
- take at least n courses from
A.A. Degree Studio Art
- take_all from ART2A, ART3A, ART79, ART13,
- take at least n courses from ART21, HIST21, ART1A, ART1B,
- take at least n courses from ART3B, ART14A, ART15A, ART15B, ART34A, ART8A,
- take at least n courses from ART10A, ART12A, ART7A,
- take at least n courses from
Certificate of Achievement Communication Studies
- take at least n courses from CMUN129, CSIS129, THEA4, CMUN2, CMUN1A, CMUN4, CMUN5, CMUN8, CMUN10, CMUN 12, CMUN6,
Certificate of Proficiency Classical and Contemporary World Philosophies and Religions
- take at least n courses from PHIL1, PHIL3A, PHIL3B, PHIL6, PHIL9, PHIL23,
A.A.-T Degree Communication Studies
- take at least n courses from CMUN1A,
- take at least n courses from CMUN8, CMUN10,
- take at least n courses from THEA4, CMUN2, CMUN4, JOUR10, CMUN5,
- take at least n courses from ANTH3, ENGL1B, ENGL1C, PSYC10, SOC1A,
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
A.A. Degree Liberal Arts: Elementary Education Emphasis
- take_all from PSYC2, CD2, ART25A, CD25A, CD3, PSYC3, PSYC7, CD7, KIN6, CD6, CD8A, CD8B, CD 14A, CD 14B, CD31, CD97, AJ20, AH3, ENGL2F, HIST3, MATH12, THEA2A, CD8C, CD 40, PSYC 40,
- take at least n courses from
A.A. Degree Wastewater Collection Technology Education
- take_all from WTRM 201, WTRM 202, WTRM 203, WTRM 204, WTRM 207, WTRM 213, WTRM 216,
- take at least n courses from WTRM 205, WTRM 206, WTRM 209, WTRM 210, WTRM 211, WTRM 212, WTRM 214, WTRM 215,
- take at least n courses from WTRM 218, WTRM 221, WTRM 232, WTRM 233, WTRM 234, WTRM235, WTRM 290, WTRM 217,
- take at least n courses from
A.A. Degree Wastewater Technology Education
- take_all from WTRM 201, WTRM 202, WTRM 203, WTRM 204, WTRM 207, WTRM 211, WTRM 213,
- take at least n courses from WTRM 209, WTRM 210, WTRM 212, WTRM 214, WTRM 215, WTRM 232,
- take at least n courses from WTRM 216, WTRM 218, WTRM 221, WTRM 233, WTRM 234, WTRM235, WTRM 290, WTRM 217,
- take at least n courses from
A.A. Degree Water Distribution Technology Education
- take_all from WTRM 201, WTRM 202, WTRM 203, WTRM 204, WTRM 205, WTRM 206, WTRM 232,
- take at least n courses from WTRM 207, WTRM 209, WTRM 210, WTRM 211, WTRM 212, WTRM 213, WTRM 214, WTRM 215,
- take at least n courses from WTRM 216, WTRM 218, WTRM 221, WTRM 233, WTRM 234, WTRM235, WTRM 290, WTRM 217,
- take at least n courses from
A.A. Degree Water Resource Management
- take_all from WTRM 201, WTRM 202, WTRM 203, WTRM 205, WTRM 206, WTRM 207,
- take at least n courses from WTRM 208, WTRM 209, WTRM 210, WTRM 211, WTRM 212, WTRM 213, WTRM 214, WTRM 215,
- take at least n courses from WTRM 204, WTRM 216, WTRM 217, WTRM 218, WTRM 219, WTRM 220, WTRM 221, WTRM 290, WTRM 233,
- take at least n courses from
A.A. Degree Water Technology Education
- take_all from WTRM 201, WTRM 202, WTRM 203, WTRM 204, WTRM 205, WTRM 206, WTRM 209,
- take at least n courses from WTRM 207, WTRM 210, WTRM 211, WTRM 212, WTRM 213, WTRM 214, WTRM 215, WTRM 232,
- take at least n courses from WTRM 216, WTRM 218, WTRM 221, WTRM 233, WTRM 234, WTRM235, WTRM 290, WTRM 217,
- take at least n courses from
A.A.-T Degree English
- take_all from ENGL1B, ENGL1C,
- take at least n courses from
- take at least n courses from ENGL5A, ENGL5B, ENGL4A, ENGL4B,
- take at least n courses from ENGL9A,
- take at least n courses from ENGL2C, ENGL2F, ENGL2J, HUM3, HUM4, JOUR16A, THEA4, ENGL2E, CMUN2,
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
Certificate of Achievement HVAC - Heating, Ventilation and Air Conditioning
- take at least n courses from HVAC 201, HVAC 202, HVAC 203, HVAC 204, HVAC 205, HVAC 206,
A.S. Degree HVAC - Heating, Ventilation and Air Conditioning
- take at least n courses from HVAC 201, HVAC 202, HVAC 203, HVAC 204, HVAC 205, HVAC 206,
- take at least n courses from
A.A. Degree Liberal Arts: Multiple Subjects
- take_all from
- take at least n courses from ENGL1B, ENGL2B, ENGL2C, ENGL2E, ENGL2J, ENGL4A, ENGL4B, ENGL5A, ENGL5B, CMUN1A, CMUN2, CMUN8, CMUN10, CMUN5,
- take at least n courses from BIO9, AH9, BIO8, AH8, BIO15, AH15, AH 11, BIO11, ANTH1, BIO 1, BIO4, BIO5, BIO7, BIO10, ECOL1, ASTR1, CHEM1A, CHEM1B, CHEM12A, CHEM12B, CHEM30A, CHEM30B, GEOL1, GEOG1, PHYS 1, PHYS2A, PHYS2B, PHYS 4A, PHYS 4B, PHYS 4C, PSCI1, BIO13, BIO12,
- take at least n courses from PSYC2, CD2, JOUR10, SOC10, CD3, PSYC3, HIST12, HUM12, PSYC7, CD7, ANTH2, ANTH3, ANTH5, CMUN4, ECON1, ECON2, GEOG2, HIST1, HIST2, HIST3, HIST5, HIST 6, POLS1, POLS3, POLS4, PSYC10, SOC1A, SOC1B, SOC3, SOC 4, SOC21, PSYC 40, SJS 5,
- take at least n courses from ART21, HIST21, ART1B, ART11, PHIL1, PHIL2, PHIL3A, PHIL3B, PHIL4, PHIL6, PHIL9, HIST7A, HIST7B, HUM3, HUM4, HUM10, THEA1, SPAN1A, SPAN1B, SPAN2A, SPAN2B, SPAN 12A, SPAN12B, HIST4A, MUS6, MUS2, MUS4A, ART6, ART25A, ART3A,
- take at least n courses from CSIS 1, CSIS2, CSIS26,
- take at least n courses from
- take at least n courses from
A.A.-T Degree Elementary Teacher Education
- take_all from CD 40, BIO12, CHEM30A, PHYS 1, GEOL1, MATH12, CMUN1A, ENGL 1A, ENGL1B, GEOG1, HIST4A, HIST1, POLS1, CD8C, PSYC 40, BIO10, BIO15, GEOG2,
- take at least n courses from ENGL1C, PHIL4,
- take at least n courses from ART6, MUS15,
- take at least n courses from CD25A, ART25A, CD8A, MATH14,
NC-Cmptncy: NC Certificate of Competency ESL for Child Care
- take at least n courses from ESL 712, ESL 713,
Certificate of Achievement Digital Video and Animation
- take_all from CSIS75, DM75, DM 77, CSIS 77, DM107, CSIS107, DM76, CSIS76,
- take_all from DM60, DM61, DM113,
A.S. Degree Computer Programming
- take at least n courses from CSIS45, CSIS24, CSIS46, CSIS 27, CSIS26, CSIS42, CSIS48,
- take at least n courses from CSIS12, CSIS12L, CSIS28, CSIS24, CSIS45, CSIS51, CSIS49, CSIS44, CSIS5, CSIS42, CSIS54, CSIS54L, CSIS6, DM6, CSIS160, DM160, CSIS78, CSIS84,
- take at least n courses from
Certificate of Achievement Computer Programming
- take at least n courses from CSIS48, CSIS45, CSIS24, CSIS46, CSIS 27, CSIS26, CSIS42,
- take at least n courses from CSIS28, CSIS12, CSIS12L, CSIS24, CSIS45, CSIS51, CSIS49, CSIS44, CSIS5, CSIS42, CSIS54, CSIS54L, CSIS6, DM6, CSIS160, DM160, CSIS78, CSIS84,
NC-Cmptncy: NC Certificate of Competency ESL Citizenship
ESL702A, ESL702B,
A.A.-T Degree Kinesiology
- take_all from KIN2, BIO7, BIO9, KIN39, KIN83, KIN16A, KIN61A, KIN71A, KIN88A, KIN88B, KIN24A, KIN 44A, KIN66A, KIN66B, KIN24B, KIN 44B, KIN62A, KIN62B, KIN64A, KIN64B, KIN68A, KIN68B, KIN70A, KIN70B, KIN73A, KIN73B, KIN74A, KIN74B, KIN81A, KIN81B, KIN82A, KIN82B, KIN89A, KIN89B, KIN17A, KIN17B, KIN18A, KIN18B, KIN19A, KIN19B, KIN20A, KIN20B, KIN31A, KIN31B, KIN79A, KIN79B, KIN80A, KIN87, KIN121A, KIN121B, KIN125A, KIN125B, KIN127A, KIN127B, KIN137A, KIN137B, KIN165A, KIN165B, ATH77, ATH27, ATH25, ATH37, ATH21, MATH5, CHEM1A, CHEM30A, PHYS2A, PHYS 4A, AH 30,
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
Certificate of Achievement Kinesiology and Athletics: Personal Fitness Training
- take at least n courses from
- take at least n courses from BIO15, AH15, KIN3, KIN 85, KIN84,
- take at least n courses from AH 11, HE1,
Certificate of Proficiency Welding Technology
- take at least n courses from WELD 201, WELD 202, WELD 203,
NC-Complet: NC Certificate of Completion Welding Technology
- take at least n courses from WELD 701, WELD 702, WELD 703,
NC-Cmptncy: NC Certificate of Competency ESL Lifeskills
- take at least n courses from ESL786, ESL787, ESL 789, ESL 788,
- take at least n courses from ESL775, ESL776, ESL784, ESL785,
NC-Complet: NC Certificate of Completion Vocational ESL
- take at least n courses from ESL704A, ESL704B,
Certificate of Proficiency ESL Advanced Level
- take at least n courses from ESL562, ESL563, ESL 564, ESL 569, ESL 564,
Certificate of Proficiency ESL Intermediate Level
- take at least n courses from ESL 541, ESL 542, ESL543, ESL547, ESL548, ESL 549, ESL 541,
NC-Complet: NC Certificate of Completion GED Preparation
- take at least n courses from ENGL 756, GUID700,
A.S.-T Degree Film, Television, and Electronic Media
- take_all from THEA20, HUM3, MCTV16, JOUR10,
- take at least n courses from MCTV6, THEA6,
- take at least n courses from HUM25, MCTV18, THEA18, MCTV 17A, THEA 17A,
- take at least n courses from
- take at least n courses from HUM4, HUM6, HUM10, MCTV 43, MCTV 19, THEA 19,
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
A.A.-T Degree Philosophy
- take at least n courses from PHIL2, PHIL1, PHIL3A,
- take at least n courses from PHIL7A, PHIL7B, PHIL4,
- take at least n courses from HIST7A, HIST7B, PHIL3A, PHIL3B,
- take at least n courses from PHIL9, PHIL6, PHIL15, PHIL12,
- take at least n courses from
- take at least n courses from
- take at least n courses from
Certificate of Achievement Business: Accounting Option
- take at least n courses from CSIS 1, CSIS2,
- take at least n courses from ACCT 103, ACCT20, ACCT 120,
- take at least n courses from ACCT21, ACCT105, BUS1, BUS11, ECON11, MATH5, BUS14, ECON14, BUS80, BOT 100, BUS 100, CSIS128, CMUN 12, ECON1, ECON2, ACCT 120, CSIS 120, ACCT121, CSIS121, BOT 212, BOT 291A, BOT 291B, BOT 291C, CSIS 129, CMUN 129, CSIS 212, CSIS 126, CSIS122, CSIS75, DM 75, CSIS8, CSIS6, DM6, ACCT20,
Certificate of Achievement Business: Management Option
- take at least n courses from CSIS 1, CSIS2,
- take at least n courses from MKTG100, MGMT104, MGMT120, MGMT101,
- take at least n courses from BOT 291A, BOT 291B, BOT 291C, BUS1, BUS11, ECON11, MATH5, BUS80, BUS14, ECON14, BOT 100, BUS 100, CSIS8, CSIS128, CMUN 12, ECON1, ECON2, ACCT21, ACCT105, ACCT 120, CSIS 120, ACCT121, CSIS121, BOT 212, CSIS6, DM6, CSIS75, DM 75, CSIS122, CSIS 212, CSIS 126, CSIS 129, CMUN 129, ACCT20,
Certificate of Achievement Business: Medical Office Option
- take at least n courses from CSIS2, CSIS 1,
- take at least n courses from BOT180, BOT 281, BOT182, CSIS 126, BOT 283,
- take at least n courses from BOT 212, BOT 291A, BOT 291B, BOT 291C, CSIS122, CSIS 212, CSIS8, ACCT21, ACCT105, ACCT 120, CSIS 120, ACCT121, CSIS121, BOT 100, BUS 100, BUS1, BUS11, ECON11, MATH5, BUS14, ECON14, BUS80, CSIS6, DM6, CSIS75, DM 75, CSIS 126, CSIS128, CSIS 129, CMUN 129, CMUN 12, ECON1, ECON2, ACCT20,
Certificate of Achievement Business: Office Applications Option
- take at least n courses from CSIS 1, CSIS2,
- take at least n courses from CSIS121, CSIS122, CSIS 126, CSIS 129, CMUN 129, ACCT121,
- take at least n courses from BOT 212, BOT 291A, BOT 291B, BOT 291C, BOT 100, BUS 100, BUS80, CMUN 12, CSIS 120, ACCT 120, CSIS8, CSIS 212, DM 75, CSIS75, CSIS128, ACCT21, ACCT105, ACCT121, CSIS121, BUS1, BUS11, ECON11, MATH5, CSIS6, DM6, CSIS122, CSIS 126, CSIS 129, CMUN 129, ECON1, ECON2, BUS14, ECON14, ACCT20,
Certificate of Achievement Real Estate
- take_all from RE160, RE162,
- take at least n courses from BUS80, ACCT 103,
Certificate of Achievement Business: Technical Publishing Option
- take at least n courses from CSIS 1, CSIS2,
- take at least n courses from CSIS6, CSIS75, DM6, DM 75, CSIS 74, DM 74, CSIS76, DM76, CSIS80, DM80, CSIS 85, DM 85,
- take at least n courses from BOT 100, BUS 100, BOT 291A, BOT 291B, BOT 291C, CMUN 129, CSIS 129, CMUN 12, CSIS8, CSIS 212, CSIS122, ACCT21, ACCT105, ACCT 120, CSIS 120, ACCT121, CSIS121, BOT 212, BUS1, BUS11, ECON11, MATH5, BUS14, ECON14, BUS80, CSIS6, DM6, CSIS75, DM 75, CSIS 126, CSIS128, ECON1, ECON2, ACCT20,
A.A. Degree Business (with options)
- take at least n courses from CSIS 1, CSIS2,
- take at least n courses from
- take at least n courses from ACCT 120, CSIS 120, ACCT20, ACCT 103,
- take at least n courses from MGMT101, MGMT104, MKTG100, MGMT120,
- take at least n courses from BOT180, BOT 281, BOT182, CSIS 126, BOT 283,
- take at least n courses from CSIS121, CSIS 126, CSIS122, CSIS 129, CMUN 129, ACCT121,
- take at least n courses from CSIS6, DM6, CSIS75, DM 75, CSIS 74, DM 74, CSIS76, DM76, CSIS80, DM80, CSIS 85, DM 85,
- take at least n courses from BUS1, BUS80, ACCT21, ACCT105, ACCT 120, CSIS 120, ACCT121, CSIS121, BOT 212, BOT 291A, BOT 291B, BOT 291C, BOT 100, BUS 100, BUS11, ECON11, MATH5, BUS14, ECON14, CSIS6, DM6, CSIS8, CSIS75, DM 75, CSIS122, CSIS 212, CSIS 126, CSIS128, CSIS 129, CMUN 129, CMUN 12, ECON1, ECON2, ACCT20, CSIS 212,
- take at least n courses from
A.S.-T Degree Public Health Science
HE1, HE 5, MATH5, BIO10, CHEM1A, CHEM30A, PSYC10, BIO7, BIO9, ECON1, ECON2, BIO11, HE2, SOC1A,
- take at least n courses from
A.A. Degree Kinesiology
- take_all from KIN2, BIO15,
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from HE1, KIN5, KIN 6, KIN8,
- take at least n courses from KIN7, KIN15, KIN7,
- take at least n courses from KIN3, KIN4A,
- take at least n courses from KIN84, KIN 85,
- take at least n courses from KIN3, KIN4A, KIN4B, KIN4C, KIN5, KIN6, KIN7, KIN8, KIN15, KIN84, KIN 85, HE1, BIO7, BIO9, BIO11, BUS80, KIN 92,
- take at least n courses from
A.S. Degree Engineering
- take at least n courses from ENGR 10, MATH1A, MATH 1B, MATH1C, PHYS 4A, PHYS 4B,
- take at least n courses from
- take at least n courses from ENGR5, CSIS45,
- take at least n courses from ENGR1, ENGR2, ENGR3, ENGR4,
- take at least n courses from CHEM1A, ENGR5, ENGR2, ENGR3, PHYS 4C, MATH2, MATH2C, CHEM1A, CSIS45, CHEM1B, ENGR3, PHYS 4C, MATH2, MATH2C, CHEM1A, ENGR5, ENGR2, PHYS 4C, CHEM1B, MATH2, MATH2C, CSIS45, CSIS46, MATH 16, ENGR3, PHYS 4C, MATH2, MATH2C, CHEM1A, ENGR5, ENGR2, ENGR3, CHEM1B, MATH2, MATH2C,
- take at least n courses from
A.A.-T Degree Sociology
- take_all from SOC1A, SOC1B, MATH5, SOC21, SOC3, SOC 4, SOC10,
- take at least n courses from
- take at least n courses from
NC-Complet: NC Certificate of Completion Computer Applications for ESL Students
- take at least n courses from ESL 707, ESL 709, ESL 710, ESL 705, ESL 706,
A.A.-T Degree Social Justice Studies
- take_all from SOC3, SJS 5, CMUN4, SOC1B,
- take at least n courses from
- take at least n courses from HIST12, HIST5, HIST 6, HUM12,
- take at least n courses from ENGL2B, ENGL2E, HIST4A, HIST4B, PHIL3B,
- take at least n courses from CMUN6, ANTH3, POLS6, PSYC6, SOC1B,
- take at least n courses from BUS11, MATH5, PSYC32,
- take at least n courses from SPAN2B, SPAN 12A,
- take at least n courses from
- take at least n courses from
NC-Cmptncy: NC Certificate of Competency ESL Intermediate II Level
- take at least n courses from ESL 741, ESL 742, ESL 743, ESL748, ESL747, ESL 749,
Certificate of Achievement Wastewater Collection Technology Education
- take_all from WTRM 202, WTRM 203, WTRM 204, WTRM 207, WTRM 213, WTRM 216, WTRM 201,
- take at least n courses from WTRM 205, WTRM 206, WTRM 209, WTRM 210, WTRM 211, WTRM 212, WTRM 214, WTRM 215,
- take at least n courses from WTRM 217, WTRM 218, WTRM 221, WTRM 232, WTRM 233, WTRM 234, WTRM235, WTRM 290,
Certificate of Achievement Wastewater Technology Education
- take_all from WTRM 201, WTRM 202, WTRM 203, WTRM 204, WTRM 207, WTRM 211, WTRM 213,
- take at least n courses from WTRM 209, WTRM 210, WTRM 212, WTRM 214, WTRM 215, WTRM 232,
- take at least n courses from WTRM 216, WTRM 217, WTRM 218, WTRM 221, WTRM 233, WTRM 234, WTRM235, WTRM 290,
Certificate of Achievement Water Distribution Technology Education
- take_all from WTRM 201, WTRM 202, WTRM 203, WTRM 204, WTRM 205, WTRM 206, WTRM 232,
- take at least n courses from WTRM 207, WTRM 209, WTRM 210, WTRM 211, WTRM 212, WTRM 213, WTRM 214, WTRM 215,
- take at least n courses from WTRM 216, WTRM 217, WTRM 218, WTRM 221, WTRM 233, WTRM 234, WTRM235, WTRM 290,
Certificate of Achievement Water Resource Management
- take_all from WTRM 201, WTRM 202, WTRM 203, WTRM 205, WTRM 206, WTRM 207,
- take at least n courses from WTRM 208, WTRM 209, WTRM 210, WTRM 211, WTRM 212, WTRM 213, WTRM 214, WTRM 215,
- take at least n courses from WTRM 204, WTRM 216, WTRM 217, WTRM 218, WTRM 219, WTRM 220, WTRM 221, WTRM 233, WTRM 290,
Certificate of Achievement Water Technology Education
- take_all from WTRM 201, WTRM 202, WTRM 203, WTRM 204, WTRM 205, WTRM 206, WTRM 209,
- take at least n courses from WTRM 207, WTRM 210, WTRM 211, WTRM 212, WTRM 213, WTRM 214, WTRM 215, WTRM 232,
- take at least n courses from WTRM 216, WTRM 218, WTRM 217, WTRM 221, WTRM 233, WTRM 234, WTRM235, WTRM 290,
A.A.-T Degree Political Science
- take_all from POLS1,
- take at least n courses from PSYC32, POLS32, POLS3, POLS4, POLS10, MATH5,
- take at least n courses from POLS5, POLS7, POLS 12,
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
NC-Complet: NC Certificate of Completion Job Coaching
GUID 600, GUID 601,
NC-Complet: NC Certificate of Completion Workforce Preparation and Success
LIFE 700, LIFE 701,
Certificate of Achievement Construction Management
- take at least n courses from CMGT 101, CMGT 102, CMGT 103, CMGT 104, CMGT 105,
NC-Cmptncy: NC Certificate of Competency ESL Beginning Level
- take at least n courses from ESL 727, ESL 728,
NC-Cmptncy: NC Certificate of Competency ESL Intermediate I Level
- take at least n courses from ESL737, ESL738, ESL 731, ESL 739,
Certificate of Achievement Licensed Vocational Nursing
- take at least n courses from AH 71, AH 72, AH 73,
Certificate of Achievement Television Performance Option
- take at least n courses from THEA18, MCTV18, THEA16, MCTV16, THEA 17A, THEA6, THEA20, HUM25, MCTV6, THEA 19, THEA12A, THEA13A, MCTV 43,
Certificate of Achievement Film and Television Production
MCTV6, MCTV18, THEA20, MCTV 43, HUM25, MCTV16, MCTV 17A, MCTV 19, HUM3, HUM4, HUM6, HUM10,
Certificate of Achievement Cybersecurity
- take at least n courses from CSIS 179, CSIS 184, AJ184, CSIS 186, CSIS 187,
A.S.-T Degree Business Administration 2.0
- take at least n courses from ACCT20, ACCT21, ECON1, ECON2, BUS80,
- take at least n courses from MATH6, MATH7,
- take at least n courses from BUS11, ECON11, MATH5,
- take at least n courses from BUS1, BUS 100, BOT 100,
- take at least n courses from
- take at least n courses from
- take at least n courses from
- take at least n courses from
NC-Complet: NC Certificate of Completion Small Business Development
- take_all from BUS 700, BUS 701,
NC-Cmptncy: NC Certificate of Competency ESL Advanced Level
- take at least n courses from ESL 763, ESL 762, ESL 764, ESL 769,
Certificate of Achievement California State University (CSU) General Education Pattern
- take at least n courses from CMUN1A, CMUN5, CMUN8, CMUN10, ENGL 1A, PHIL2, PHIL4, ENGL1C, CMUN 3,
- take at least n courses from BIO9, BIO8, BIO15, AH15, BUS11, ECON11, ASTR1, CHEM1A, CHEM1B, CHEM12A, CHEM12B, CHEM30A, CHEM30B, GEOG1, GEOL1, PHYS 1, PHYS2A, PHYS2B, PHYS 4A, PHYS 4B, PHYS 4C, PSCI1, PSCI2, ANTH1, BIO 1, BIO4, BIO5, BIO7, BIO10, BIO12, BIO13, ECOL1, BUS14, MATH1A, MATH 1B, MATH1C, MATH2, MATH2C, MATH5, MATH6, MATH7, MATH8A, MATH8B, MATH12, MATH14, ANTH1L, ENVS1, MATH 11, BIO 2, MATH 16, ECON14,
- take at least n courses from JOUR10, SOC10, ART25A, CD25A, HIST12, ART21, HIST21, THEA4, CMUN2, ART1A, ART1B, ART2A, ART3A, ART6, ART8A, ART10A, ART13, HUM6, HUM10, MUS1A, MUS1B, MUS3A, MUS4A, MUS6, THEA1, THEA3, THEA7, THEA12A, THEA20, ART11, ENGL1B, ENGL2B, ENGL2C, ENGL2E, ENGL2F, ENGL2J, ENGL4A, ENGL4B, ENGL5A, ENGL5B, ENGL9A, ENGL9B, FRNH1A, FRNH1B, HIST1, HIST3, HIST4A, HIST4B, HIST5, HIST 6, HIST7A, HIST7B, HUM3, HUM4, HUM10, JPN1A, JPN1B, PHIL1, PHIL3A, PHIL3B, PHIL6, PHIL9, SPAN1A, SPAN1B, SPAN2A, SPAN2B, SPAN 12A, SPAN12B, ART14A, DM60, MUS2, THEA25, THEA26, MCTV16, CHN1A, CHN1B, PHIL7A, PHIL7B, PHIL12, PHIL15, FRNH 2A, FRNH 2B, ART 4,
- take at least n courses from PSYC2, CD2, JOUR10, SOC10, CD3, PSYC3, AJ5, POLS5, HIST12, POLS6, CMUN6, PSYC6, PSYC7, CD7, HIST1, HIST2, POLS1, ANTH2, ANTH3, ANTH5, ECON1, ECON2, CMUN4, SOC3, HIST5, HIST 6, SOC 4, GEOG2, HIST1, HIST2, HIST3, HIST4A, HIST4B, HIST5, HIST 6, ANTH6, CMUN4, POLS1, POLS3, POLS4, PSYC10, PSYC11, SOC1A, SOC1B, SOC3, SOC 4, AJ10, ANTH32, CD 40, POLS10, POLS12, POLS32, PHIL12, PSYC 40, PSYC32, SJS 5, HE 5, SOC 25, ETHN 3B, ECON 10, ETHN 12, HIST 10, ETHN 10B, ANTH 10, ETHN 10A, ENGL 2L, ETHN 2L, ENGL 2R, ETHN 2R, ETHN 1, ETHN 2,
- take at least n courses from AH 11, GUID1, AH3, GUID6, HE1, HE2, SOC21, KIN8, KIN1, GUID27, HE 92, KIN 92,
- take at least n courses from ETHN 3B, ETHN 10B,
Certificate of Proficiency Peer Education Leadership - Basic
- take at least n courses from GUID52, PSYC52, GUID 28, ENGL12A,
Certificate of Proficiency Peer Education Leadership - Advanced
- take at least n courses from GUID52, PSYC52, GUID 28, ENGL12A,
- take at least n courses from ENGL 12, ENGL12C, ENGL12D, CMUN1A, CMUN4, CMUN6, POLS6, PSYC6, CMUN8, CMUN10,
A.A. Degree Communication Studies
- take at least n courses from CMUN1A, CMUN4, CMUN8, CMUN10, PSYC10,
- take_all from JOUR10, SOC10, POLS6, CMUN6, PSYC6, GUID27, CMUN5, PHIL4, ANTH3, SOC1A, SOC21, SOC 4,
- take at least n courses from
Certificate of Achievement Communication Studies: Interpersonal Communication
- take at least n courses from POLS6, CMUN6, PSYC6, GUID27, CMUN5, CMUN8, PSYC10, SOC1A, CMUN 12,
Certificate of Achievement Cosmetology
- take_all from COS200, COS201, COS202,
A.S. Degree Cosmetology
- take_all from COS200, COS201, COS202,
- take at least n courses from
Certificate of Achievement Intersegmental General Education Transfer Curriculum (IGETC)
- take at least n courses from ENGL 1A, ENGL1C, PHIL4, CMUN1A, CMUN5, CMUN8, CMUN10,
- take at least n courses from BUS11, ECON11, MATH1A, MATH 1B, MATH1C, MATH2, MATH2C, MATH5, MATH6, MATH7, MATH8A, MATH8B, MATH14, MATH 11, MATH 16,
- take at least n courses from ART21, HIST21, ART1A, ART1B, ART6, HUM6, MUS1A, MUS1B, MUS6, THEA1, THEA3, THEA7, ENGL1B, ENGL2B, ENGL2C, ENGL2E, ENGL2F, ENGL2J, ENGL4A, ENGL4B, ENGL5A, ENGL5B, HIST1, HIST2, HIST3, HIST4A, HIST4B, HIST5, HIST 6, HIST7A, HIST7B, HUM3, HUM4, HUM10, PHIL1, PHIL3A, PHIL3B, PHIL6, PHIL9, SPAN2A, SPAN2B, MUS2, MUS6, MCTV16, PHIL7A, PHIL7B, PHIL15, PHIL12, ART 4, FRNH 2A, FRNH 2B, MUS15, ENGL 2L, ETHN 2L,
- take at least n courses from PSYC2, CD2, JOUR10, SOC10, CD3, PSYC3, AJ5, POLS5, HIST12, ANTH2, ANTH3, ANTH5, ANTH6, CMUN4, ECON1, ECON2, GEOG2, HIST1, HIST2, HIST3, HIST4A, HIST4B, HIST5, HIST 6, POLS1, POLS3, POLS4, PSYC10, PSYC11, SOC1A, SOC1B, SOC3, SOC 4, AJ10, ANTH32, POLS7, POLS10, POLS32, PSYC32, PSYC 40, SJS 5, SOC 25, CD 40, ECON 10, ETHN 12, ANTH 10, ETHN 10A, ENGL 2L, ETHN 2, ENGL 2R, ETHN 2R, ETHN 1, ETHN 2, HIST 10, ETHN 10B, ETHN 12, ETHN 3B,
- take at least n courses from BIO9, BIO8, BIO15, AH15, ASTR1, CHEM1A, CHEM1B, CHEM12A, CHEM12B, CHEM30A, CHEM30B, GEOG1, GEOL1, PSCI1, PSCI2, PHYS 1, PHYS2A, PHYS2B, PHYS 4A, PHYS 4B, PHYS 4C, ANTH1, BIO 1, BIO4, BIO5, BIO7, BIO10, BIO12, BIO13, ECOL1, ANTH1L, ENVS1, BIO 2,
- take at least n courses from FRNH1B, JPN1B, SPAN1B, SPAN2A, SPAN2B, SPAN 12A, SPAN12B, CHN1B, FRNH 2A, FRNH 2B,
- take at least n courses from

View File

@ -2159,6 +2159,58 @@ def track_a_user():
a = input("User ID? ")
track_user(a)
def compare_db_tables():
import requests
# Download JSON files
url_a = 'http://www.gavilan.edu/staff/tlc/db.php?a=dir'
url_b = 'http://www.gavilan.edu/staff/tlc/db.php?a=confusers'
response_a = requests.get(url_a)
print('got 1')
response_b = requests.get(url_b)
print('got 2')
# Parse JSON data
data_a = response_a.json()
data_b = response_b.json()
by_email_conf = {}
for item in data_a:
by_email_conf[item['email']] = item
# Extract email addresses from each file
emails_a = {item['email'] for item in data_a}
emails_b = {item['email'] for item in data_b}
emails_a = {item for item in emails_a if item is not None}
emails_b = {item for item in emails_b if item is not None}
emails_a = {item.lower() for item in emails_a}
emails_b = {item.lower() for item in emails_b}
# Find common emails
common_emails = emails_a.intersection(emails_b)
# Find distinct emails for each file
distinct_emails_a = emails_a.difference(emails_b)
distinct_emails_b = emails_b.difference(emails_a)
# Print the results
print("Common Emails:")
for email in sorted(list(common_emails)):
print(email)
print("\nDistinct Emails in Staff directory:")
for email in sorted(list(distinct_emails_a)):
print(email)
print("\nDistinct Emails in conf users table:")
for email in sorted(list(distinct_emails_b)):
print(email)
out = codecs.open('cache/users_fix.sql','w','utf-8')
for e in common_emails:
out.write(f"update `conf_users` set `p2id`='{by_email_conf[e]['id']}' where lower(`email`)='{e}';\n")
if __name__ == "__main__":
@ -2185,6 +2237,7 @@ if __name__ == "__main__":
21: ['Teachers new this semester', find_new_teachers],
22: ['Sync personnel and conference user databases', user_db_sync],
23: ['Find non-gnumbers', find_no_goo ],
24: ['compare user tables', compare_db_tables],
#3: ['Main index, 1 year, teachers and their classes', getAllTeachersInTerm],
#5: ['Match names in schedule & ilearn', match_usernames],
#6: ['Create Dept\'s ZTC list', create_ztc_list],

16
zinc.py Normal file
View File

@ -0,0 +1,16 @@
from minizinc import Instance, Model, Solver
# Load
nqueens = Model("cache/playground.mzn")
# Find the MiniZinc solver configuration for Gecode
gecode = Solver.lookup("gecode")
# Create an Instance of the n-Queens model for Gecode
instance = Instance(gecode, nqueens)
# Assign 4 to n
#instance["n"] = 4
#result = instance.solve()
result = instance.solve(all_solutions=True)
# Output the array q
#print(result)
for i in range(len(result)):
print(result[i])