\documentclass[12pt]{article} \setlength{\parindent}{0pt} \setlength{\oddsidemargin}{0in} \setlength{\evensidemargin}{0in} \setlength{\textwidth}{6.5in} \setlength{\headheight}{0in} \setlength{\headsep}{0in} \setlength{\topmargin}{0in} \setlength{\textheight}{8.5in} \setlength{\parsep}{0pt} \setlength{\parskip}{0pt} \setlength{\partopsep}{0pt} \setlength{\topsep}{2pt} \renewcommand{\section}[1]{ \vspace{20pt}\begin{flushleft}{\large\bf #1}\end{flushleft}\nopagebreak } \renewcommand{\thebibliography}[1]{ \list {[\arabic{enumi}]}{\settowidth\labelwidth{[#1]}\leftmargin\labelwidth \advance\leftmargin\labelsep \usecounter{enumi}} \def\newblock{\hskip .11em plus .33em minus -.07em} \sloppy \sfcode`\.=1000\relax} \begin{document} \begin{center} {\Large\bf Michael J. O'Donnell}\\ (11 August 2005) \end{center} \hbox{ \parbox[t]{4.75in}{ \begin{flushleft} The University of Chicago\\ Department of Computer Science\\ Ryerson Hall, 1100 E. 58th St.\\ Chicago, IL 60637\\ (773) 702-1269\\ \emph{odonnell@cs.uchicago.edu}\\ \emph{http://www.cs.uchicago.edu/\raisebox{-0.25\baselineskip}{\char'176}odonnell} \end{flushleft} } \hfill \parbox[t]{1.5in}{ \begin{flushleft} 215 Harbor St.\\ Glencoe, IL 60022-1941\\ (847) 835-1837\\ \emph{michael\_odonnell@acm.org} \end{flushleft} } } \section{Vita} \begin{tabular}{ll} Birth & Spartanburg SC, 4 April, 1952 \\ Family & Married, 2 children \\ Citizenship & United States of America \end{tabular} \section{Education} \begin{tabular}{lllll} B.S. & Computer Sciences & Highest Distinction & Purdue University & 1972 \\ Ph.D. & Computer Science & R.~Constable, advisor & Cornell University & 1976 \end{tabular} \section{Employment} \begin{tabular}{lll} Research Associate & University of Toronto & 1976--1977 \\ & (on leave from Purdue) \\ Assistant Professor & Purdue University & 1976--1981 \\ Associate Professor & Purdue University & 1981--1985 \\ Visiting Associate Professor & The Johns Hopkins University & 1983--1984 \\ & (on leave from Purdue) \\ Associate Professor & The Johns Hopkins University & 1984--1985 \\ & (on leave from Purdue) \\ Professor & University of Chicago & 1985--present \\ Associate Chairman C.S. & University of Chicago & 1986--1987 \\ Chairman of C.S. Dept. & University of Chicago & 1987--1990 \\ Visiting Professor & University of Iowa & 1996-1997 \\ & (on sabbatical from U.~Chicago) \\ Senior Fellow & University of Chicago & 2000--present\\ in the Computation Institute \end{tabular} \pagebreak \section{Professional Societies} ACM, IEEE Computer Society, Association for Symbolic Logic, Computer Professionals for Social Responsibility, Acoustical Society of America, American Physical Society, Free Software Foundation \section{Research Interests} \begin{itemize} \item Sound synthesis. \item Semantics for constructive reasoning. \end{itemize} \section{Papers in Refereed Journals} \begin{thebibliography}{22.} \bibitem{geometry} Geometrical problems with applications to hashing (with D.~Comer). \newblock \emph{SIAM Journal on Computing,} 11(2):217--226, May 1982. \newblock Also appeared as Purdue University Technical Report TR-303, 1979. \bibitem{pattern} Pattern matching in trees (with C.~Hoffmann). \newblock \emph{Journal of the ACM,} 29(1):68--95, January 1982. \newblock Also appeared in the collection \newblock \emph{Computer Algorithms: string pattern matching strategies,} \newblock J.-I. Aoe, editor, \newblock IEEE Computer Society Press, Los Alamitos CA, \newblock 1994, 154--181. \bibitem{programming} Programming with equations (with C.~Hoffmann). \newblock \emph{ACM Transactions on Programming Languages and Systems,} 4(1):83--112, January 1982. \newblock A preliminary version of \cite{pattern,programming} with some additional material, appeared as \newblock An interpreter generator using tree pattern matching. \newblock \emph{6th Annual ACM Symposium on Principles of Programming Languages,} 169--179, January 1979. \bibitem{critique} \newblock A critique of the foundations of Hoare-style programming logics. \newblock \emph{Communications of the ACM,} 25(12):927--934, December 1982. \newblock Also appeared as Purdue University Technical Report TR-338, 1980, and in the \newblock \emph{Logics of Programs Workshop,} D.~Kozen editor, Yorktown Heights, New York, May 1981, \emph{Lecture Notes in Computer Science,} 131:349--374, Springer-Verlag, 1982. \bibitem{type} The expressiveness of simple and second order type structures (with S.~Fortune and D.~Leivant). \newblock \emph{Journal of the ACM,} 30(1):151--185, January 1983. \newblock Also appeared as IBM Research Report RC 8542 (\#37221) 10/31/80. \newblock Some of the material in this paper also appeared in conference~\cite{independent} and lecture~\cite{proof}. \bibitem{interconnect} A combinatorial problem concerning interconnection networks (with C.~Smith). \newblock \emph{IEEE Transactions on Computing,} C-31(2):163--164, February 1982. \newblock Also appeared as Purdue University Technical Report CSD TR 352, 1981. \bibitem{hash} A combinatorial analysis of static-key hashing (with F.~Berman, M.~Bock, E.~Dittert and D.~Planck). \newblock \emph{SIAM Journal on Computing,} 15(2):604--618, May 1986. \bibitem{sort} Lower bounds for sorting with realistic instruction sets (with E.~Dittert). \newblock \emph{IEEE Transactions on Computers,} C-34(4):311--317. April 1985. \newblock Also appeared as Johns Hopkins University Technical Report JHU/EECS 84/06. \newblock An error is corrected in C-35(10):932, October 1986. \bibitem{implementation} Implementation of an interpreter for abstract equations (with C.~Hoffmann and R.~Strandh). \newblock \emph{Software---Practice and Experience,} 15(2):1185--1204, December 1985. \newblock An earlier version, by Hoffmann and O'Donnell, appeared in \emph{10th Annual ACM Symposium on Principles of Programming Languages,} 111--120, January 1984. \newblock Also appeared as Johns Hopkins University Technical Report JHU/EECS/84/03, 1984. \bibitem{representation} How to prove representation-independent independence results (with S.~Kurtz and J.~Royer). \newblock \emph{Information Processing Letters,} 24:5--10, January 1987. \newblock Also appeared as University of Chicago Department of Computer Science Technical Report 85-006, 1985. \bibitem{lauchli-countermodels} Some intuitions behind realizability semantics for constructive logic: Tableaux and L\"auchli countermodels (with J.~Lipton). \newblock \emph{Annals of Pure and Applied Logic}, 81:187--239, 1996. \bibitem{leveled-gc} Leveled Garbage Collection (with G.~Tong). \newblock \emph{Journal of Functional and Logic Programming}, 2001:5, 2001. \bibitem{sound-morphing} Cell-Utes and Flutter-Tongued Cats: Sound Morphing Using Loris and th Reassigned Bandwidth-Enhanced Model (with K.~Fitz, L.~Haken, S.~Lefvert, C.~Champion). \newblock \emph{Computer Music Journal}, 27(3):44--65, Fall 2003. \bibitem{proposal_handles_short} A Proposal to Separate Handles from Names on the Internet. \newblock To appear in \emph{Communications of the Association for Computing Machinery}. Longer version in Technical Report~\cite{proposal_handles}. \end{thebibliography} \section{Competitive Conference Papers} \begin{thebibliography}{22.} \bibitem{independent} A programming language theorem which is independent of Peano arithmetic. \newblock \emph{11th Annual ACM Symposium on Theory of Computing,} 176--186, May 1979. \newblock Similar papers appeared as A practical programming theorem which is independent of Peano arithmetic. \newblock \emph{100th Anniversary Conference in honor of Gottlob Frege,} Friedrich Schiller Universit\"at, Jena, D.D.R., 1979, \newblock and as Purdue University Technical Report TR-299, 1979. \bibitem{simulation} Parallel stepwise simulation of combinatory reduction systems. \newblock \emph{1984 Conference on Information Sciences and Systems,} Princeton, N.J., May 1984. \newblock A longer version containing additional material appeared as Universal reduction systems for sequential and parallel computation, \newblock Johns Hopkins University Technical Report JHU/EECS/84/04, 1984, and was included in book \cite{equations}. \bibitem{error} Realizability semantics for error-tolerant logics (with J.~Mitchell). \newblock In J.~Halpern, editor, {\em Theoretical Aspects of Reasoning About Knowledge, Proceedings of the 1986 Conference,} Morgan Kaufman, New York, 1986. \newblock An earlier version by O'Donnell appeared as A type-theoretic foundation for epistemic and relevance logics, Johns Hopkins University Technical Report JHU/EECS/85/02. \bibitem{real} Exact real arithmetic: a case study in higher order programming (with H-J.~Boehm, R.~Cartwright, and M.~Riggle). \newblock \emph{1987 Symposium on LISP and Functional Programming}. \bibitem{nonterminating-confluence} Testing confluence of nonterminating overlapping systems of rewrite rules (with Y.~Chen). \newblock \emph{Conditional and Typed Rewriting Systems,} \newblock 2nd International CTRS Workshop, Montreal, June 1990. \emph{Lecture Notes in Computer Science} 516, Springer-Verlag, 1991, pp. 127--136. \newblock Preliminary versions appeared as University of Chicago Department of Computer Science Technical Report 89-03, 1989 and 90-07, 1990. \bibitem{infinite-terms} Infinite Terms and Infinite Rewritings (with Y.~Chen). \newblock \emph{Conditional and Typed Rewriting Systems,} \newblock 2nd International CTRS Workshop, Montreal, June 1990. \emph{Lecture Notes in Computer Science} 516, Springer-Verlag, 1991, pp. 115--126. \newblock Preliminary version appeared as University of Chicago Department of Computer Science Technical Report 90-08, 1990. \bibitem{loris} Sound Morphing using Loris and the Reassigned Bandwdith-Enhanced Additive Sound Model: Practice and Applications (with S.~Lefvert, K.~Fitz, L.~Haken). \emph{International Computer Music Conference}, G\"oteborg, September 2002. \end{thebibliography} \section{Book Chapters} \begin{thebibliography}{22.} \bibitem{handbook-intro} Introduction: Logic and Logic Programming Languages. \newblock Chapter 1 of \emph{Handbook of Logic in Artificial Intelligence and Logic Programming,} volume 5 on \emph{Logic Programming,} \newblock D.~Gabbay, editor. \newblock 1998, pp.~1--67. \bibitem{handbook-elp} Equational Logic Programming. \newblock Chapter 2 of \emph{Handbook of Logic in Artificial Intelligence and Logic Programming,} volume 5 on \emph{Logic Programming,} \newblock D.~Gabbay, editor. \newblock 1998, pp.~69--161. \end{thebibliography} \section{Open Conference Papers and Technical Reports} \begin{thebibliography}{22.} \bibitem{fully} Toward a fully parallel implementation of the lambda calculus (with R.~Strandh). \newblock Johns Hopkins University Technical Report JHU/EECS/84/13, 1984. \bibitem{interpolation} Multidimensional interpolation at inaccurate points (with E.~Dittert). \newblock Johns Hopkins University Technical Report JHU/EECS/84/17, 1984. \bibitem{unorientable-equations} Proving unorientable equational formulas (with Y.~Chen). \newblock University of Chicago Department of Computer Science Technical Report 90-26, August 1990. \bibitem{head-bounded} Nonterminating rewritings with head boundedness (with Y.~Chen). \newblock University of Chicago Department of Computer Science Technical Report 90-27, August 1990. \bibitem{constructive-lecture} Connecting formal semantics to constructive intuitions (with S.~Kurtz, J.~Mitchell). \newblock Proceedings of a Symposium on Constructivity in Computer Science, Trinity University, San Antonio TX, June 1991. \newblock \emph{Lecture Notes in Computer Science,} Volume 613, Springer-Verlag, 1992, pp. 1--21. \newblock Also appeared as University of Chicago Department of Computer Science Technical Report 92-01, January 1992. \newblock Also presented at the annual meeting of the {\em Association for Symbolic Logic,} Notre Dame, February 1993. \bibitem{excite-formant} Decomposition of steady state instrument data into an excitation system and formant filter components (with I.~Bisnovatyi). \newblock COST Digital Audio Effects Workshop, DAFx99, Trondheim, Norway, 9--11 December 1999, pp.~113--116. \bibitem{manifesto} The Sound Manifesto (with I.~Bisnovatyi). \newblock Critical Technologies for the Future of Computing, \newblock \emph{The International Society for Optical Engineering (SPIE)}, San Diego, CA, 30 July through 4 August 2000. \bibitem{onhs-id} Open Network Handles Implemented in DNS. \newblock Internet Draft draft-odonnell-onhs-imp-dns-00.txt filed with Internet Engineering Task Force, 17 September 2002. A version with different pagination is archived permanently in the \emph{Computing Research Repository} (\emph{CoRR}, \texttt{http://xxx.lanl.gov/archive/cs/intro.html}) as cs.NI/0301011, 14 January 2003. \bibitem{proposal_handles} A Proposal to Separate Handles from Names on the Internet. \newblock \emph{Computing Research Repository} (\emph{CoRR}, \texttt{http://xxx.lanl.gov/archive/cs/intro.html}), number cs.NI/0302017, 12 February 2003. Shorter version in Refereed~\cite{proposal_handles_short}. \end{thebibliography} \section{In Preparation and Submitted} \begin{thebibliography}{22.} \bibitem{antinonmonotonic} Against Nonmonotonic Logic. \bibitem{relational-realizability} Relational realizability (with J.~Lipton). \end{thebibliography} \section{Books} \begin{thebibliography}{22.} \bibitem{systems} \emph{Computing in Systems Described by Equations, Lecture Notes in Computer Science,} Volume 58, Springer-Verlag, 1977. \newblock A preliminary version appeared as Subtree replacement systems: a unifying theory for recursive equations, LISP, Lucid and combinatory logic. \newblock \emph{9th Annual ACM Symposium on Theory of Computing,} 295--305, May 1977. \newblock Also appeared as Reduction Strategies in Subtree Replacement Systems, Ph.D. Dissertation, Cornell University, August 1976. \bibitem{logic} \emph{A Programming Logic} (with R.~Constable), Winthrop, 1978. \bibitem{equations} \emph{Equational Logic as a Programming Language,} MIT Press, 1985. \newblock Includes some material from papers \cite{pattern,programming,implementation} and conference \cite{simulation}, as well as original material. \end{thebibliography} \section{Software Research Projects} \emph{Equation Interpreter/Compiler,} (with C.~Hoffmann, G.~Sacco, P.~Golick, R.~Strandh, S.~Rebelsky, D.~Sherman, S.~Bailey). Announced in \emph{SIGPLAN Notices,} September 1983. Demonstrated at the \emph{Workshop on Logics of Programs,} 1985. Abstract appeared as ``Equational logic as a programming language'', \emph{Logics of Programs: Proceedings 1985, Lecture Notes in Computer Science} 193:255, Springer-Verlag, 1985. First distribution May, 1983. Second distribution as compiler December, 1985. Distributed to Purdue University; Indiana University; The Johns Hopkins University; Los Alamos National Laboratory; Stichting Mathematisch Centrum, Amsterdam; Oregon Graduate Center; Universit\"at des Saarlandes; Mergenthaler Linotype, Frankfurt; Philips Research Laboratories, Sunnyvale, California; University of North Carolina; Moorhead State University; Tektronix, Portland, Oregon; The Foxboro Co., Massachusetts; Colby College; Scientific Calculations, Inc., Santa Cruz, California; University of Iowa; Telefonaktiebolaget L. M. Ericsson, Stockholm, Sweden; Universit\"at Ulm, Germany; U.C. Berkeley; SUN Microsystems; SCS, Hamburg; University of Michigan; Lulea University, Sweden; University of Tasmania; University of York; University of Wisconsin; Advanced Computer Communications, Santa Barbara, CA; MCC; Franz, Inc.; Universit\'e de Gen\`eve; Rice University; University of Louvain; University of North Carolina; University of Washington; University of Arizona; Software Research Associates, Tokyo; Weizmann Institute; SUNY College of Technology; Imperial Software Technology, Cambridge England; Coll\`ege Militaire Royal de Saint-Jean, Quebec; Gesselschaft f\"ur Mathematik und Datenverarbeitung mbH, Sankt Augustin, Germany; MacQuarie University, North Ryde, Australia; University of Nebraska; Memorial University of Newfoundland; Universit\"at Kaiserslautern; Carnegie-Mellon University; University of Queensland, Australia; University of New Hampshire. \emph{\LaTeX\ macros for the Chicago Journal of Theoretical Computer Science}. \emph{cjstruct.cls} allows unambiguous structural markup of published journal articles in \LaTeX\ source format. First version distributed 4 April 1995. Used by MIT Press for \emph{CJTCS} and for the \emph{Journal of Functional and Logic Programming}. \section{Invited Lectures} \begin{thebibliography}{22.} \bibitem{proof} Computational complexity and proof-theoretic power in typed lambda calculi. \newblock \emph{American Mathematical Society Summer Meeting,} 1982. \newblock Abstract appeared in {\em Abstracts of the American Mathematical Society,} 3(5):376, August 1982. \newblock Results from paper~\cite{type}. \bibitem{lectures} Two lectures on logic and computer science: 1. Does arrow denote implication or functionality? A profound mathematical pun. 2. Why the Church-Turing thesis doesn't help parallel functional programming. \newblock \emph{University of Maryland Special Year in Mathematical Logic and Theoretical Computer Science,} October 1984. \newblock Results from paper~\cite{type}, book~\cite{equations}, and original material. \bibitem{universal} What it means to have a universal parallel reduction language. \newblock \emph{Graph Reduction Workshop,} Santa Fe, October 1986. \newblock Results from book~\cite{equations}. \bibitem{survey} Survey of the equational logic programming project. \newblock \emph{Colloquium on Resolution of Equations in Algebraic Structures,} Lakeway, Texas, March 1987. \newblock Survey of material from papers~\cite{programming,implementation}, book~\cite{equations}, plus original material. \bibitem{rewriting} Term-rewriting implementation of equational logic programming. \newblock In P.~Lescanne, editor, \emph{Rewriting Techniques and Applications --- Bordeaux, France, May 1987 --- Proceedings, Lecture Notes in Computer Science,} 256, Springer-Verlag, 1987. \newblock Similar material to invited lecture~\cite{survey}. \bibitem{open} Open Problems in Equational Logic Programming. \newblock Distinguished Lecture Series, SUNY Stony Brook, February 1988. \newblock Similar material to invited lectures~\cite{survey,rewriting}. \bibitem{equation} Equational Logic as a Programming Language. \newblock Colloquium Series in Term Rewriting, Portland State University, March 1991. \newblock Similar material to invited lectures~\cite{survey,rewriting,open}. \bibitem{electronic-journal} Electronic Journals---scholarly invariants in a changing medium. \newblock Conference on Academic and Professional Journals in the Twentieth Century, University of Chicago, April 1992 (presented by author as discussant for session on ``The Future of Journals''). \newblock Also appeared (invited, unrefereed) in \emph{Journal of Scholarly Publishing,} volume 26, number 3, April 1995, University of Toronto Press, pp.\ 183-199, and as University of Chicago Department of Computer Science Technical Report 92-07, April 1992. \bibitem{e-journal-issues} Issues Involved in Publishing an Electronic Journal. \newblock Seminars on Academic Computing 1993 University Executive Program, Snowmass CO, August 1993. \newblock Very similar to \cite{electronic-journal}, but a more detailed presentation---revised version of paper appeared as University of Chicago Department of Computer Science Technical Report 93-11, July 1993. \bibitem{mfcs} Intuitive Counterexamples for Constructive Fallacies (with J.\ Lipton). \newblock {\it Mathematical Foundations of Computer Science 1994 --- 19th International Symposium, MFCS '94, Ko\u{s}ice, Slovakia, August 1994 --- Proceedings, Lecture Notes in Computer Science,} volume 841, Igor Pr\'{\i}vara, Branislav Rovan and Peter Ru\u{z}i\u{c}ka editors, Springer-Verlag, 1994, pp.\ 87--111. \bibitem{electronic-academy} The Structure of Scholarship in Cyberspace. \newblock \emph{Professors and Publishing in the Electronic Academy}. The University of Tennessee, Knoxville Library, September 1996. \bibitem{formal-certainty} The Sources of Certainty in Computation and Formal Systems. \newblock \emph{Computer Science as a Human Science: The Cultural Impact of Computerization}, the 1999--2000 Sawyer Seminar at the University of Chicago. The University of Chicago, October 1999. \bibitem{antinonmonotonic-sigartchi} Against Nonmonotonic Logic. \emph{ACM SIGART Chicago}, March 2001. \end{thebibliography} \section{Editorial Duties} \begin{enumerate} \item Category editor for Theory of Computation, \emph{Computing Reviews}, 1985--1987. \item Managing Editor and founder of the \emph{Chicago Journal of Theoretical Computer Science}, a refereed scholarly journal published by MIT Press on the World Wide Web, 1994--2000. \item Editorial Board for the \emph{Journal of Functional and Logic Programming}, 1995--present. \item Advisory Board for \emph{Logical Methods in Computer Science}, 2002--present. \end{enumerate} \section{Refereeing} \emph{Journal of Computer and Systems Sciences; SIAM Journal on Computing; Communications of the ACM; Journal of the ACM; ACM Transactions on Programming Languages and Systems; Information Processing Letters; Software Practice and Experience; Journal of Computer Languages; Theoretical Computer Science; Information and Control; Acta Informatica; Journal of Philosophical Logic.} ACM annual conference; MIT Press; Elsevier North-Holland; Springer-Verlag; National Science Foundation; Research Council of Canada; Australian Research Grants Scheme; \emph{Journal of Symbolic Computation.} \section{Program Committees} \begin{enumerate} \item \emph{25th Annual IEEE Symposium on the Foundations of Computer Science}, 1984. \item \emph{12th Annual ACM Symposium on Principles of Programming Languages}, 1985. \item \emph{26th Annual IEEE Symposium on the Foundations of Computer Science}, 1985. \item \emph{1985 Conference on Information Sciences and Systems,} cochairman. \item \emph{13th Annual ACM Symposium on Principles of Programming Languages}, 1986 \item \emph{14th Annual ACM Symposium on Principles of Programming Languages}, 1987, chairman. \item \emph{Rewriting Techniques and Applications}, 1991. \item \emph{Rewriting Techniques and Applications}, 1993. \item \emph{Dartmouth Institute for Advanced Graduate Studies, 4th annual summer symposium, Electronic Publishing and the Information Superhighway}, 1995. \item \emph{Algebraic Methodology and Software Technology}, 2000. \end{enumerate} \pagebreak \section{Professional Service} \begin{enumerate} \item Organized Midwest Theory of Computation Meeting, December 1986. \item Founder and president of Midwest Society for Programming Languages and Systems (Midwest Local SIGPLAN), 1987--1994. \item National Science Foundation Research Initiation Panel, February 1988. \item Conference cochair for \emph{16th Annual ACM Symposium on Principles of Programming Languages,} 1989. \item Advisory Board for Foundations of Computation Laboratory, Key Centre for Software Technology, Department of Computer Science, The University of Queensland, 1989--present. \item National Science Foundation Small-Scale Institutional Infrastructure Panel, June 1990. \item Founded the Association of Electronic Scholarly Journals, 1990. \item New York Statewide Review of Doctoral Programs, site visitor, October 1990. \item Universities Space Research Association Science Councils: CESDIS 1991--1996, ICASE 1991--1992. \item Conference cochair for research contributions \emph{Constructivity in Computer Science,} 1991. \item NSF/CRA Workshop on the Computing Research Infrastructure, July 1991. \item Advisory Board for the Information Science Research Institute at the University of Nevada, Las Vegas, 1991--1994. \item Organizing Committee, \emph{Third International Conference on Algebraic Methodology and Software Technology,} 1992--1993. \item Organized \emph{Annual NSF Infrastructure Workshop,} June 1993. \item Chair of ACM SIGSOUND, 2001--2003. \end{enumerate} \section{University Administration and Service} \begin{center} {\large\bf Purdue University} \end{center} \begin{itemize} \item Dept. of Computer Sciences Undergraduate Committee, 1977--1978. \item Organized Theoretical Computer Science Seminar, 1978--1983. \item School of Science Student Cases Committee, 1978--1980. \item Science Board (renamed Science Council), a faculty/student service organization in the School of Science, 1978--1983. \item Dept. of Computer Sciences Faculty Secretary, 1979--1981. \item Faculty advisor to Purdue Velo Club, 1980--1981. \item Faculty advisor to Purdue Ethnic Dancers, 1980--1983. \item Graduate Council, 1980--1983. \item School of Science Grade Appeals Committee, 1980--1983. \item Department of Computer Sciences Personnel Committee, 1981--1983. \item Evaluated Purdue Fellowship Candidates, 1980. \item Evaluated Purdue Summer XL Proposals, 1982. \item PALS program computer demonstration for high school students, 1979--1982. \item Lecture to high school students on careers in Computer Science, 1981. \item Special Graduate School committee to study retention of female graduate students, 1982--1983. Produced a detailed multifactor statistical study of graduate student retention at Purdue. \item Department of Computer Sciences Head Search Committee, 1983. \end{itemize} \begin{center} {\large\bf The Johns Hopkins University} \end{center}\nopagebreak \begin{itemize} \item CSNet Liaison, 1983--1985. \item Engineering Computing Facility Advisory Committee, 1983--1985. \item Chairman, Faculty Search Committee, 1984. \item \emph{Ad Hoc} Committee to Study Fiber Optic Network, 1984. \item Facilities Manager for EECS UNIX 1984--1985. Installed two VAX 11/750 systems running UNIX 4.2 BSD. \end{itemize} \begin{center} {\large\bf The University of Chicago} \end{center} \begin{itemize} \item Graduate Committee, 1985--1987. \item McCormick Fellowship Selection Committee, 1986. \item Associate Chairman, Department of Computer Science, 1986--1987. \item Chairman, Department of Computer Science, 1987--1990. \item Board of Computing Activities and Services, 1986--1990; Steering Committee 1989--1994. \item Ethernet Management Committee, 1986. \item Review Committee for the Mathematics and Computer Science Division at Argonne National Laboratory, 1987--1992. Chairman, 1990--1992. \item Chairman of Working Group on Data Communications, 1987--1988. \item Working Group on Public Computing, 1987--1988. \item Supervised design and renovation of Ryerson 4th floor to add 4,000 square feet of graduate student offices, lounge, etc., 1987--1991. \item Working Group on High-Performance Computing, 1988--1989. \item Designed university statute and policy on intellectual property rights to software developed on campus, 1989. \item Chairman of Public Computing Policy Committee, 1990--1991. \item Committee on Patents, Software, and Intellectual Property, 1989--1993, chairman 1992--1993. \item Communications Architecture Committee, 1991--1995. \item Library Board, 1991--1994. \item Chairman of C.S.\ Dept.\ Computing Facilities Committee, 1991--1999, 2000--present. \item Council on Research, 1992--1993. \item Provost's Faculty Task Force on Library Migration (studying changes to library computer systems) 1993--1994. \item Council of the University Senate, 1994--1996. \item Faculty advisor to University of Chicago Student Computing Operation, 1994--present; Student Linux Users Group 1997--present. \item Board of Computing Activities and Services, standing committee on networking, 1995--1997. \item Faculty Advisory Committee for \emph{The Challenge of Modern Democracy}, an interdisciplinary conference held 9--10 April 1998 at the University of Chicago. \item Advisory Board to create a new program in Interactive Media in the Graham School of General Studies, 1997--2000. \item Planning committee for Franke Institute and Computation Institute joint lecture series on "Design and Information/Communication Technologies," 2000--present. \item Physical Sciences Division Computing Committee, 2000--present. \item Coach the University of Chicago Programming Team, 1998--present. The team competed in the World Finals in 2001 and 2002. \item Physical Sciences Division Advisory Committee for the Center for Elementary Mathematics and Science Education, 2002--present. \item Computer Science Professional Programs Faculty Oversight Committee, 2002--present. \end{itemize} \section{Community Service} \begin{itemize} \item Interviewed for the radio program ``Science Alive!'' April, 1986. \item Glencoe IL School District 35 Strategic Planning Retreat December, 1991. \end{itemize} \section{Research Grants and Contracts} \begin{enumerate} \item \emph{A Uniform Theory for Implementations of Descriptive Languages} (with C.~Hoffmann \$5,400) Purdue Summer XL grant, 1978. \item \emph{A Uniform Theory for Implementations of Descriptive Languages} (with C.~Hoffmann \$71,117) National Science Foundation, 1978--1980. \item \emph{A Uniform Theory for Implementations of Descriptive Languages} (with C.~Hoffmann \$160,659) National Science Foundation, 1981--1983. \item \emph{Research on Programming with Equations} (with C.~Hoffmann \$116,149) National Science Foundation, 1983--1985. \item \emph{Highly Parallel Architectures for General-Purpose Concurrent Programming Languages} (with G.~Masson \$57,940) National Security Agency, 1984--1985. \item \emph{Equational Logic as a Programming Language} (\$27,500) Louis Block Fund, 1985--1986. \item \emph{Equational Logic as a Programming Language} (\$185,193) National Science Foundation, 1986--1988. \item \emph{Theory and Implementation of Equational Logic Programming} (\$176,333) National Science Foundation, 1988--1990. \item \emph{The University of Chicago Computer Science Laboratory} (\$2,030,221) National Science Foundation, 1989--1994. \item \emph{Rigorous Mathematical Sciences Curriculum for the Humanities and Social Sciences} (\$50,000) National Science Foundation 1990--1992. \item \emph{Theory and Implementation of Equational Logic Programming} (\$161,136) National Science Foundation, 1991--1993. \end{enumerate} \section{Meetings Attended} \begin{enumerate} \item \emph{17th Annual Symposium on Foundations of Computer Science,} Houston, 1976. \item \emph{9th Annual Symposium on Theory of Computing,} Boulder, 1977. \item \emph{19th Annual Symposium on Foundations of Computer Science,} Ann Arbor, 1978. \item \emph{6th Annual Symposium on Principles of Programming Languages,} San Antonio, 1979. \item \emph{11th Annual Symposium on Theory of Computing,} Atlanta, 1979. \item \emph{Frege Conference,} Friedrich Schiller Universit\"at, Jena, DDR, 1979. \item \emph{12th Annual Symposium on Theory of Computing,} Los Angeles, 1980. \item \emph{21st Annual Symposium on Foundations of Computer Science,} Syracuse, 1980. \item \emph{Verification Workshop,} Yorktown Heights, NY, 1981. \item \emph{13th Annual Symposium on Theory of Computing,} Milwaukee, 1981. \item \emph{Workshop on Recursion Theoretic Aspects of Computer Science,} W. Lafayette IN, 1981. \item \emph{14th Annual Symposium on Theory of Computing,} San Francisco, 1982. \item \emph{23rd Annual Symposium on Foundations of Computer Science,} Chicago, 1982. \item \emph{15th Annual Symposium on Theory of Computing,} Boston, 1983. \item \emph{24th Annual Symposium on Foundations of Computer Science,} Tucson, 1983. \item \emph{Brooklyn College Symposium on Theoretical Computer Science I: Logic in Computer Science,} 1983. \item \emph{11th Annual Symposium on Principles of Programming Languages,} Salt Lake City, 1984. \item \emph{International Symposium on Logic Programming,} Atlantic City, 1984. \item \emph{1984 Conference on Information Sciences and Systems,} Princeton NJ. \item \emph{16th Annual Symposium on Theory of Computing,} Washington DC, 1984. \item \emph{25th Annual Symposium on Foundations of Computer Science,} West Palm Beach, 1984. \item \emph{University of Maryland Special Year in Mathematical Logic and Theoretical Computer Science,} 1984--1985. \item \emph{12th Annual Symposium on Principles of Programming Languages,} New Orleans, 1985. \item \emph{Logics of Programs Workshop,} Brooklyn New York, 1985. \item \emph{26th Annual Symposium on Foundations of Computer Science,} Portland OR, 1985. \item \emph{13th Annual Symposium on Principles of Programming Languages,} St. Petersburg FL, 1986. \item \emph{Workshop on Theoretical Aspects of Reasoning About Knowledge,} Asilomar CA, 1986. \item \emph{SIGPLAN 1986 Symposium on Practical Program Development Environments,} Palo Alto CA. \item \emph{14th Annual Symposium on Principles of Programming Languages,} Munich, 1987. \item \emph{Colloquium on Resolution of Equations in Algebraic Structures,} Lakeway, Texas, 1987. \item \emph{2nd International Conference on Rewriting Techniques and Applications,} Bordeaux, 1987. \item \emph{SIGPLAN 1987 Symposium on Interpreters and Interpretive Techniques,} St. Paul MN. \item \emph{15th Annual Symposium on Principles of Programming Languages,} San Diego CA, 1988. \item \emph{1988 Snowbird Meeting of CS and EECS Department Chairs,} Snowbird UT. \item \emph{National Computer Conference,} Louisville KY, 1988. \item \emph{16th Annual Symposium on Principles of Programming Languages,} Austin TX, 1989. \item \emph{3rd International Conference on Rewriting Techniques and Applications,} Chapel Hill NC, 1989. \item \emph{17th Annual Symposium on Principles of Programming Languaes,} San Francisco CA, 1990. \item \emph{1990 CER/II Meeting,} Atlanta GA, 1990. \item \emph{Association of Research Libraries Meeting about Refereed Academic Electronic Publishing Projects,} Raleigh NC, 1990. \item Symposium on \emph{Constructivity in Computer Science,} San Antonio TX, 1991. \item NSF/CRA Workshop on the Computing Research Infrastructure, Washington DC, 1991. \item \emph{19th Annual Symposium on Principles of Programming Languages,} Albuquerque NM, 1992. \item \emph{Symposium on Character Recognition and Document Analysis,} Las Vegas NV, 1992. \item \emph{Conference on Academic and Professional Journals in the Twentieth Century,} Chicago IL, 1992. \item \emph{Association for Symbolic Logic, Annual Meeting,} South Bend IN, 1993. \item \emph{Annual NSF Infrastructure Workshop,} 1993. \item \emph{8th Annual IEEE Symposium on Logic in Computer Science,} Montreal Qu\'ebec, 1993. \item \emph{Seminars on Academic Computing, University Executive Program,} 1993. \item \emph{International Conference on Refereed Electronic Journals,} Winnipeg Manitoba, 1993. \item \emph{Mathematical Foundations of Computer Science 1994 --- 19th International Symposium,} Ko\u{s}ice, Slovakia, 1994 \item \emph{Acoustical Society of America}, Indianapolis, 1996. \item \emph{Professors and Publishing in the Electronic Academy}. The University of Tennessee, Knoxville Library, 1996. \item \emph{Acoustical Society of America}, Seattle, 1998. \item \emph{COST Digital Audio Effects Workshop (DAFx99))}, Trondheim, Norway, 1999. \item \emph{Acoustical Society of America}, Chicago, 2001. \end{enumerate} \section{Unrefereed Lectures} \begin{enumerate} \item Rigorous Development of a Lucid Interpreter. University of Waterloo, Fall 1976. \item Automatic Interpreter Generation. Indiana University, Fall 1978; SUNY Buffalo, 16 February, 1979; IBM Research, Yorktown Hts., 8 March, 1979; IBM Research San Jose, 12 March, 1979; M.I.T., 9 April, 1979; Technische Universit\"at, W. Berlin, 14 May, 1979; Universit\"at Aachen, 30 May, 1979; Munich Universit\"at, 31 May, 1979. \item A Programming Language Theorem Which is Independent of Peano Arithmetic. Cornell University, August, 1978; SUNY Buffalo, 15 February, 1979; Universit\"at Bielefeld, 16 May, 1979; Universit\"at Kiel, 18 May, 1979; Universit\"at Heidelberg, 22 May, 1979; Universit\"at M\"unster, 25 May, 1979; Mathematical Institute, Warsaw, 4 June, 1979; Mathematical Institute, Amsterdam, 6 June, 1979. \item Logic For Reasoning About Programs. Purdue University, April 1977; Humboldt Universit\"at, E. Berlin, 15 May, 1979. \item A Critique of the Foundations of Hoare-Style Programming Logics. New Mexico State University, 23 September, 1980 (videotape sent to University of New Mexico, New Mexico Tech.); Los Alamos Laboratories, 24 September, 1980; \emph{Verification Workshop,} IBM Research Yorktown Heights, 5 May, 1981. \item The Intuitive Foundations of Programming Logic. New Mexico Tech., 22 September, 1980; Los Alamos Laboratories, 24 September, 1980. \item Implementation of an Interpreter for Abstract Equations. Iowa State University, 18 November, 1982; University of Maryland, 5 April, 1983; The Johns Hopkins University, 30 March, 1983; Cornell University, 3 August, 1983; New Mexico State University, 10 November, 1983; University of North Carolina, 19 March, 1984; AT\&T Bell Laboratories, Murray Hill, 28 August, 1984; University of Connecticut, 16 November, 1984. \item Equational Logic as a Programming Language. Tektronix, 4 February, 1985; University of Washington, 5 February, 1985; IBM Research, Yorktown Heights, 22 February, 1985; University of Delaware, 4 March, 1985; University of Wisconsin, 14 March, 1985; AT\&T Bell Laboratories, Murray Hill, 21 March, 1985; Carnegie-Mellon University, 23 September, 1985; University of Pennsylvania, 26 September, 1985; Xerox PARC, 18 March, 1986; DePaul University, 1986; Mathematisch Centrum, Amsterdam, 15 January, 1987, Technische Universit\"at, Berlin, 19 January, 1987; GMD Karlsruhe, Germany, 20 May, 1987; INRIA Sophia-Antipolis, France, 22 May, 1987. \item Lower Bounds for Sorting With Realistic Instruction Sets. University of Chicago, 7 February, 1985. \item Fault-Tolerant Logic for Automated Reasoning. SUNY Stony Brook, 20 February, 1985; University of Amsterdam, 16 January, 1987. \item Semantics for Infinite and Indeterminate Computations in Logic Programming Languages. \emph{Midwest Theory of Computation Meeting,} Purdue, 19 April, 1986. \item Intuitive Constructive Semantics for Constructive Logic. {\em Midwest Theory of Computation Meeting,} University of Illinois, 15 April, 1987. \item A Compiler for Equational Logic Programs. \emph{Midwest Society for Programming Languages and Systems,} University of Illinois, Spring, 1988. \item Open Problems in Equational Logic Programming. The Johns Hopkins University, 3 December, 1987; DePaul University, 29 January, 1988; SUNY Stony Brook, 26 February, 1988; University of Illinois at Chicago, 3 October, 1988; Indiana University at South Bend, December 6, 1989; University of Nevada at Las Vegas, 16 January, 1990; Universit\"at Dortmund, 12 November, 1990; Universit\"at Kaiserslautern, 14 November, 1990; Universit\"at Ulm, 15 november, 1990; OCATE, Portland OR, 26 March, 1991. \item Meaningful Semantics for Constructive Logic. University of Maryland, 2 May, 1990; Universit\"at W\"urzburg, 10 November, 1990. \item Connecting Formal Semantics to Constructive Intuitions. {\em Midwest Theory of Computation Meeting,} Northwestern University, 6 December, 1992; \emph{ASL Annual Meeting,} Notre Dame University, 12 March, 1993; Universit\'e Pau 26 March, 1993; Universit\'e Bordeaux, 22 March and 1 April, 1993; Cornell University 7 June, 1993; Wesleyan University, 20 September 1993. \item Applications of Logic to Programming Language Design and Implementation. The Johns Hopkins University, 17 December, 1992. \item Term Tours---I/O for Lazy Functional Programs (work of Samuel Rebelsky as my Ph.D.\ Student). Universit\"at Kaiserslautern, 18 February, 1993; Max Planck Institut, Saarbrucken, 18 February, 1993; Williams College, 24 September 1993, Grinnell College, 18 November 1993. \item Electronic Publication, Refereeing, and the Economy of Attention. University of Chicago, Physics Department, 7 October, 1993. \item Intuitive Counterexamples for Constructive Fallacies. SUNY Buffalo, 7 October 1994. \item Electronic Journals --- scholarly invariants in a changing medium. SUNY Buffalo, 7 October 1994; Dartmouth, 26 October 1994. \item Digital Sound Synthesis. Wesleyan University, 25 October 1994; Dartmouth, 26 October 1994; Carleton College, 30 January 1996. \item Program Execution as Logical Deduction. Macalester College, 31 January 1996. \item Leveled Garbage Collection. The University of Iowa, 13 April 1998. \item Why is P$\neq$NP so Hard to Prove? Chinese Academy of Science, Beijing, 11 September 2003. \item Prediction vs.\ Commitment in Garbage Collection. USTC Hefei, September 18 September 2003. \end{enumerate} \section{Consulting and Visiting} \begin{itemize} \item Prof.\ R.~Constable, Cornell University, type theory, 13--31 July 1981. \item Prof.\ D.~Stanat, University of North Carolina, equational logic programming, 19--20 March 1984. \item Drs.\ N.~Gehani and P.~Wolper, AT\&T Bell Laboratories, concurrent \emph{C}, programming logic, December 1984 to April 1985. \item Drs.\ J.~Williams, E.~Wimmers and J.~Backus, IBM Almaden Research Center, functional programming languages, 23--25 October 1990. \item Professeur Associ\'e at Universit\'e de Bordeaux 1, Unit\'e Formation et Recherche de Math\'ematique et d'Informatique, 16 March to 17 April 1993. \item Chicago Department of Aviation, Y2K date problem, December 1998 through December 1999. \item Internal Revenue Service, expert testimony on research tax credit, February 1999 through May 2000. \item Illinois Attorney General, FDC failures, 2000 continuing. \end{itemize} \section{M.S.\ Students} \nopagebreak \begin{enumerate} \item{The University of Chicago} \begin{enumerate} \item Susanne Lefvert (visiting from Lulea University of Technology), 2001--2002, user interface for \emph{Loris} sound synthesis/morphing/analysis. \end{enumerate} \end{enumerate} \section{Ph.D.\ Students} \nopagebreak \begin{enumerate} \item{Purdue University} \begin{enumerate} \item Paul Chew, 1979--1981, \emph{Normal Forms in Term Rewriting Systems}. \item Eric Dittert, 1980--1982, \emph{On the Complexity of Retrieving Information}. \end{enumerate} \item{The Johns Hopkins University}\begin{enumerate} \item Robert Strandh, 1983--1987, \emph{Compiling Equational Programs into Efficient Machine Code}. \end{enumerate} \item{The University of Chicago}\begin{enumerate} \item Samuel Rebelsky, 1987--1993, \emph{Tours, a System for Lazy Term-Based Communication}. \item David Sherman, 1987--1994, \emph{Run-Time and Compile-Time Improvements to Equational Programs}. \item Donald Ziff, 1989--1995, \emph{Lazy Functional Programming for Full-Text Information Retrieval}. \item Stephen Bailey, 1988--1995, \emph{Hielp, a Fast Interactive Lazy Functional Language System}. \item Guanshan Tong, 1993--1997, \emph{Design and Evaluation of a High-Performance Automatic Memory Management System}. \item Ilya Bisnovatyi, 1993--present, sound synthesis. \end{enumerate} \end{enumerate} \section{Postdoctoral Associates} \begin{enumerate} \item William Winsborough, 1988--90. \nopagebreak \item Yiyun Chen, 1989--91. \end{enumerate} \pagebreak \section{Courses Taught} \nopagebreak \subsection*{Summary} \subsubsection*{Undergraduate} \begin{itemize} \item Numerical Analysis \item Introductory Programming in \emph{Pascal}, \emph{Fortran}, \emph{Scheme} \item Data Structures \item Theory of Computation \item Algorithm Design and Analysis \item Programming Languages \item Digital Sound Modeling \item Operating Systems \item Advanced Operating Systems \item Computation, Information and Description (concerning applications of computational ideas to philosophy, mathematics, physics, biology, etc.) \item Computer Architecture \item Free Software Practicum \end{itemize} \subsubsection*{Graduate} \begin{itemize} \item Program Verification \item Constructive Logic \item Digital Sound \item Theory of Computation \item Algorithm Design and Analysis \item File Structures \item Computational Complexity \item Logic Programming \item Lambda Calculus \item Operating Systems \item Advanced Operating Systems \item Computer System Administration \item Computer Architecture \item Mathematical Transforms for Signal Processing \end{itemize} \subsection*{Chronology {\normalsize\rm (G-graduate, U-undergraduate)}} \begin{tabular}{lll} \multicolumn{3}{c}{{\large\bf Cornell University}} \\ Spring & 1976 & CS 790 Seminar in Program Verification (G) \\ \multicolumn{3}{c}{{\large\bf University of Toronto}} \\ Spring & 1977 & CSC 336S Numerical Analysis (U) \\ \multicolumn{3}{c}{{\large\bf Purdue University}} \\ Autumn & 1977 & CS 220N Programming I (U) \\ & & CS 484 Theory of Computation (U) \\ & & CS 590V Seminar in Programming Logic (G) \\ Spring & 1978 & CS 484 Theory of Computation (U) \\ & & CS 482 Algorithm Design and Analysis (U) \\ Autumn & 1978 & CS 230 Programming I (U) \\ & & CS 484 Theory of Computation (U) \\ Spring & 1979 & CS 330 Programming II (U) \\ & & CS 582 Survey of Algorithms, Automata, and Formal Languages (G) \\ Autumn & 1979 & CS 430 Data Structures (U) \\ & & CS 582 Survey of Algorithms, Automata, and Formal Languages (G) \\ Spring & 1980 & CS 580 Algorithm Design and Implementation (G) \\ & & CS 590B Seminar in Programming Logic and Verification (G) \\ Autumn & 1980 & CS 320 Programming II for Engineers and Scientists (U) \\ & & CS 582 Survey of Algorithms, Automata, and Formal Languages (G) \\ Spring & 1981 & CS 540 File Structures (G) \\ & & CS 584 Theory of Algorithms and Computational Complexity (G) \\ Autumn & 1981 & CS 540 File Structures (G) \\ Spring & 1982 & CS 580 Algorithm Design and Implementation (G) \\ Autumn & 1982 & CS 414 Numerical Methods (U) \\ & & CS 484 Introduction to the Theory of Computation (U) \\ Spring & 1983 & CS 584 Theory of Algorithms and Computational Complexity (G) \\ \multicolumn{3}{c}{{\large\bf The Johns Hopkins University}} \\ Autumn & 1983 & 52.329 Logic Programming (G) \\ Spring & 1984 & 52.324 The Lambda Calculus and Its Relationship \\ & & With Computable Functions (G) \\ Autumn & 1984 & 52.8 Introduction to Computer Programming (U) \\ Spring & 1985 & 52.8 Introduction to Computer Programming (U) \end{tabular} \begin{tabular}{lll} \multicolumn{3}{c}{{\large\bf The University of Chicago}} \\ Winter & 1986 & Constructive Logic Seminar (G) \\ Winter--Spring & 1986 & ComSci 388 Logic Programming Languages I--II (G) \\ Winter--Spring & 1987 & ComSci 488 The Lambda Calculus (G) \\ Winter--Spring & 1988 & ComSci 388 Logic Programming Languages I--II (G) \\ Autumn & 1988 & ComSci 280 Theory of Computation I (U) \\ Winter & 1989 & ComSci 221 Programming Languages (U) \\ Winter & 1990 & ComSci 221 Programming Languages (U) \\ Spring & 1990 & ComSci 388 Equational Logic Programming (G) \\ Autumn & 1990 & ComSci 280 Theory of Computation I (U) \\ Winter & 1991 & ComSci 221 Programming Languages (U) \\ Autumn & 1991 & ComSci 319 The Lambda Calculus (G) \\ Winter & 1992 & ComSci 221 Programming Languages (U) \\ Spring & 1992 & ComSci 281 Theory of Computation II (U) \\ Autumn & 1992 & ComSci 388 Logic Programming Languages (G) \\ Winter & 1993 & ComSci 221 Programming Languages (U) \\ Autumn & 1993 & ComSci 398 Seminar on Sound Modeling (G) \\ Winter & 1994 & ComSci 221 Programming Languages (U) \\ Winter & 1994 & ComSci 398 Seminar on Sound Modeling (G) \\ Spring & 1994 & ComSci 295 Digital Sound Modeling (U) \\ Winter & 1995 & ComSci 221 Programming Languages (U) \\ Spring & 1995 & ComSci 295 Digital Sound Modeling (U) \\ Autumn & 1995 & ComSci 230/330 Operating Systems (U/G) \\ Winter & 1996 & ComSci 231/331 Advanced Operating Systems (U/G) \\ Spring & 1996 & ComSci 295 Digital Sound Modeling (U) \\ \end{tabular} \begin{tabular}{lll} \multicolumn{3}{c}{{\large\bf The University of Iowa}} \\ Spring & 1997 & 22C:096 Computation Information \& Description (U) \\ Spring & 1997 & 22C:196 Digital Sound Modeling (U) \end{tabular} \begin{tabular}{lll} \multicolumn{3}{c}{{\large\bf The University of Chicago}} \\ Autumn & 1997 & ComSci 501 System Administration in Linux (G) \\ Winter & 1998 & ComSci 222/322 Machine Organization (U/G) \\ Spring & 1998 & ComSci 230/330 Operating Systems (U/G) \\ Autumn & 1998 & ComSci 105 Fundamentals of Computer Programming (U) \\ Winter & 1999 & ComSci 222/322 Computer Architecture (U/G) \\ Spring & 1999 & ComSci 295 Digital Sound Modeling (U) \\ Autumn & 1999 & ComSci 221/321 Programming Languages (U/G) \\ Winter & 2000 & ComSci 319 The Lambda Calculus (G) \\ Spring & 2000 & ComSci 295 Digital Sound Modeling (U) \\ Autumn & 2000 & ComSci 221 Programming Languages (U) \\ Winter & 2001 & ComSci 392 Realizability Semantics (G) \\ Spring & 2001 & ComSci 295 Digital Sound Modeling (U) \\ Autumn & 2001 & ComSci 22100 Programming Languages (U) \\ Spring & 2002 & ComSci 31900 Lambda Calculus (G) \\ Spring & 2002 & ComSci 29500 Digital Sound Modeling (U)\\ Autumn & 2002 & ComSci 12500 Honors Introduction to Computer Programming (U)\\ Autumn & 2002 & ComSci 22800 Free Software Practicum (U)\\ Spring & 2003 & ComSci 22800 Free Software Practicum (U)\\ Spring & 2003 & ComSci 29500 Digital Sound Modeling (U)\\ Autumn & 2003 & CMSC 16100 Honors Introduction to Computer Programming (U)\\ Spring & 2004 & CMSC 29500 Digital Sound Modeling (U)\\ Winter & 2005 & CMSC 34910 Mathematical Transforms for Signal Processing (G)\\ Spring & 2005 & CMSC 29500 Digital Sound Modeling (U)\\ Spring & 2005 & ComSci 31900 Lambda Calculus (G) \end{tabular} \end{document}