rubyuw 0.99.12 → 0.99.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/VERSION +1 -1
- data/lib/rubyuw/curriculum.rb +33 -33
- data/lib/rubyuw.rb +1 -1
- data/rubyuw.gemspec +3 -2
- data/test/mocked/curriculum_test.rb +102 -69
- data/test/mocked/fixture_pages/time_schedule_arthis.html +524 -0
- metadata +3 -2
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.99.
|
|
1
|
+
0.99.13
|
data/lib/rubyuw/curriculum.rb
CHANGED
|
@@ -42,31 +42,31 @@ module RubyUW
|
|
|
42
42
|
def find(curriculum, term)
|
|
43
43
|
curriculum = curriculum.strip # So we don't modify the original variable
|
|
44
44
|
type = !!(curriculum =~ /^(.+?)(\d+)$/) ? :course : :curriculum
|
|
45
|
-
|
|
45
|
+
|
|
46
46
|
# Strip '+' out of terms so that WIN+2010 works (which is expected for SLNs and such)
|
|
47
47
|
term = term.gsub('+', '')
|
|
48
|
-
|
|
48
|
+
|
|
49
49
|
send("find_#{type}", curriculum, term)
|
|
50
50
|
end
|
|
51
|
-
|
|
51
|
+
|
|
52
52
|
protected
|
|
53
|
-
|
|
53
|
+
|
|
54
54
|
def find_curriculum(curriculum, term)
|
|
55
55
|
page = Base.connection.get("http://www.washington.edu/students/timeschd/#{term}/")
|
|
56
56
|
raise Errors::QuarterDoesNotExistError.new if !quarter_exists?(page)
|
|
57
|
-
|
|
57
|
+
|
|
58
58
|
curriculum_page = extract_curriculum_url(curriculum, page)
|
|
59
59
|
raise Errors::CurriculumDoesNotExistError.new if curriculum_page.nil?
|
|
60
60
|
|
|
61
61
|
curriculum_page = Base.connection.get("http://www.washington.edu/students/timeschd/#{term}/#{curriculum_page}")
|
|
62
62
|
raise Errors::CurriculumDoesNotExistError.new if !curriculum_exists?(page)
|
|
63
|
-
|
|
63
|
+
|
|
64
64
|
return {
|
|
65
65
|
:type => :curriculum,
|
|
66
66
|
:courses => extract_courses(curriculum_page)
|
|
67
67
|
}
|
|
68
68
|
end
|
|
69
|
-
|
|
69
|
+
|
|
70
70
|
def find_course(raw_curriculum, term)
|
|
71
71
|
curriculum, course = parse_curriculum(raw_curriculum)
|
|
72
72
|
curriculum_data = find_curriculum(curriculum, term)
|
|
@@ -78,25 +78,25 @@ module RubyUW
|
|
|
78
78
|
:courses => courses
|
|
79
79
|
}
|
|
80
80
|
end
|
|
81
|
-
|
|
81
|
+
|
|
82
82
|
def find_course_in_data(course, data)
|
|
83
83
|
data[:courses].each do |course_data, listing|
|
|
84
84
|
next unless course_data[:name] =~ /#{course}$/
|
|
85
|
-
|
|
85
|
+
|
|
86
86
|
return listing
|
|
87
87
|
end
|
|
88
|
-
|
|
88
|
+
|
|
89
89
|
return nil
|
|
90
90
|
end
|
|
91
|
-
|
|
91
|
+
|
|
92
92
|
def extract_courses(page)
|
|
93
93
|
nodes = page.search("//table[@bgcolor=\"#d3d3d3\"][1]//following-sibling::table")
|
|
94
|
-
|
|
94
|
+
|
|
95
95
|
courses = {}
|
|
96
96
|
current_course = []
|
|
97
|
-
|
|
97
|
+
|
|
98
98
|
nodes.each do |node|
|
|
99
|
-
if node[:bgcolor] == "#99ccff"
|
|
99
|
+
if node[:bgcolor] == "#99ccff" || node[:bgcolor] == "#ccffcc"
|
|
100
100
|
# If its a course header, start putting course listings under that
|
|
101
101
|
# course header
|
|
102
102
|
current_course = []
|
|
@@ -107,18 +107,18 @@ module RubyUW
|
|
|
107
107
|
current_course.push(extract_course_listing(node))
|
|
108
108
|
end
|
|
109
109
|
end
|
|
110
|
-
|
|
110
|
+
|
|
111
111
|
courses
|
|
112
112
|
end
|
|
113
|
-
|
|
113
|
+
|
|
114
114
|
def extract_course_header(node)
|
|
115
115
|
Base.extract(node, ".//td[@width=\"50%\"]//a", [:name, :title])
|
|
116
116
|
end
|
|
117
|
-
|
|
117
|
+
|
|
118
118
|
def extract_course_listing(node)
|
|
119
119
|
pre_node = node.search(".//pre")
|
|
120
120
|
pre_text = pre_node.inner_text.gsub("\302\240", "").gsub("\n", "").strip.chomp
|
|
121
|
-
|
|
121
|
+
|
|
122
122
|
# Ugly regex to match the <pre> text to extract the proper information for the
|
|
123
123
|
# course.
|
|
124
124
|
raise Errors::CourseListingMatchError.new(pre_text) unless pre_text =~ /^((IS\s+)|(Restr\s+))?>?([0-9]+)\s([A-Z0-9]{1,2})\s(.+?)\s(.+)/i #\s(([A-Z]+)\s(.+?))\s(([A-Z]+)\s([0-9]+))/i
|
|
@@ -130,65 +130,65 @@ module RubyUW
|
|
|
130
130
|
:unformatted_entry => pre_node.inner_text.gsub("\302\240", "").strip.chomp
|
|
131
131
|
}
|
|
132
132
|
end
|
|
133
|
-
|
|
133
|
+
|
|
134
134
|
def quarter_exists?(page)
|
|
135
135
|
# Time Schedule - No Courses Offered
|
|
136
136
|
return !(page.body.to_s =~ /Time Schedule - No Courses Offered/i)
|
|
137
137
|
end
|
|
138
|
-
|
|
138
|
+
|
|
139
139
|
# For now, unless MyUW changes, these are equivalent
|
|
140
140
|
alias :curriculum_exists? :quarter_exists?
|
|
141
|
-
|
|
141
|
+
|
|
142
142
|
def extract_curriculum_url(curriculum, page)
|
|
143
143
|
links = page.search("a")
|
|
144
|
-
|
|
144
|
+
|
|
145
145
|
links.each do |link|
|
|
146
146
|
text = link.inner_text.gsub("\302\240", " ").to_s
|
|
147
|
-
|
|
147
|
+
|
|
148
148
|
return link[:href].to_s if text =~ /^#{curriculum} \((.+?)\)$/i ||
|
|
149
149
|
text =~ /^(.+?) \(#{curriculum}\)$/i
|
|
150
150
|
end
|
|
151
|
-
|
|
151
|
+
|
|
152
152
|
return nil
|
|
153
153
|
end
|
|
154
|
-
|
|
154
|
+
|
|
155
155
|
def parse_curriculum(curriculum)
|
|
156
156
|
return nil unless curriculum =~ /^(.+?)\s*(\d+)$/
|
|
157
157
|
return $1, $2
|
|
158
158
|
end
|
|
159
159
|
end
|
|
160
160
|
end
|
|
161
|
-
|
|
161
|
+
|
|
162
162
|
module Errors
|
|
163
163
|
# An error indicating that a quarter does not exist in the time schedule
|
|
164
164
|
class QuarterDoesNotExistError < Error; end
|
|
165
|
-
|
|
165
|
+
|
|
166
166
|
# An error indicating that the curriculum requested does not exist
|
|
167
167
|
class CurriculumDoesNotExistError < Error; end
|
|
168
|
-
|
|
168
|
+
|
|
169
169
|
# An error indicating that the course listing didn't match the format
|
|
170
170
|
class CourseListingMatchError < Error
|
|
171
171
|
attr_reader :listing_text
|
|
172
|
-
|
|
172
|
+
|
|
173
173
|
def initialize(listing_text, message = nil)
|
|
174
174
|
@listing_text = listing_text
|
|
175
|
-
|
|
175
|
+
|
|
176
176
|
message = "Failed to match: #{@listing_text}" if message.nil?
|
|
177
177
|
super(message)
|
|
178
178
|
end
|
|
179
179
|
end
|
|
180
|
-
|
|
180
|
+
|
|
181
181
|
# An error indicating that a course does not exist
|
|
182
182
|
class CourseDoesNotExistError < Error
|
|
183
183
|
attr_reader :curriculum
|
|
184
184
|
attr_reader :course
|
|
185
185
|
attr_reader :original
|
|
186
|
-
|
|
186
|
+
|
|
187
187
|
def initialize(curriculum, course, original, message = nil)
|
|
188
188
|
@curriculum = curriculum
|
|
189
189
|
@course = course
|
|
190
190
|
@original = original
|
|
191
|
-
|
|
191
|
+
|
|
192
192
|
message = "Course does not exist: (#{curriculum}, #{course}) from \"#{original}\""
|
|
193
193
|
super(message)
|
|
194
194
|
end
|
data/lib/rubyuw.rb
CHANGED
data/rubyuw.gemspec
CHANGED
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
|
|
6
6
|
Gem::Specification.new do |s|
|
|
7
7
|
s.name = %q{rubyuw}
|
|
8
|
-
s.version = "0.99.
|
|
8
|
+
s.version = "0.99.13"
|
|
9
9
|
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
11
11
|
s.authors = ["Mitchell Hashimoto"]
|
|
12
|
-
s.date = %q{2010-02-
|
|
12
|
+
s.date = %q{2010-02-20}
|
|
13
13
|
s.description = %q{Library which provides a ruby interface to the University of Washington student portal.}
|
|
14
14
|
s.email = %q{mitchell.hashimoto@gmail.com}
|
|
15
15
|
s.extra_rdoc_files = [
|
|
@@ -65,6 +65,7 @@ Gem::Specification.new do |s|
|
|
|
65
65
|
"test/mocked/fixture_pages/sln_no_course_notes.html",
|
|
66
66
|
"test/mocked/fixture_pages/sln_no_enrollment_info.html",
|
|
67
67
|
"test/mocked/fixture_pages/sln_status.html",
|
|
68
|
+
"test/mocked/fixture_pages/time_schedule_arthis.html",
|
|
68
69
|
"test/mocked/fixture_pages/time_schedule_chem.html",
|
|
69
70
|
"test/mocked/fixture_pages/welcome.html",
|
|
70
71
|
"test/mocked/schedule_test.rb",
|
|
@@ -4,45 +4,45 @@ class CurriculumTest < Test::Unit::TestCase
|
|
|
4
4
|
setup do
|
|
5
5
|
RubyUW::Curriculum.publicize_singleton_methods
|
|
6
6
|
end
|
|
7
|
-
|
|
7
|
+
|
|
8
8
|
teardown do
|
|
9
9
|
RubyUW::Curriculum.protect_singleton_methods
|
|
10
10
|
end
|
|
11
|
-
|
|
11
|
+
|
|
12
12
|
context "properly routing to find_curriculum or find_course" do
|
|
13
13
|
setup do
|
|
14
14
|
@curriculums = ["Chemistry", "BIO A", "CSE", " CHEM ", "CHEMISTRY"]
|
|
15
15
|
@courses = ["CHEM 142", "BIO A 240", " CHEM 142 ", " BIO A 240 "]
|
|
16
16
|
@term = "WIN2010"
|
|
17
17
|
end
|
|
18
|
-
|
|
18
|
+
|
|
19
19
|
should "recognize each of the curriculums" do
|
|
20
20
|
RubyUW::Curriculum.expects(:find_curriculum).times(@curriculums.length).with(anything, @term)
|
|
21
21
|
RubyUW::Curriculum.expects(:find_course).never
|
|
22
|
-
|
|
22
|
+
|
|
23
23
|
@curriculums.each do |curriculum|
|
|
24
24
|
RubyUW::Curriculum.find(curriculum, @term)
|
|
25
25
|
end
|
|
26
26
|
end
|
|
27
|
-
|
|
27
|
+
|
|
28
28
|
should "recognize each of the courses" do
|
|
29
29
|
RubyUW::Curriculum.expects(:find_curriculum).never
|
|
30
30
|
RubyUW::Curriculum.expects(:find_course).times(@courses.length)
|
|
31
|
-
|
|
31
|
+
|
|
32
32
|
@courses.each do |course|
|
|
33
33
|
RubyUW::Curriculum.find(course, @term)
|
|
34
34
|
end
|
|
35
35
|
end
|
|
36
|
-
|
|
36
|
+
|
|
37
37
|
should "strip '+' out of the term" do
|
|
38
38
|
@term = "WIN+2010"
|
|
39
39
|
@fixed_term = "WIN2010"
|
|
40
|
-
|
|
40
|
+
|
|
41
41
|
RubyUW::Curriculum.expects(:find_curriculum).once.with(anything, @fixed_term)
|
|
42
42
|
RubyUW::Curriculum.find(@curriculums[0], @term)
|
|
43
43
|
end
|
|
44
44
|
end
|
|
45
|
-
|
|
45
|
+
|
|
46
46
|
context "finding course information" do
|
|
47
47
|
setup do
|
|
48
48
|
@term = "WIN2010"
|
|
@@ -55,6 +55,7 @@ class CurriculumTest < Test::Unit::TestCase
|
|
|
55
55
|
"CHEM 142" => ["CHEM", "142"],
|
|
56
56
|
"Chemistry 142" => ["Chemistry", "142"],
|
|
57
57
|
"BIO A 240" => ["BIO A", "240"],
|
|
58
|
+
"ART H 203" => ["ART H", "203"],
|
|
58
59
|
"GERMAN446" => ["GERMAN", "446"],
|
|
59
60
|
"I'm invalid =]" => [nil, nil],
|
|
60
61
|
"CHEM INVALID" => [nil, nil]
|
|
@@ -69,40 +70,72 @@ class CurriculumTest < Test::Unit::TestCase
|
|
|
69
70
|
end
|
|
70
71
|
end
|
|
71
72
|
end
|
|
72
|
-
|
|
73
|
+
|
|
73
74
|
context "finding course within returned curriculum information" do
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
75
|
+
context "chem, win2010" do
|
|
76
|
+
setup do
|
|
77
|
+
@page = RubyUW::Base.connection.get(path_to_html("time_schedule_chem"))
|
|
78
|
+
@data = {
|
|
79
|
+
:type => :curriculum,
|
|
80
|
+
:courses => RubyUW::Curriculum.extract_courses(@page)
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
# Below pulled directly from Chem WIN2010 time schedule
|
|
84
|
+
@listings_count = {
|
|
85
|
+
"299" => 2,
|
|
86
|
+
"321" => 3,
|
|
87
|
+
"520" => 1,
|
|
88
|
+
"317" => 8
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
@nonexistent_course = "111"
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
should "return proper number of listings for a course" do
|
|
95
|
+
@listings_count.each do |course, amount|
|
|
96
|
+
listing = RubyUW::Curriculum.find_course_in_data(course, @data)
|
|
97
|
+
|
|
98
|
+
assert_not_nil listing
|
|
99
|
+
assert_equal amount, listing.length
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
should "return nil for a course which doesn't exist" do
|
|
104
|
+
assert_nil RubyUW::Curriculum.find_course_in_data(@nonexistent_course, @data)
|
|
98
105
|
end
|
|
99
106
|
end
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
107
|
+
|
|
108
|
+
context "art history, spr2010" do
|
|
109
|
+
setup do
|
|
110
|
+
@page = RubyUW::Base.connection.get(path_to_html("time_schedule_arthis"))
|
|
111
|
+
@data = {
|
|
112
|
+
:type => :curriculum,
|
|
113
|
+
:courses => RubyUW::Curriculum.extract_courses(@page)
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
# Below pulled directly from SPR2010 time schedule
|
|
117
|
+
@listings_count = {
|
|
118
|
+
"203" => 15
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
@nonexistent_course = "111"
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
should "return proper number of listings for a course" do
|
|
125
|
+
@listings_count.each do |course, amount|
|
|
126
|
+
listing = RubyUW::Curriculum.find_course_in_data(course, @data)
|
|
127
|
+
|
|
128
|
+
assert_not_nil listing
|
|
129
|
+
assert_equal amount, listing.length
|
|
130
|
+
end
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
should "return nil for a course which doesn't exist" do
|
|
134
|
+
assert_nil RubyUW::Curriculum.find_course_in_data(@nonexistent_course, @data)
|
|
135
|
+
end
|
|
103
136
|
end
|
|
104
137
|
end
|
|
105
|
-
|
|
138
|
+
|
|
106
139
|
context "the actual find_course method" do
|
|
107
140
|
setup do
|
|
108
141
|
@raw_curriculum = "CHEM 142"
|
|
@@ -112,20 +145,20 @@ class CurriculumTest < Test::Unit::TestCase
|
|
|
112
145
|
:type => :curriculum,
|
|
113
146
|
:courses => RubyUW::Curriculum.extract_courses(@page)
|
|
114
147
|
}
|
|
115
|
-
|
|
148
|
+
|
|
116
149
|
@listing = RubyUW::Curriculum.find_course_in_data(@course, @data)
|
|
117
|
-
|
|
150
|
+
|
|
118
151
|
RubyUW::Curriculum.expects(:parse_curriculum).once.returns([@curriculum, @course])
|
|
119
152
|
RubyUW::Curriculum.expects(:find_curriculum).once.returns(@data)
|
|
120
153
|
end
|
|
121
|
-
|
|
154
|
+
|
|
122
155
|
should "raise a CourseDoesNotExistError if it can't be parsed" do
|
|
123
156
|
RubyUW::Curriculum.expects(:find_course_in_data).once.returns(nil)
|
|
124
157
|
assert_raises(RubyUW::Errors::CourseDoesNotExistError) {
|
|
125
158
|
RubyUW::Curriculum.find_course(@raw_curriculum, @term)
|
|
126
159
|
}
|
|
127
160
|
end
|
|
128
|
-
|
|
161
|
+
|
|
129
162
|
should "return a hash on a valid course" do
|
|
130
163
|
RubyUW::Curriculum.expects(:find_course_in_data).once.returns(@listing)
|
|
131
164
|
assert_nothing_raised {
|
|
@@ -137,44 +170,44 @@ class CurriculumTest < Test::Unit::TestCase
|
|
|
137
170
|
end
|
|
138
171
|
end
|
|
139
172
|
end
|
|
140
|
-
|
|
173
|
+
|
|
141
174
|
context "finding curriculum information" do
|
|
142
175
|
context "with checking existence of a quarter" do
|
|
143
176
|
setup do
|
|
144
177
|
@page = mock('page')
|
|
145
178
|
end
|
|
146
|
-
|
|
179
|
+
|
|
147
180
|
should "return false if page contains the string 'Time Schedule - No Courses Offered'" do
|
|
148
181
|
@page.stubs(:body).returns("Time Schedule - No Courses Offered")
|
|
149
182
|
assert !RubyUW::Curriculum.quarter_exists?(@page)
|
|
150
183
|
end
|
|
151
|
-
|
|
184
|
+
|
|
152
185
|
should "return true if page does not contain that string" do
|
|
153
186
|
@page.stubs(:body).returns("HI!")
|
|
154
187
|
assert RubyUW::Curriculum.quarter_exists?(@page)
|
|
155
188
|
end
|
|
156
189
|
end
|
|
157
|
-
|
|
190
|
+
|
|
158
191
|
context "with checking existence of a curriculum" do
|
|
159
192
|
setup do
|
|
160
193
|
@page = mock('page')
|
|
161
194
|
end
|
|
162
|
-
|
|
195
|
+
|
|
163
196
|
should "return false if page contains the string 'Time Schedule - No Courses Offered'" do
|
|
164
197
|
@page.stubs(:body).returns("Time Schedule - No Courses Offered")
|
|
165
198
|
assert !RubyUW::Curriculum.curriculum_exists?(@page)
|
|
166
199
|
end
|
|
167
|
-
|
|
200
|
+
|
|
168
201
|
should "return true if page does not contain that string" do
|
|
169
202
|
@page.stubs(:body).returns("HI!")
|
|
170
203
|
assert RubyUW::Curriculum.curriculum_exists?(@page)
|
|
171
204
|
end
|
|
172
205
|
end
|
|
173
|
-
|
|
206
|
+
|
|
174
207
|
context "with finding the link for a curriculum" do
|
|
175
208
|
setup do
|
|
176
209
|
@page = RubyUW::Base.connection.get(path_to_html("quarter_time_schedule"))
|
|
177
|
-
|
|
210
|
+
|
|
178
211
|
@curriculums = {
|
|
179
212
|
"Chemistry" => "chem.html",
|
|
180
213
|
"Biology" => "biology.html",
|
|
@@ -184,7 +217,7 @@ class CurriculumTest < Test::Unit::TestCase
|
|
|
184
217
|
"UBASK" => nil
|
|
185
218
|
}
|
|
186
219
|
end
|
|
187
|
-
|
|
220
|
+
|
|
188
221
|
should "extract proper URLs for curriculums" do
|
|
189
222
|
@curriculums.each do |curric, url|
|
|
190
223
|
assert_equal url, RubyUW::Curriculum.extract_curriculum_url(curric, @page)
|
|
@@ -192,7 +225,7 @@ class CurriculumTest < Test::Unit::TestCase
|
|
|
192
225
|
end
|
|
193
226
|
end
|
|
194
227
|
end
|
|
195
|
-
|
|
228
|
+
|
|
196
229
|
context "extracting course information" do
|
|
197
230
|
setup do
|
|
198
231
|
@page = RubyUW::Base.connection.get(path_to_html("time_schedule_chem"))
|
|
@@ -205,25 +238,25 @@ class CurriculumTest < Test::Unit::TestCase
|
|
|
205
238
|
:title => "GENERAL CHEMISTRY"
|
|
206
239
|
}
|
|
207
240
|
end
|
|
208
|
-
|
|
241
|
+
|
|
209
242
|
should "extract proper information out of a header" do
|
|
210
243
|
header_node = @page.search("//table[@bgcolor=\"#99ccff\"]")[0]
|
|
211
|
-
|
|
244
|
+
|
|
212
245
|
returned_header = RubyUW::Curriculum.extract_course_header(header_node)
|
|
213
246
|
@header.each do |k,v|
|
|
214
247
|
assert_equal v, returned_header[k]
|
|
215
248
|
end
|
|
216
249
|
end
|
|
217
|
-
|
|
250
|
+
|
|
218
251
|
should "return nil for an invalid header" do
|
|
219
252
|
header_node = @page.search("//table[@bgcolor=\"#d3d3d3\"]")[0]
|
|
220
|
-
|
|
221
|
-
assert_nothing_raised {
|
|
253
|
+
|
|
254
|
+
assert_nothing_raised {
|
|
222
255
|
assert_nil RubyUW::Curriculum.extract_course_header(header_node)
|
|
223
256
|
}
|
|
224
257
|
end
|
|
225
258
|
end
|
|
226
|
-
|
|
259
|
+
|
|
227
260
|
context "extracting a course listing" do
|
|
228
261
|
setup do
|
|
229
262
|
@listing = {
|
|
@@ -232,35 +265,35 @@ class CurriculumTest < Test::Unit::TestCase
|
|
|
232
265
|
:type => "LC"
|
|
233
266
|
}
|
|
234
267
|
end
|
|
235
|
-
|
|
268
|
+
|
|
236
269
|
should "return the proper information for the first listing" do
|
|
237
270
|
node = @page.search("//table[@bgcolor=\"#99ccff\"]//following-sibling::table")[0]
|
|
238
|
-
|
|
271
|
+
|
|
239
272
|
returned = RubyUW::Curriculum.extract_course_listing(node)
|
|
240
273
|
@listing.each do |k,v|
|
|
241
274
|
assert_equal v, returned[k]
|
|
242
275
|
end
|
|
243
276
|
end
|
|
244
|
-
|
|
277
|
+
|
|
245
278
|
should "contain unformatted text as well" do
|
|
246
279
|
node = @page.search("//table[@bgcolor=\"#99ccff\"]//following-sibling::table")[0]
|
|
247
|
-
|
|
280
|
+
|
|
248
281
|
returned = RubyUW::Curriculum.extract_course_listing(node)
|
|
249
282
|
assert !returned[:unformatted_entry].empty?
|
|
250
283
|
end
|
|
251
|
-
|
|
284
|
+
|
|
252
285
|
should "raise an exception if the listing does not match" do
|
|
253
286
|
pre_node = mock('pre_node')
|
|
254
287
|
pre_node.expects(:inner_text).once.returns("I don't match")
|
|
255
288
|
node = mock('node')
|
|
256
289
|
node.expects(:search).once.returns(pre_node)
|
|
257
|
-
|
|
290
|
+
|
|
258
291
|
assert_raises(RubyUW::Errors::CourseListingMatchError) {
|
|
259
292
|
RubyUW::Curriculum.extract_course_listing(node)
|
|
260
293
|
}
|
|
261
294
|
end
|
|
262
295
|
end
|
|
263
|
-
|
|
296
|
+
|
|
264
297
|
context "extracting the list of courses" do
|
|
265
298
|
should "not raise any errors on a valid page" do
|
|
266
299
|
assert_nothing_raised {
|
|
@@ -268,26 +301,26 @@ class CurriculumTest < Test::Unit::TestCase
|
|
|
268
301
|
}
|
|
269
302
|
end
|
|
270
303
|
end
|
|
271
|
-
|
|
304
|
+
|
|
272
305
|
# Basically the "edge cases" are added to whenever a CourseListingMatchError is
|
|
273
306
|
# experienced in the real world
|
|
274
307
|
context "extracting a course listing edge cases" do
|
|
275
308
|
context "WIN2010 13066" do
|
|
276
309
|
setup do
|
|
277
310
|
@page = RubyUW::Base.connection.get(path_to_html("curric_edge_win2010_engl"))
|
|
278
|
-
|
|
311
|
+
|
|
279
312
|
@listing = {
|
|
280
313
|
:sln => "13066",
|
|
281
314
|
:section => "A2"
|
|
282
315
|
}
|
|
283
316
|
end
|
|
284
|
-
|
|
317
|
+
|
|
285
318
|
should "properly parse the entire curriculum" do
|
|
286
319
|
assert_nothing_raised {
|
|
287
320
|
RubyUW::Curriculum.extract_courses(@page)
|
|
288
321
|
}
|
|
289
322
|
end
|
|
290
|
-
|
|
323
|
+
|
|
291
324
|
should "properly parse the edge listing" do
|
|
292
325
|
related = RubyUW::Curriculum.extract_courses(@page)
|
|
293
326
|
sln_obj = related.values.flatten.detect { |course| course[:sln] == @listing[:sln] }
|
|
@@ -0,0 +1,524 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
|
|
34
|
+
"http://www.w3.org/TR/REC-html40/strict.dtd">
|
|
35
|
+
<HTML>
|
|
36
|
+
<HEAD>
|
|
37
|
+
<meta name="robots" content="index,nofollow">
|
|
38
|
+
<TITLE>ART HISTORY</TITLE>
|
|
39
|
+
<LINK REL="stylesheet" HREF="/home/home.css" TYPE="text/css">
|
|
40
|
+
</HEAD>
|
|
41
|
+
<BODY>
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
<div><a href="http://www.washington.edu/"><img id="toplogo" src="/home/graphics/uw_logo.gif" alt="University of Washington" /></a></div>
|
|
58
|
+
|
|
59
|
+
<div id="toolbar">
|
|
60
|
+
<span class="l1text"><a href="/home/search.html">Search</a> |
|
|
61
|
+
<a href="/home/directories.html">Directories</a> |
|
|
62
|
+
<a href="http://www.lib.washington.edu/research/">Reference
|
|
63
|
+
Tools</a></span></div>
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
<!--Section Banner Table -->
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
<div class="bannerwrapper">
|
|
73
|
+
<div id="topbanner" ><img src="/home/graphics/rib0.gif" width="6" height="16" alt="" /></div>
|
|
74
|
+
</div>
|
|
75
|
+
|
|
76
|
+
<div id="crumbs"><span class="l1text"><a href="/">UW Home</a> > <a href="/uwin/">UWIN</a> > <a href="/students/">Student Guide</a> > <a href="/students/timeschd/">Time Schedule</a></span> </div><div class="forceclear"></div>
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
<a class="navlink" href="/students/timeschd/SPR2010/"><img src="/home/graphics/arrow.gif" alt=" | " height="13" width="18" border="0">Spring 2010 Time Schedule</a>
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
<h1>Spring Quarter 2010 Time Schedule</h1>
|
|
87
|
+
<table width="100%"><tr><td valign="top" width="60%"><h2>ART HISTORY<br>(COLLEGE OF ARTS & SCIENCES
|
|
88
|
+
)<h2></td>
|
|
89
|
+
<td valign="top" align="center"><table cellspacing="0" cellpadding="2"><tr bgcolor="#ccffcc"><td>Enrollment and status (open/closed) were accurate when this page was created (<b>12:05 am February 20, 2010</b>) but may have changed since then.
|
|
90
|
+
For current enrollment and status, check the <a href="https://sdb.admin.washington.edu/timeschd/uwnetid/tsstat.asp?QTRYR=SPR+2010&CURRIC=ART+H ">Enrollment Summary</a>. (UW NetID required.)</td></tr></table>
|
|
91
|
+
</td></tr></table>
|
|
92
|
+
<a href="/students/reg/tshelp/tshelp.html" ONCLICK="javascript:openWin('/students/reg/tshelp/tshelp.html','w_help',600,600);return false">Help with the UW Time Schedule</a>
|
|
93
|
+
<p>
|
|
94
|
+
<table width="100%" bgcolor="#d3d3d3"><tr><td>
|
|
95
|
+
<pre><b>Enrl Sect Crs
|
|
96
|
+
Restr SLN ID Cred Meeting Times Bldg/Rm Instructor Status Enrl/Lim Grades Fee Other
|
|
97
|
+
<a href="/students/reg/tshelp/restr.html"
|
|
98
|
+
ONCLICK="javascript:openWin('/students/reg/tshelp/restr.html','w_help',300,400);return false"
|
|
99
|
+
target="HELPWIN">?</a> <a href="/students/reg/tshelp/sln.html"
|
|
100
|
+
ONCLICK="javascript:openWin('/students/reg/tshelp/sln.html','w_help',300,400);return false"
|
|
101
|
+
target="HELPWIN">?</a> <a href="/students/reg/tshelp/cred.html"
|
|
102
|
+
ONCLICK="javascript:openWin('/students/reg/tshelp/cred.html','w_help',300,400);return false"
|
|
103
|
+
target="HELPWIN">?</a> <a href="/students/reg/tshelp/meetings.html"
|
|
104
|
+
ONCLICK="javascript:openWin('/students/reg/tshelp/meetings.html','w_help',300,400);return false"
|
|
105
|
+
target="HELPWIN">?</a> <a href="/students/reg/tshelp/bldg.html"
|
|
106
|
+
ONCLICK="javascript:openWin('/students/reg/tshelp/bldg.html','w_help',300,400);return false"
|
|
107
|
+
target="HELPWIN">?</a> <a href="/students/reg/tshelp/instr.html"
|
|
108
|
+
ONCLICK="javascript:openWin('/students/reg/tshelp/instr.html','w_help',300,400);return false"
|
|
109
|
+
target="HELPWIN">?</a> <a href="/students/reg/tshelp/status.html"
|
|
110
|
+
ONCLICK="javascript:openWin('/students/reg/tshelp/status.html','w_help',300,400);return false"
|
|
111
|
+
target="HELPWIN">?</a> <a href="/students/reg/tshelp/enrllim.html"
|
|
112
|
+
ONCLICK="javascript:openWin('/students/reg/tshelp/enrllim.html','w_help',300,400);return false"
|
|
113
|
+
target="HELPWIN">?</a> <a href="/students/reg/tshelp/grades.html"
|
|
114
|
+
ONCLICK="javascript:openWin('/students/reg/tshelp/grades.html','w_help',300,400);return false"
|
|
115
|
+
target="HELPWIN">?</a> <a href="/students/reg/tshelp/crsfee.html"
|
|
116
|
+
ONCLICK="javascript:openWin('/students/reg/tshelp/crsfee.html','w_help',300,400);return false"
|
|
117
|
+
target="HELPWIN">?</a> <a href="/students/reg/tshelp/other.html"
|
|
118
|
+
ONCLICK="javascript:openWin('/students/reg/tshelp/other.html','w_help',300,400);return false"
|
|
119
|
+
target="HELPWIN">?</a></b></td></tr></table></pre>
|
|
120
|
+
|
|
121
|
+
<br>
|
|
122
|
+
|
|
123
|
+
<table bgcolor="#ccffcc" width="100%">
|
|
124
|
+
<tr><td width="50%"><b><A NAME=arth203>ART H 203 </A> <A HREF=/students/crscat/arthis.html#arth203>SURV WEST ART-MOD</A></b></td><td width="15%"><b>(VLPA)</b></td><td align="right" width="35%"></td></tr></table>
|
|
125
|
+
<table width="100%" ><tr><td><pre>
|
|
126
|
+
<A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10500>10500</A> A 5 MWF 130-220 <A HREF=/students/maps/map.cgi?GUG>GUG</A> 220 <A HREF=/students/icd/S/arthis/203casteras.html>CASTERAS,SUSAN P</a> Open 19/ 345 $30
|
|
127
|
+
OPT'L LINK WRIT COURSE:SEE
|
|
128
|
+
ENGL
|
|
129
|
+
297
|
|
130
|
+
</td></tr></table>
|
|
131
|
+
<table width="100%" ><tr><td><pre>
|
|
132
|
+
<A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10501>10501</A> AA QZ TTh 930-1020 <A HREF=/students/maps/map.cgi?ART>ART</A> 003 Open 2/ 25
|
|
133
|
+
</td></tr></table>
|
|
134
|
+
<table width="100%" ><tr><td><pre>
|
|
135
|
+
<A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10502>10502</A> AB QZ TTh 930-1020 <A HREF=/students/maps/map.cgi?ART>ART</A> 006 Open 0/ 25
|
|
136
|
+
</td></tr></table>
|
|
137
|
+
<table width="100%" ><tr><td><pre>
|
|
138
|
+
<A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10503>10503</A> AC QZ TTh 930-1020 <A HREF=/students/maps/map.cgi?ART>ART</A> 317 Open 1/ 25
|
|
139
|
+
</td></tr></table>
|
|
140
|
+
<table width="100%" ><tr><td><pre>
|
|
141
|
+
<A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10504>10504</A> AD QZ TTh 1030-1120 <A HREF=/students/maps/map.cgi?ART>ART</A> 003 Open 5/ 25
|
|
142
|
+
</td></tr></table>
|
|
143
|
+
<table width="100%" ><tr><td><pre>
|
|
144
|
+
<A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10505>10505</A> AE QZ TTh 1030-1120 <A HREF=/students/maps/map.cgi?ART>ART</A> 006 Open 1/ 25
|
|
145
|
+
</td></tr></table>
|
|
146
|
+
<table width="100%" ><tr><td><pre>
|
|
147
|
+
<A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10506>10506</A> AF QZ TTh 1030-1120 <A HREF=/students/maps/map.cgi?ART>ART</A> 317 Open 1/ 25
|
|
148
|
+
</td></tr></table>
|
|
149
|
+
<table width="100%" ><tr><td><pre>
|
|
150
|
+
<A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10507>10507</A> AG QZ TTh 1130-1220 <A HREF=/students/maps/map.cgi?ART>ART</A> 003 Open 2/ 25
|
|
151
|
+
</td></tr></table>
|
|
152
|
+
<table width="100%" ><tr><td><pre>
|
|
153
|
+
<A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10508>10508</A> AH QZ TTh 1130-1220 <A HREF=/students/maps/map.cgi?ART>ART</A> 006 Open 1/ 25
|
|
154
|
+
</td></tr></table>
|
|
155
|
+
<table width="100%" ><tr><td><pre>
|
|
156
|
+
<A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10509>10509</A> AI QZ TTh 1230-120 <A HREF=/students/maps/map.cgi?ART>ART</A> 003 Open 0/ 25
|
|
157
|
+
</td></tr></table>
|
|
158
|
+
<table width="100%" ><tr><td><pre>
|
|
159
|
+
<A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10510>10510</A> AJ QZ TTh 1230-120 <A HREF=/students/maps/map.cgi?ART>ART</A> 004 Open 1/ 25
|
|
160
|
+
</td></tr></table>
|
|
161
|
+
<table width="100%" ><tr><td><pre>
|
|
162
|
+
<A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10511>10511</A> AK QZ TTh 1230-120 <A HREF=/students/maps/map.cgi?ART>ART</A> 006 Open 1/ 25
|
|
163
|
+
</td></tr></table>
|
|
164
|
+
<table width="100%" ><tr><td><pre>
|
|
165
|
+
<A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10512>10512</A> AL QZ TTh 130-220 <A HREF=/students/maps/map.cgi?ART>ART</A> 003 Open 3/ 25
|
|
166
|
+
</td></tr></table>
|
|
167
|
+
<table width="100%" ><tr><td><pre>
|
|
168
|
+
<A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10513>10513</A> AM QZ TTh 130-220 <A HREF=/students/maps/map.cgi?ART>ART</A> 004 Open 0/ 25
|
|
169
|
+
</td></tr></table>
|
|
170
|
+
<table width="100%" ><tr><td><pre>
|
|
171
|
+
<A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10514>10514</A> AN QZ TTh 230-320 <A HREF=/students/maps/map.cgi?ART>ART</A> 006 Open 1/ 25
|
|
172
|
+
</td></tr></table>
|
|
173
|
+
|
|
174
|
+
<br>
|
|
175
|
+
|
|
176
|
+
<table bgcolor="#ccffcc" width="100%">
|
|
177
|
+
<tr><td width="50%"><b><A NAME=arth205>ART H 205 </A> <A HREF=/students/crscat/arthis.html#arth205>SURVEY TRIBAL ART</A></b></td><td width="15%"><b>(VLPA/I&S)</b></td><td align="right" width="35%"></td></tr></table>
|
|
178
|
+
<table width="100%" ><tr><td><pre>
|
|
179
|
+
<A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10515>10515</A> A 5 MWF 1200-120 <A HREF=/students/maps/map.cgi?ART>ART</A> 317 <A HREF=/students/icd/S/arthis/205blithe.html>BRAVMANN,RENE A.</a> Open 11/ 40 $30
|
|
180
|
+
</td></tr></table>
|
|
181
|
+
|
|
182
|
+
<br>
|
|
183
|
+
|
|
184
|
+
<table bgcolor="#ccffcc" width="100%">
|
|
185
|
+
<tr><td width="50%"><b><A NAME=arth309>ART H 309 </A> <A HREF=/students/crscat/arthis.html#arth309>TOPICS IN ART HIST</A></b></td><td width="15%"><b>(VLPA)</b></td><td align="right" width="35%"></td></tr></table>
|
|
186
|
+
<table width="100%" ><tr><td><pre>
|
|
187
|
+
<A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10516>10516</A> A 5 MWF 230-350 <A HREF=/students/maps/map.cgi?ART>ART</A> 003 <A HREF=/students/icd/S/arthis/309krice.html>RICE,KOLYA</a> Open 8/ 65 $30
|
|
188
|
+
ART AND THEORY SINCE 1960
|
|
189
|
+
</td></tr></table>
|
|
190
|
+
<table width="100%" ><tr><td><pre>
|
|
191
|
+
<A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10517>10517</A> B 5 MWF 1130-1250 <A HREF=/students/maps/map.cgi?ART>ART</A> 003 <A HREF=/students/icd/S/arthis/309mariafel.html>FELICIANO,MARIA J.</a> Open 5/ 65 $30
|
|
192
|
+
THE ART OF COLONIAL LATIN AMERICA
|
|
193
|
+
</td></tr></table>
|
|
194
|
+
|
|
195
|
+
<br>
|
|
196
|
+
|
|
197
|
+
<table bgcolor="#ccffcc" width="100%">
|
|
198
|
+
<tr><td width="50%"><b><A NAME=arth311>ART H 311 </A> <A HREF=/students/crscat/arthis.html#arth311>ART IMPERIAL CHINA</A></b></td><td width="15%"><b>(VLPA/I&S)</b></td><td align="right" width="35%"></td></tr></table>
|
|
199
|
+
<table width="100%" ><tr><td><pre>
|
|
200
|
+
<A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10518>10518</A> A 5 MWF 100-220 <A HREF=/students/maps/map.cgi?ART>ART</A> 003 <A HREF=/students/icd/S/arthis/311skelley2.html>KELLEY,SONJA J.</a> Open 11/ 65 $30 W
|
|
201
|
+
</td></tr></table>
|
|
202
|
+
|
|
203
|
+
<br>
|
|
204
|
+
|
|
205
|
+
<table bgcolor="#ccffcc" width="100%">
|
|
206
|
+
<tr><td width="50%"><b><A NAME=arth318>ART H 318 </A> <A HREF=/students/crscat/arthis.html#arth318>JAPANESE PRINTS</A></b></td><td width="15%"><b>(VLPA)</b></td><td align="right" width="35%"></td></tr></table>
|
|
207
|
+
<table width="100%" ><tr><td><pre>
|
|
208
|
+
Restr <A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=18739>18739</A> A 5 TTh 1130-1220 <A HREF=/students/maps/map.cgi?ART>ART</A> 317 <A HREF=/students/icd/S/arthis/318jasbooks.html>STEVENSON,JOHN A.</a> Open 8/ 40 $30
|
|
209
|
+
FLEETING BEAUTY:JAPANESE WOODBLOCK
|
|
210
|
+
PRINTS FEATURING A SPECIAL
|
|
211
|
+
EXHIBITION AT THE SEATTLE ART
|
|
212
|
+
MUSEUM. FRIDAY CLASS MEETS
|
|
213
|
+
FREQUENTLY AT THE MUSEUM.
|
|
214
|
+
</td></tr></table>
|
|
215
|
+
<table width="100%" ><tr><td><pre>
|
|
216
|
+
<A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=18740>18740</A> AA QZ F 100-250 * * <A HREF=/students/icd/S/arthis/318jasbooks.html>STEVENSON,JOHN A.</a> Open 6/ 20
|
|
217
|
+
CLASS MEETS SOME DAYS AT SEATTLE
|
|
218
|
+
ASIAN ART
|
|
219
|
+
MUSEUM
|
|
220
|
+
</td></tr></table>
|
|
221
|
+
<table width="100%" ><tr><td><pre>
|
|
222
|
+
<A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=18741>18741</A> AB QZ F 300-450 * * <A HREF=/students/icd/S/arthis/318jasbooks.html>STEVENSON,JOHN A.</a> Open 2/ 20
|
|
223
|
+
CLASS MEETS SOME DAYS AT SEATTLE
|
|
224
|
+
ASIAN ART
|
|
225
|
+
MUSEUM
|
|
226
|
+
</td></tr></table>
|
|
227
|
+
|
|
228
|
+
<br>
|
|
229
|
+
|
|
230
|
+
<table bgcolor="#ccffcc" width="100%">
|
|
231
|
+
<tr><td width="50%"><b><A NAME=arth361>ART H 361 </A> <A HREF=/students/crscat/arthis.html#arth361>ITALIAN REN ART</A></b></td><td width="15%"><b>(VLPA)</b></td><td align="right" width="35%"></td></tr></table>
|
|
232
|
+
<table width="100%" ><tr><td><pre>
|
|
233
|
+
<A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10523>10523</A> A 5 MWF 1030-1150 <A HREF=/students/maps/map.cgi?ART>ART</A> 317 <A HREF=/students/icd/S/arthis/361ahuppert.html>HUPPERT,ANN C</a> Open 14/ 42 $30
|
|
234
|
+
</td></tr></table>
|
|
235
|
+
|
|
236
|
+
<br>
|
|
237
|
+
|
|
238
|
+
<table bgcolor="#ccffcc" width="100%">
|
|
239
|
+
<tr><td width="50%"><b><A NAME=arth366>ART H 366 </A> <A HREF=/students/crscat/arthis.html#arth366>NORTHERN REN ART</A></b></td><td width="15%"><b>(VLPA)</b></td><td align="right" width="35%"></td></tr></table>
|
|
240
|
+
<table width="100%" ><tr><td><pre>
|
|
241
|
+
<A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10524>10524</A> A 5 MWF 130-250 <A HREF=/students/maps/map.cgi?ART>ART</A> 317 BUNN,STEVEN E Open 5/ 40 $30 W
|
|
242
|
+
</td></tr></table>
|
|
243
|
+
|
|
244
|
+
<br>
|
|
245
|
+
|
|
246
|
+
<table bgcolor="#ccffcc" width="100%">
|
|
247
|
+
<tr><td width="50%"><b><A NAME=arth380>ART H 380 </A> <A HREF=/students/crscat/arthis.html#arth380>19TH & 20TH C ART</A></b></td><td width="15%"><b>(VLPA)</b></td><td align="right" width="35%"></td></tr></table>
|
|
248
|
+
<table width="100%" ><tr><td><pre>
|
|
249
|
+
<A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10525>10525</A> A 5 MWF 930-1050 <A HREF=/students/maps/map.cgi?ART>ART</A> 003 <A HREF=/students/icd/S/arthis/380marek.html>WIECZOREK,MAREK K.</a> Open 15/ 65 $30
|
|
250
|
+
</td></tr></table>
|
|
251
|
+
|
|
252
|
+
<br>
|
|
253
|
+
|
|
254
|
+
<table bgcolor="#ccffcc" width="100%">
|
|
255
|
+
<tr><td width="50%"><b><A NAME=arth400>ART H 400 </A> <A HREF=/students/crscat/arthis.html#arth400>ART H AND CRITICISM </A></b></td><td width="15%"><b>(VLPA)</b></td><td align="right" width="35%"></td></tr></table>
|
|
256
|
+
<table width="100%" bgcolor="#d3d3d3"><tr><td><pre>
|
|
257
|
+
Restr <A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10526>10526</A> A 5 MW 1230-150 <A HREF=/students/maps/map.cgi?ART>ART</A> 006 <A HREF=/students/icd/S/arthis/400marek.html>WIECZOREK,MAREK K.</a> Closed 20/ 20 $30 J
|
|
258
|
+
POST IMPRESSIONISM TECHNOLOGIES
|
|
259
|
+
OF VISION CEZANNE, SERAT, MONDIAN
|
|
260
|
+
</td></tr></table>
|
|
261
|
+
<table width="100%" ><tr><td><pre>
|
|
262
|
+
Restr <A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10527>10527</A> B 3 MW 1030-1150 <A HREF=/students/maps/map.cgi?ART>ART</A> 004 KHULLAR,SONAL Open 0/ 12 $30 J
|
|
263
|
+
ART AND EMPIRE IN SOUTH ASIA 1750-
|
|
264
|
+
1900
|
|
265
|
+
SISA MAJORS: SEE JSIS ADVISER
|
|
266
|
+
</td></tr></table>
|
|
267
|
+
|
|
268
|
+
<br>
|
|
269
|
+
|
|
270
|
+
<table bgcolor="#ccffcc" width="100%">
|
|
271
|
+
<tr><td width="50%"><b><A NAME=arth413>ART H 413 </A> <A HREF=/students/crscat/arthis.html#arth413>TOPICS CHINESE ART</A></b></td><td width="15%"><b>(VLPA)</b></td><td align="right" width="35%"></td></tr></table>
|
|
272
|
+
<table width="100%" ><tr><td><pre>
|
|
273
|
+
Restr <A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=18730>18730</A> A 3 MW 930-1050 <A HREF=/students/maps/map.cgi?ART>ART</A> 006 <A HREF=/students/icd/S/arthis/413skelley2.html>KELLEY,SONJA J.</a> Open 1/ 15 $30 J
|
|
274
|
+
TOPIC: MODERN CHINESE PRINTMAKING
|
|
275
|
+
</td></tr></table>
|
|
276
|
+
<table width="100%" ><tr><td><pre>
|
|
277
|
+
Restr <A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=18811>18811</A> B 3 T 230-520 * * Open 1/ 15 J
|
|
278
|
+
CHINESE PAINTING AND CERAMICS AT
|
|
279
|
+
THE SEATTLE ART MUSEUM: STUDIES IN
|
|
280
|
+
CONNOISSEURSHIP AND CHINESE ART
|
|
281
|
+
HISTORY. CLASS MEETS AT THE
|
|
282
|
+
SEATTLE ART
|
|
283
|
+
MUSEUM
|
|
284
|
+
</td></tr></table>
|
|
285
|
+
|
|
286
|
+
<br>
|
|
287
|
+
|
|
288
|
+
<table bgcolor="#ccffcc" width="100%">
|
|
289
|
+
<tr><td width="50%"><b><A NAME=arth443>ART H 443 </A> <A HREF=/students/crscat/arthis.html#arth443>ROMAN PAINTING</A></b></td><td width="15%"><b>(VLPA)</b></td><td align="right" width="35%"></td></tr></table>
|
|
290
|
+
<table width="100%" ><tr><td><pre>
|
|
291
|
+
<A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10529>10529</A> A 3 MWF 930-1020 <A HREF=/students/maps/map.cgi?ART>ART</A> 317 TOPPER,KATHRYN R. Open 14/ 20 $30 J
|
|
292
|
+
</td></tr></table>
|
|
293
|
+
|
|
294
|
+
<br>
|
|
295
|
+
|
|
296
|
+
<table bgcolor="#ccffcc" width="100%">
|
|
297
|
+
<tr><td width="50%"><b><A NAME=arth484>ART H 484 </A> <A HREF=/students/crscat/arthis.html#arth484>TOPICS MODERN ART</A></b></td><td width="15%"><b>(VLPA)</b></td><td align="right" width="35%"></td></tr></table>
|
|
298
|
+
<table width="100%" ><tr><td><pre>
|
|
299
|
+
Restr <A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10530>10530</A> A 5 TTh 1230-150 <A HREF=/students/maps/map.cgi?ART>ART</A> 317 <A HREF=/students/icd/S/arthis/484failing.html>FAILING,PATRICIA A</a> Open 18/ 35 $30 J
|
|
300
|
+
DADA AND SURREALISM
|
|
301
|
+
</td></tr></table>
|
|
302
|
+
|
|
303
|
+
<br>
|
|
304
|
+
|
|
305
|
+
<table bgcolor="#ccffcc" width="100%">
|
|
306
|
+
<tr><td width="50%"><b><A NAME=arth494>ART H 494 </A> <A HREF=/students/crscat/arthis.html#arth494>PARIS ARCH/URBANISM </A></b></td><td width="15%"><b>(VLPA/I&S)</b></td><td align="right" width="35%"></td></tr></table>
|
|
307
|
+
<table width="100%" ><tr><td><pre>
|
|
308
|
+
Restr <A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10531>10531</A> A 3 TTh 1030-1150 <A HREF=/students/maps/map.cgi?ART>ART</A> 004 <A HREF=/students/icd/S/arthis/494mlc.html>CLAUSEN,MEREDITH L</a> Open 11/ 20 $30 J
|
|
309
|
+
</td></tr></table>
|
|
310
|
+
|
|
311
|
+
<br>
|
|
312
|
+
|
|
313
|
+
<table bgcolor="#ccffcc" width="100%">
|
|
314
|
+
<tr><td width="50%"><b><A NAME=arth498>ART H 498 </A> <A HREF=/students/crscat/arthis.html#arth498>UNDERGRAD PRACTICUM </A></b></td><td width="15%"><b></b></td><td align="right" width="35%"></td></tr></table>
|
|
315
|
+
<table width="100%" ><tr><td><pre>
|
|
316
|
+
IS ><A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10532>10532</A> A 2-5 to be arranged 0/ 20 CR/NC
|
|
317
|
+
</td></tr></table>
|
|
318
|
+
|
|
319
|
+
<br>
|
|
320
|
+
|
|
321
|
+
<table bgcolor="#ccffcc" width="100%">
|
|
322
|
+
<tr><td width="50%"><b><A NAME=arth499>ART H 499 </A> <A HREF=/students/crscat/arthis.html#arth499>INDIVIDUAL PROJECTS </A></b></td><td width="15%"><b></b></td><td align="right" width="35%"></td></tr></table>
|
|
323
|
+
<table width="100%" ><tr><td><pre>
|
|
324
|
+
IS ><A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10533>10533</A> A 2-5 to be arranged 1/ 25
|
|
325
|
+
</td></tr></table>
|
|
326
|
+
|
|
327
|
+
<br>
|
|
328
|
+
|
|
329
|
+
<table bgcolor="#ccffcc" width="100%">
|
|
330
|
+
<tr><td width="50%"><b><A NAME=arth501>ART H 501 </A> <A HREF=/students/crscat/arthis.html#arth501>SMNR GEN FLD OF ART </A></b></td><td width="15%"><b></b></td><td align="right" width="35%"></td></tr></table>
|
|
331
|
+
<table width="100%" ><tr><td><pre>
|
|
332
|
+
Restr <A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10534>10534</A> A 5 to be arranged CASTERAS,SUSAN P Open 0/ 6
|
|
333
|
+
ART H 203 TAS ONLY
|
|
334
|
+
</td></tr></table>
|
|
335
|
+
|
|
336
|
+
<br>
|
|
337
|
+
|
|
338
|
+
<table bgcolor="#ccffcc" width="100%">
|
|
339
|
+
<tr><td width="50%"><b><A NAME=arth509>ART H 509 </A> <A HREF=/students/crscat/arthis.html#arth509>SEM TOPICS ART HIST </A></b></td><td width="15%"><b></b></td><td align="right" width="35%"></td></tr></table>
|
|
340
|
+
<table width="100%" ><tr><td><pre>
|
|
341
|
+
Restr <A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10535>10535</A> A 5 W 300-550 <A HREF=/students/maps/map.cgi?SAV>SAV</A> 137 <A HREF=/students/icd/S/arthis/509failing.html>FAILING,PATRICIA A</a> Open 3/ 10 $30
|
|
342
|
+
LEGAL AND ETHICAL ISSUES IN ART
|
|
343
|
+
</td></tr></table>
|
|
344
|
+
|
|
345
|
+
<br>
|
|
346
|
+
|
|
347
|
+
<table bgcolor="#ccffcc" width="100%">
|
|
348
|
+
<tr><td width="50%"><b><A NAME=arth521>ART H 521 </A> <A HREF=/students/crscat/arthis.html#arth521>TOPICS ASIAN ART</A></b></td><td width="15%"><b></b></td><td align="right" width="35%"></td></tr></table>
|
|
349
|
+
<table width="100%" ><tr><td><pre>
|
|
350
|
+
Restr <A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10536>10536</A> A 5 MW 930-1050 <A HREF=/students/maps/map.cgi?ART>ART</A> 006 <A HREF=/students/icd/S/arthis/521skelley2.html>KELLEY,SONJA J.</a> Open 0/ 5 $30 %J
|
|
351
|
+
TOPICS: MODERN CHINESE
|
|
352
|
+
PRINTMAKING
|
|
353
|
+
</td></tr></table>
|
|
354
|
+
<table width="100%" ><tr><td><pre>
|
|
355
|
+
Restr <A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10537>10537</A> B 5 MW 1030-1150 <A HREF=/students/maps/map.cgi?ART>ART</A> 004 KHULLAR,SONAL Open 3/ 5 $30 %J
|
|
356
|
+
ART AND EMPIRE IN SOUTH ASIA 1750-
|
|
357
|
+
1900
|
|
358
|
+
JOINT WITH ART H 400B
|
|
359
|
+
</td></tr></table>
|
|
360
|
+
<table width="100%" ><tr><td><pre>
|
|
361
|
+
Restr <A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=18731>18731</A> C 5 T 230-520 * * Open 3/ 5 %J
|
|
362
|
+
CHINESE PAINTING AND CERAMICS AT
|
|
363
|
+
THE SEATTLE ART MUSEUM: STUDIES IN
|
|
364
|
+
CONNOISSEURSHIP AND CHINESE ART
|
|
365
|
+
HISTORY. CLASS MEETS AT THE
|
|
366
|
+
SEATTLE ART
|
|
367
|
+
MUSEUM
|
|
368
|
+
</td></tr></table>
|
|
369
|
+
|
|
370
|
+
<br>
|
|
371
|
+
|
|
372
|
+
<table bgcolor="#ccffcc" width="100%">
|
|
373
|
+
<tr><td width="50%"><b><A NAME=arth525>ART H 525 </A> <A HREF=/students/crscat/arthis.html#arth525>TOPIC MOD/C ART/ARC </A></b></td><td width="15%"><b></b></td><td align="right" width="35%"></td></tr></table>
|
|
374
|
+
<table width="100%" ><tr><td><pre>
|
|
375
|
+
Restr <A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10538>10538</A> A 5 MW 1230-150 <A HREF=/students/maps/map.cgi?ART>ART</A> 006 WIECZOREK,MAREK K. Open 0/ 5 $30 %J
|
|
376
|
+
POST IMPRESSIONISM
|
|
377
|
+
TECHNOLOGIES
|
|
378
|
+
OF VISION CEZANNE,
|
|
379
|
+
SERAT,
|
|
380
|
+
MONDRIAN
|
|
381
|
+
JOINT WITH ART H 400A
|
|
382
|
+
</td></tr></table>
|
|
383
|
+
<table width="100%" ><tr><td><pre>
|
|
384
|
+
Restr <A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10539>10539</A> B 5 TTh 1230-150 <A HREF=/students/maps/map.cgi?ART>ART</A> 317 <A HREF=/students/icd/S/arthis/525failing.html>FAILING,PATRICIA A</a> Open 1/ 5 $30 %J
|
|
385
|
+
DADA AND
|
|
386
|
+
SURREALISM
|
|
387
|
+
JOINT WITH ART H 484A
|
|
388
|
+
</td></tr></table>
|
|
389
|
+
<table width="100%" ><tr><td><pre>
|
|
390
|
+
Restr <A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10540>10540</A> C 5 TTh 1030-1150 <A HREF=/students/maps/map.cgi?ART>ART</A> 004 CLAUSEN,MEREDITH L Open 2/ 3 $30 %J
|
|
391
|
+
TOPICS: ARCHITECTURE AND
|
|
392
|
+
URBANISM
|
|
393
|
+
IN PARIS
|
|
394
|
+
JOINT WITH ART H 525C
|
|
395
|
+
</td></tr></table>
|
|
396
|
+
|
|
397
|
+
<br>
|
|
398
|
+
|
|
399
|
+
<table bgcolor="#ccffcc" width="100%">
|
|
400
|
+
<tr><td width="50%"><b><A NAME=arth531>ART H 531 </A> <A HREF=/students/crscat/arthis.html#arth531>SMNR IN TRIBAL ART</A></b></td><td width="15%"><b></b></td><td align="right" width="35%"></td></tr></table>
|
|
401
|
+
<table width="100%" ><tr><td><pre>
|
|
402
|
+
Restr <A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10541>10541</A> A 5 M 230-520 <A HREF=/students/maps/map.cgi?ART>ART</A> 312 <A HREF=/students/icd/S/arthis/531blithe.html>BRAVMANN,RENE A.</a> Open 1/ 12 $30
|
|
403
|
+
</td></tr></table>
|
|
404
|
+
|
|
405
|
+
<br>
|
|
406
|
+
|
|
407
|
+
<table bgcolor="#ccffcc" width="100%">
|
|
408
|
+
<tr><td width="50%"><b><A NAME=arth533>ART H 533 </A> <A HREF=/students/crscat/arthis.html#arth533>SEM N AM NATIVE ART </A></b></td><td width="15%"><b></b></td><td align="right" width="35%"></td></tr></table>
|
|
409
|
+
<table width="100%" ><tr><td><pre>
|
|
410
|
+
Restr <A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10542>10542</A> A 5 Th 230-550 <A HREF=/students/maps/map.cgi?ART>ART</A> 312 <A HREF=/students/icd/S/arthis/533wright.html>WRIGHT,ROBIN K</a> Open 6/ 12 $30
|
|
411
|
+
</td></tr></table>
|
|
412
|
+
|
|
413
|
+
<br>
|
|
414
|
+
|
|
415
|
+
<table bgcolor="#ccffcc" width="100%">
|
|
416
|
+
<tr><td width="50%"><b><A NAME=arth541>ART H 541 </A> <A HREF=/students/crscat/arthis.html#arth541>SEMINAR GRK ROM ART </A></b></td><td width="15%"><b></b></td><td align="right" width="35%"></td></tr></table>
|
|
417
|
+
<table width="100%" ><tr><td><pre>
|
|
418
|
+
<A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10543>10543</A> A 5 T 230-550 <A HREF=/students/maps/map.cgi?ART>ART</A> 212 <A HREF=/students/icd/S/arthis/541ktopper.html>TOPPER,KATHRYN R.</a> Open 2/ 10 $30 J
|
|
419
|
+
</td></tr></table>
|
|
420
|
+
|
|
421
|
+
<br>
|
|
422
|
+
|
|
423
|
+
<table bgcolor="#ccffcc" width="100%">
|
|
424
|
+
<tr><td width="50%"><b><A NAME=arth597>ART H 597 </A> <A HREF=/students/crscat/arthis.html#arth597>GRADUATE INTERNSHIP </A></b></td><td width="15%"><b></b></td><td align="right" width="35%"></td></tr></table>
|
|
425
|
+
<table width="100%" ><tr><td><pre>
|
|
426
|
+
<A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10544>10544</A> A 2-5 to be arranged Open 0/ 10 CR/NC
|
|
427
|
+
PERMISSION OF FACULTY ADVISER.
|
|
428
|
+
</td></tr></table>
|
|
429
|
+
|
|
430
|
+
<br>
|
|
431
|
+
|
|
432
|
+
<table bgcolor="#ccffcc" width="100%">
|
|
433
|
+
<tr><td width="50%"><b><A NAME=arth598>ART H 598 </A> <A HREF=/students/crscat/arthis.html#arth598>MASTER'S PRACTICUM</A></b></td><td width="15%"><b></b></td><td align="right" width="35%"></td></tr></table>
|
|
434
|
+
<table width="100%" ><tr><td><pre>
|
|
435
|
+
IS ><A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10545>10545</A> A VAR to be arranged 0/ 10E CR/NC
|
|
436
|
+
</td></tr></table>
|
|
437
|
+
|
|
438
|
+
<br>
|
|
439
|
+
|
|
440
|
+
<table bgcolor="#ccffcc" width="100%">
|
|
441
|
+
<tr><td width="50%"><b><A NAME=arth599>ART H 599 </A> <A HREF=/students/crscat/arthis.html#arth599>RDG-WRTG PROJECTS</A></b></td><td width="15%"><b></b></td><td align="right" width="35%"></td></tr></table>
|
|
442
|
+
<table width="100%" ><tr><td><pre>
|
|
443
|
+
IS ><A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10546>10546</A> A 2 to be arranged 0/ 45E
|
|
444
|
+
</td></tr></table>
|
|
445
|
+
|
|
446
|
+
<br>
|
|
447
|
+
|
|
448
|
+
<table bgcolor="#ccffcc" width="100%">
|
|
449
|
+
<tr><td width="50%"><b><A NAME=arth600>ART H 600 </A> <A HREF=/students/crscat/arthis.html#arth600>INDEPNDNT STDY/RSCH </A></b></td><td width="15%"><b></b></td><td align="right" width="35%"></td></tr></table>
|
|
450
|
+
<table width="100%" ><tr><td><pre>
|
|
451
|
+
IS ><A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10547>10547</A> A 1-10 to be arranged 0/ 20E
|
|
452
|
+
</td></tr></table>
|
|
453
|
+
|
|
454
|
+
<br>
|
|
455
|
+
|
|
456
|
+
<table bgcolor="#ccffcc" width="100%">
|
|
457
|
+
<tr><td width="50%"><b><A NAME=arth602>ART H 602 </A> <A HREF=/students/crscat/arthis.html#arth602>IND STDY/RSCH ROME</A></b></td><td width="15%"><b></b></td><td align="right" width="35%"></td></tr></table>
|
|
458
|
+
<table width="100%" ><tr><td><pre>
|
|
459
|
+
IS <A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10548>10548</A> A VAR to be arranged Open 0/ 6
|
|
460
|
+
</td></tr></table>
|
|
461
|
+
|
|
462
|
+
<br>
|
|
463
|
+
|
|
464
|
+
<table bgcolor="#ccffcc" width="100%">
|
|
465
|
+
<tr><td width="50%"><b><A NAME=arth700>ART H 700 </A> <A HREF=/students/crscat/arthis.html#arth700>MASTERS THESIS</A></b></td><td width="15%"><b></b></td><td align="right" width="35%"></td></tr></table>
|
|
466
|
+
<table width="100%" ><tr><td><pre>
|
|
467
|
+
IS ><A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10549>10549</A> A 1-10 to be arranged 0/ 15E CR/NC
|
|
468
|
+
</td></tr></table>
|
|
469
|
+
|
|
470
|
+
<br>
|
|
471
|
+
|
|
472
|
+
<table bgcolor="#ccffcc" width="100%">
|
|
473
|
+
<tr><td width="50%"><b><A NAME=arth800>ART H 800 </A> <A HREF=/students/crscat/arthis.html#arth800>DOCTORAL DISSERTATN </A></b></td><td width="15%"><b></b></td><td align="right" width="35%"></td></tr></table>
|
|
474
|
+
<table width="100%" ><tr><td><pre>
|
|
475
|
+
IS ><A HREF=https://sdb.admin.washington.edu/timeschd/uwnetid/sln.asp?QTRYR=SPR+2010&SLN=10550>10550</A> A 1-10 to be arranged 0/ 15E CR/NC
|
|
476
|
+
</td></tr></table>
|
|
477
|
+
|
|
478
|
+
<P>
|
|
479
|
+
|
|
480
|
+
<div id="footer"><div id="footerseal">
|
|
481
|
+
<a href="http://www.washington.edu/"><img src="/home/graphics/blockw.gif" width="53" height="37" alt="UW Logo" /></a>
|
|
482
|
+
</div>
|
|
483
|
+
<div id="addressright"></div>
|
|
484
|
+
<div id="address"><ADDRESS>
|
|
485
|
+
<A Href="http://depts.washington.edu/registra/">Office of the
|
|
486
|
+
Registrar</a>, 206-543-5378<BR>
|
|
487
|
+
<A
|
|
488
|
+
href="mailto:registrar@u.washington.edu">registrar@u.washington.edu</a><BR>
|
|
489
|
+
Modified: February 20, 2010
|
|
490
|
+
</ADDRESS>
|
|
491
|
+
</div>
|
|
492
|
+
</div>
|
|
493
|
+
|
|
494
|
+
</BODY></HTML>
|
|
495
|
+
<SCRIPT LANGUAGE="JavaScript">
|
|
496
|
+
<!--
|
|
497
|
+
function openWin(sWindowURL,sWindowName,iWidth,iHeight)
|
|
498
|
+
{
|
|
499
|
+
if (iWidth > screen.width) {
|
|
500
|
+
iWidth = screen.width * .75;
|
|
501
|
+
}
|
|
502
|
+
if (iHeight > screen.height) {
|
|
503
|
+
iHeight = screen.height * .85;
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
popupWindow = open
|
|
507
|
+
( sWindowURL,
|
|
508
|
+
sWindowName,
|
|
509
|
+
"resizable=yes"
|
|
510
|
+
+ ",scrollbars=yes"
|
|
511
|
+
+ ",toolbar=no"
|
|
512
|
+
+ ",location=no"
|
|
513
|
+
+ ",directories=no"
|
|
514
|
+
+ ",status=no"
|
|
515
|
+
+ ",menubar=no"
|
|
516
|
+
+ ",width=" + iWidth
|
|
517
|
+
+ ",height=" + iHeight
|
|
518
|
+
+ ",top="+((screen.height-iHeight)/2)
|
|
519
|
+
+ ",left="+((screen.width-iWidth)/2)
|
|
520
|
+
);
|
|
521
|
+
}
|
|
522
|
+
-->
|
|
523
|
+
</SCRIPT>
|
|
524
|
+
<!--Created by chtml 1.48 on Feb 20, 2010 8:22am-->
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rubyuw
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.99.
|
|
4
|
+
version: 0.99.13
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Mitchell Hashimoto
|
|
@@ -9,7 +9,7 @@ autorequire:
|
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
11
|
|
|
12
|
-
date: 2010-02-
|
|
12
|
+
date: 2010-02-20 00:00:00 -08:00
|
|
13
13
|
default_executable:
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
@@ -80,6 +80,7 @@ files:
|
|
|
80
80
|
- test/mocked/fixture_pages/sln_no_course_notes.html
|
|
81
81
|
- test/mocked/fixture_pages/sln_no_enrollment_info.html
|
|
82
82
|
- test/mocked/fixture_pages/sln_status.html
|
|
83
|
+
- test/mocked/fixture_pages/time_schedule_arthis.html
|
|
83
84
|
- test/mocked/fixture_pages/time_schedule_chem.html
|
|
84
85
|
- test/mocked/fixture_pages/welcome.html
|
|
85
86
|
- test/mocked/schedule_test.rb
|