Computer Science 100
(Introduction to Computers and Computing) and Pairs Programming
CS 100 is a basic literacy-type course for non-CS
majors. I created this course at the University of Tennessee, and
it ran for the first time in Spring Semester of 1996. The course
has evolved substantially since that time, and the student base it
caters to has also evolved substantially since 1996. I started
using Pairs Programming in the course in Fall Semester 2007.
First years (taught by me): taught in UNIX on Sun workstations
(we had no PC lab). Large lectures, with lab sections of size
25-30. We typically had 3 GTAs per lab, and I was usually around
as well. We actually taught both UNIX and PC skills--the feeling
was that many or most students had access to PCs at home or in the
dorms, but the University of Tennessee accounts provided to students
were on UNIX machines, and so being able to transition back and forth
would be useful. I taught basic architecture--busses, caches and
their benefits, different types of memory (ROM, RAM, DRAM, SRAM,
etc)--help them learn how to talk the talk. Labs worked with web
pages, editing and graphics tools, etc. We taught a bit of C--not
so much to write programs but rather to help students understand what
programs are. I also taught networking basics--such as the RS-232
protocol, etc. The enrollment was 240 a semester. At that
time, very few students had web skills, and so CS 100 was one of the
few mechanisms at UTK for learning web design basics.
Next years: taught be instructors. The course shifted to
PCs, and there was more emphasis on tools such as spreadsheets--there
was less core CS material. The enrollment stayed at about
240/semester, with one large lecture and lots of lab sections. We
still had typically about 3 GTAs per lab. Minimal programming.
The third phase saw some of our faculty take over the course--they
wanted to put "material of interest in Computer Science" into CS
100. Still on PCs, we now taught quite a lot of Java and
object-oriented programming, Turing machines, etc. The enrollment
dropped to about 50 a semester--not many happy campers even then.
The fourth phase (about 2004) saw one of our instructors take
over. We did less Java and more spreadsheets and tools--Turing
machines disappeared. After a year or two Java changed to Python
and the emphasis was on the basics and the Tk graphics package.
Students spent about 5-6 weeks on Python and go through I/O, ifs and
while loops, with the more adventurous students doing some
animation. We still had 3 GTAs per lab--they were kept busy
the whole time. We did some web pages, but the Python proved
frustrating for many students, and the drop-out rate in the labs was
substantial. Enrollment slowly grew up from the low levels of
phase 3.
Phase 4.1, so to speak. I got back to being involved with the
course for Fall, 2007. I taught one section with about 70
students, and the instructor from phase 4 taught the other (about 80
students). I had just returned from Stars! in Charlotte, and had
attended Laurie William's Pairs Programming talk. In July 2007
the Computer Science Department had merged with ECE and we were now
part of the College of Engineering. We were facing substantial
reductions in the number of GTAs (GTA lines would be given in the next
few years to other departments in the college). I ran my labs
using Pairs Programming, while the other section still had the students
working on their own. I also made a few changes to what I had my
students do in the labs: I placed more emphasis on web
pages. For the other section, web pages were, until the last week
or so of class, not "published"--they could be viewed only as files by
browsers, and not accessed via the Web. I had to work out
arrangements with our labstaff so that my students could have their
pages on www.cs.utk.edu (the CS Dept's web server)--this was not as
easy as it sounds, since we're primarily a UNIX/LINUX shop, and the
students were using Windows XP--but we got it working. Students,
families, and friends could now see their pages on the Web--a reversion
to Phase 1. We had been giving awards (a couple of points on the
final class average) in the course for outstanding web pages, and for
Fall, 2007, 10 of the top 11 came from my students.
Phase 4.11. I taught both sections of CS 100 for Spring, 2008,
with an enrollment of 190+ and Pairs Programming througout.
pairs part 2