22C:030 Computer Science III
Spring 2003 - University of Iowa
Overview
The second time teaching 22C:030 was just as enjoyable as my first. I really like teaching the class
and interacting with the students as they explore the bounds of their programming knowledge. The format
was very similar to 2002 except the exams were worth a larger percentage of the mark. The other new
feature was a major project at the end involving game trees and student competition. Judging by the
student response, the project was a major hit and should be improved and extended for use in future
years.
When teaching large classes I try to encourage every student to not only pass, but do their absolute
best. I also strive for a very interactive class where the students are actively involved in the
discussion and solving problems. I believe that the students enjoyed the class even though it is a
difficult class that covers many topics, including learning C++ for the first time, in a very limited
time. Although the pass rate was slightly lower than 2002, it was not substantially different. The drop
in average GPA is related to tougher standards for getting an A and A+ and does not reflect less teaching
effort or weaker student performance. I look forward to teaching this course in the future, and will
continue to strive to make it better.
The class itself was taught in the Chemistry Building in room 221 from 2:30-3:45 pm Tuesdays and
Thursdays. The Chemistry Building is definitely not as nice as Pappa John in 2002, but it was
sufficient. The switch to Tuesday and Thursday class times improved attendance and student learning.
The lab section content was improved, but still more work needs to be done to make the lab a more
interactive and hands-on experience that students want to attend.
On-line Resources
Student Performance
Of the 59 registered students who started the course, 46 passed the course for a very good 72.9%
pass rate. The average GPA was 2.63 or just below a B-. Charts showing the mark breakdown are
below.
Comments
What Students Liked Most About the Course
I am very pleased that many students enjoyed the course. 22C:030 involves a substantial amount of
programming effort, and it is gratifying to see many students succeed in the challenge.
- "In comparison to other CS instructors Ramon was the best. He was clear and
concise, didn't make you feel dumb. He was available for help [through] web or office
hours and made things understandable during lecture with examples. He made a topic of
study, that isn't always the easiest to teach, interesting. I highly recommend Prof.
Lawrence."
- "You're a great teacher. I would recommend this class to anyone. No
complaints."
- "Best [professor] I have had in the CS department."
- "Prof. Lawrence is easily the best teacher I have had in CS yet. He is easy to
understand, thorough, and gives us plenty of practice for exams, etc. He is an
excellent teacher and motivator. I wish there were more classes I could take that were
taught by him."
- "The final project was good. The instructor does better answering questions
than any other professor I've had. Overall a way better class than CS II."
- "The professor was the most knowledgeable AND approachable professor that I have
had. He made it very easy to seek help and was very good about making sure I
understood the material."
- "Overall this is the best instructor I have ever had in the time I've been [at]
UIOWA."
- "By far the best and most effective CS professor I have encountered. Exams were
fair and reflected course material. Programming projects and homework were also
beneficial. I would encourage the department to keep Prof. Lawrence as the CS III
prof."
- "The class was very challenging which taught me useful skills. Prof. Lawrence
did an excellent job of presenting confusing material in an understandable way. The
programming projects were interesting and taught real-world applications. This has
been the best class I have taken in some time. I will highly recommend Prof.
Lawrence's classes to my peers."
- "I just need to add that this has been an excellent class and my learning of data structures and
C++ is a lot higher than it was before (which was pretty much NULL). Excellent challenging class and the
teaching method were great."
What Students Liked Least About the Course
As always, there is room for improvement, and you cannot please everyone. Many students thought the
amount of work, especially assignments, was significant given that it was a 3 credit hour course. The
number of students complaining about the work was slightly less than in 2002. I feel this course is all
about effort and practice. I do agree that the assignments could have been scheduled better to cover
material on the assignments ASAP, but that is not always possible. The April Fool's Day quiz surprised
fewer people this year, but you do need to have a sense of humor in my class! Also, I rarely use the
textbook in my classes, so do not buy it if you do not think you are going to use it.
- "More time was needed for programming projects because not all of the material
needed for them was covered by the time it was assigned."
- "Programming projects should be worth more due to the time spent. Should be a 4
s.h. course."
- "I didn't like writing out code everyday. I like to sit and listen not
necessarily participate actively in every lecture. And I was unaware, we didn't need
the book, I haven't opened it."
- "This could also be a good thing, but, wait yes, this is not all that bad of a
thing, but being thrown into the second project really was a make-it/break-it thing.
If you didn't know C++, you really had to learn, and this took me a long time but I
made it."
- "The programming projects were too complex and not clear enough. Additionally,
the programming assignments were exponentially more difficult than even exams. Try to
simplify them or involve them more in class. It was as if class and homework were in
one league, and programming projects were [in another]."
- "Add more weight to the programming projects and homework (percentage wise) as
these are the things that we spend most time on and best reflect our work in computer
science; not 50 minute written exams. "
Comments on the Project
For the first time, I introduced a capstone project for CS III. The project involved building a game
that could play Critical Mass. This is similar to 2002 except this time, the students uploaded their
code onto a web server and challenged each other's code. Undergraduate honors student Elizabeth Heithoff
worked on the web site design. Although there were some problems involving student rankings, program
crashes and infinite loops, the project was a big success and should be repeated next year. Due to the
nature of Critical Mass, the board evaluator proved to be more important than the game tree, so marking
had to encourage students to write a game tree although it was not often needed to do well in the
competition. Next time, the web site needs to be improved and a new game chosen. Below are a few
comments about the project from the student survey on it.
- "I would like to begin by saying that this project was a lot more fun to do than just about any
othe project I have done in Computer Science and should definitely be used again in future
classes."
- "This assignment was the most intersting in my whole computer science education. Designing the
game and competing with other students gave the assignment additional dimensions beside the basic fact of
applying the computer science concepts that we learned. ... Overall I think it was a valuable experince
that I learned a lot from as well as the entertainment and the competition aspect that I am sure all my
fellow students enjoyed."
- "If all assignments were like this, I would learn so much more, this kind of
programming project is the perfect combination of fun mixed with knowlege."
- "This was possibly the most interesting project I have ever worked with in my
career at Iowa. It has definitely sparked my interest to learn more about game
intelligence programming in the future."
- "I enjoyed the challenge but some people are a little too serious about winning.
Seems like there are more than 10 points on the line. It seems like a pride thing, but
I'm not complaining I'm serious about winning too :)"
- "I would like to be able to see the game happening live, instead of watching it
afterwards. Also, it would be nicer to have the ranking system based off of points, and
not by who won the last game at that spot."
- "Awesome project. There are still some small bugs but they can probably be
worked out. The competition was a great idea, it kept me trying to make my code better
and better."
- "I'd just like to say that this is the most innovative method used for an
assignment so far in any computer science course that I've taken. Placing students in
direct competition in this way and having them build something that they can truly have
fun with makes this project a much better learning experience than if we were told to
simply make a game tree and turn it in. The motivation behind seeing how well my code
stands in contrast to others really forced to work harder than I otherwise would have
on this project."
- "The CM website was great but the ranking doesn't tell you much about who has
the better code, for example, I managed to get a good ranking although I knew that my
code always lost to a certain student. Ranking made this assginment interesting but
without having the student with the good code online more often, 10 students with less
efficient code could leap over that student. a good example is when the ranking for
rlawrenc went down to 12 although none of the students who jumped over rlawrenc at the
time defeated rlawrenc. The website overall is great, but there must be some kind of
button that enables you kill your own game, as it is playing against someone else
(automatically make the other player the winner) just in case of infinite loops or if it
is taking too long (the code has multiple cout statements) "
- "I found this project to be very difficult. ... I think it could have been much better if the game
were not so complicated, or if we had access to a proper insertBomb() method at the start. I think this
project was interesting, but was too difficult to implement for this class. I don't feel like I was able
to demonstrate how well I understand game trees or even the game. Overall I'm just not sure that this
assignment was the best way to go about having us demonstrate our knowledge of the
material."
Home Page
Go Back