AI Program Requirements Quarters: autumn winter spring |
- Take at least 6 courses |
- Take at most 3 courses per quarter |
|
|
|
Professor |
# Courses |
|
2 |
|
1 |
|
1 |
|
|
holds(course,cs157)
holds(course,cs227b)
holds(course,cs228)
holds(course,cs331b)
value(units(cs124),3)
value(units(cs131),3)
value(units(cs223a),3)
value(units(cs224n),3)
value(units(cs225a),3)
value(units(cs227b),3)
value(units(cs228),3)
value(units(cs229),3)
value(units(cs231n),3)
value(units(cs238),3)
value(units(cs273a),3)
value(units(cs273b),3)
value(units(cs276),3)
value(units(cs279),3)
value(units(cs157),3)
value(units(cs331b),3)
course(cs124,"Natural Language Processing")
course(cs124,"Machine Learning")
course(cs131,"Computer Vision")
course(cs157,"Logic")
course(cs223a,"Robotics")
course(cs224n,"Natural Language Processing")
course(cs224n,"Machine Learning")
course(cs225a,"Robotics")
course(cs227b,"Logic")
course(cs228,"Machine Learning")
course(cs228,"Natural Language Processing")
course(cs228,"Computer Vision")
course(cs228,"Computational Biology")
course(cs229,"Machine Learning")
course(cs231n,"Computer Vision")
course(cs231n,"Machine Learning")
course(cs238,"Machine Learning")
course(cs238,"Robotics")
course(cs273a,"Computational Biology")
course(cs273a,"Computational Biology")
course(cs273b,"Computational Biology")
course(cs273b,"Machine Learning")
course(cs276,"Information Retrieval")
course(cs279,"Computational Biology")
course(cs279,"Computational Biology")
course(cs331b,"Computer Vision")
course(cs331b,"Machine Learning")
quarter(winter,cs124)
quarter(autumn,cs131)
quarter(autumn,cs157)
quarter(winter,cs223a)
quarter(winter,cs224n)
quarter(spring,cs225a)
quarter(spring,cs227b)
quarter(winter,cs228)
quarter(winter,cs229)
quarter(winter,cs231n)
quarter(autumn,cs238)
quarter(autumn,cs273a)
quarter(autumn,cs273b)
quarter(spring,cs276)
quarter(spring,cs279)
quarter(spring,cs331b)
teaches(jurafsky,cs124)
teaches(li,cs131)
teaches(genesereth,cs157)
teaches(khatib,cs223a)
teaches(manning,cs224n)
teaches(khatib,cs225a)
teaches(genesereth,cs227b)
teaches(ermon,cs228)
teaches(duchi,cs229)
teaches(li,cs231n)
teaches(kochenderfer,cs238)
teaches(batzoglou,cs273a)
teaches(batzoglou,cs273b)
teaches(manning,cs276)
teaches(dror,cs279)
teaches(savarese,cs331b)
photo(jurafsky,"http://ai.stanford.edu/wp-content/uploads/2014/04/dan-jurafsky.jpg")
photo(li,"http://ai.stanford.edu/wp-content/uploads/2011/07/fei-fei-li.png")
photo(genesereth,"http://ai.stanford.edu/wp-content/uploads/2011/07/faculty_michael_g.jpg")
photo(khatib,"http://ai.stanford.edu/wp-content/uploads/2011/07/faculty_oussama_k.jpg")
photo(manning,"http://ai.stanford.edu/wp-content/uploads/2011/07/faculty_chris_m.jpg")
photo(ermon,"http://ai.stanford.edu/wp-content/uploads/2011/07/faculty_stefano_e.jpg")
photo(duchi,"http://ai.stanford.edu/wp-content/uploads/2014/07/duchi_john.jpg")
photo(kochenderfer,"http://ai.stanford.edu/wp-content/uploads/2014/07/mykel_kochenderfer_affiliate_faculty.jpg")
photo(batzoglou,"http://ai.stanford.edu/wp-content/uploads/2011/07/faculty_serafim_b.jpg")
photo(dror,"http://ai.stanford.edu/wp-content/uploads/2014/08/dror_affiliate.jpg")
photo(savarese,"http://ai.stanford.edu/wp-content/uploads/2011/07/faculty_silvio_s.jpg")
ncourses(QUARTER,N) :-
quarter(QUARTER,X) &
countofall(COURSE,quarter(QUARTER,COURSE) & value(COURSE,true),N)
area(AREA,N) :-
course(X,AREA) &
setofall([V,COURSE],
course(COURSE,AREA) &
holds(course,COURSE) &
value(units(COURSE),V),
S) &
map(first,S,L) &
sum(L,N)
teacher(T,N) :-
teaches(TEACHER,X) &
countofall(COURSE,teaches(TEACHER,COURSE) & holds(course,COURSE),N) &
min(N,1,1) &
photo(TEACHER,PHOTO) &
stringappend("<img src='",PHOTO,"' width='40' height='40' title='",TEACHER,"'/>",T)
nonempty :- teacher(T,N)
style(teacher,visibility,visible) :- nonempty
style(teacher,visibility,hidden) :- ~nonempty
style(row(X),"background-color","rgba(239,72,54,0.3)") :-
quarter(autumn,X)
style(row(X),"background-color","rgba(34,167,240,0.3)") :-
quarter(winter,X)
style(row(X),"background-color","rgba(135,211,124,0.6)") :-
quarter(spring,X)
style(d(X),display,"table-row") :-
course(X,Y) &
holds(course,X)
style(d(X),display,none) :-
course(X,Y) &
~holds(course,X)
innerhtml(u(X),V) :-
course(X,Y) &
holds(course,X) &
value(units(X),V)
totalunits(T) :-
setofall([V,X,Y],
teaches(Y,X) &
holds(course,X) &
value(units(X),V),
S) &
map(first,S,L) &
sum(L,T)
innerhtml(t,T) :- totalunits(T)
satisfied(c1) :-
countofall([X,Y],
teaches(Y,X) & holds(course,X),
C) &
min(C,6,6)
satisfied(c2) :-
countofall([X,Z,C],
quarter(X,Z) &
countofall(Y,quarter(X,Y) & holds(course,Y),C) &
min(C,4,4),
0)
style(R,color,red) :- req(R) & ~satisfied(R)
style(R,color,black) :- req(R) & satisfied(R)
req(c1)
req(c2)
first(X!Y,X)