|
Kim B. Bruce
Visiting Professor of CS
Computer Science Department
Princeton University
|
I am visiting Princeton University during the fall term of 1998. I'll be
returning to my normal position as Professor of Computer Science in the
Computer Science Department at
Williams College after this semester
(though I will still be on sabbatical for one more semester!).
I am still
recovering from having served my third term as department chair there.
I am teaching COS 441:
Programming Languages at Princeton this fall.
I will also be doing some consulting at
NEC Research in the
software systems research
group on their Java compiler project.
One of my main projects this term is to work on a book on Types
and Semantics for Object-Oriented Languages. Some of this material
will find its way into COS 441.
Selected links
Research interests
Programming language design and semantics: Type
theory, object-oriented languages, models of higher-order lambda calculus
including subtypes and bounded polymorphism.
I am (co-)conference chair for
FOOL, the
International Workshops on Foundations of Object-Oriented Languages.
My current work focuses on the design of provably type-safe statically-typed
object-oriented languages. Like many others, I have a
proposal to
add features to java to support parametric polymorphism. My
papers and many of
my students' honors
theses are available on-line
Computer Science Education
I've been involved in several different projects involving the design of
Computer Science Curricula at the college level. This includes the
- liberal arts college curriculum recommendations in
"A model curriculum for a liberal arts degree in Computer Science",
by Gibbs and Tucker,
Communications of the ACM, 29(3), 1986, pp. 202-210. The updated
version is: "A revised model curriculum for a liberal arts
degree in Computer Science", by Walker and Schneider,
Communications of the ACM, 39(12), 1996, pp. 85-95. Unfortunately it was
delayed in press long enough not to include mention of recent potential
languages for CS1 and 2 like Java and Ada 95.
- ACM / IEEE Computer Science Curricula '91 recommendations. A summary
can be found in "Computing Curricula 1991", Communications of the ACM, 34(6),
1991, pp. 68-84. A paper that I wrote on the report,
Creating a new model curriculum: A rationale for Computing Curricula '91
, which appeared in Education and Computing, 7(1991), pp.
23-42, is available on line.
- Handbook for Computer
Science and Engineering, Allen Tucker,
editor-in-chief, 1997. I served on the advisory board and as section advisor
for Programming Languages.
This is intended to be a great source of material for professionals, but should
also be an extremely useful source of material for upper-division students
and courses in CS and E.
I'm very unhappy about the proposed change of the ETS Advanced Placement exam
in Computer Science to C++. I posted a letter of
protest on comp.edu and sent a copy to SIGCSE members.
I was also a co-signer of a letter published
the summer of 1995 in the Communications of the ACM protesting both the
change to the APCS exam and the way the change was made. Unfortunately
the change has now been put in place. Hopefully it won't be long until
C++ is abandoned for the course.
Here are some
notes for a talk I gave in July, 1997 to the Liberal
Arts CS Consortium analyzing the use of Java in the intro course sequence.
I was a participant in the
education group
of the
ACM Workshop on Strategic Directions in Computer Science.
My
position paper is available on-line for comment. A compilation of the
reports was published in the Computing Surveys.
I gave tutorials on types in object-oriented languages at
ECOOP 96 in
Linz, Austria, and at
OOPSLA 96 in
San Jose, California.
Information and an outline are available online.
In 1998 I gave a slightly revised version at ECOOP '98 in Brussels
and repeat it at OOPSLA '98 in Vancouver, Canada.
kb@cs.princeton.edu