PhD 1995, MIT, Electrical Engineering and Computer
Science.
SM 1989, MIT, Electrical Engineering and Computer Science.
BS 1984, Duke University, Computer Science.
Professional Experience
Visiting Assistant Professor,Wellesley College Department of
Computer Science, July 2004–present. Leave replacement.
Teaching the web development
course for non-majors (including HTML, CSS, JavaScript), the introductory programming
course for computer science majors (problem solving and
proprogramming in Java), the programming languages
course, and a special topics seminar on Systems Programming
(including programming in C, file systems, processes, multi-tasking,
virtual memory). Responsibilities include: filling in for faculty on
leave; creation of a new course on Systems Programming (making a
syllabus, writing course notes, lecturing, development of assignments
and lab practicums, etc.); preparation and presentation of course
material on Java programming, HTML, CSS, and JavaScript programming,
graphics editing and manipulation; supervising student projects (e.g,
an independent study on Linux device drivers and an honors thesis on
cooperative system administration); supervising senior seminars;
advising first year students and CS majors. Also, extensive work as
co-author of Design Concepts in Programming Languages by
Franklyn Turbak and David K. Gifford with Mark A. Sheldon, including
coauthoring chapters on abstract types and modules as well as
contributing substantial new and revised text.
Instructor of Science Laboratory,Wellesley College
Department of Computer Science, Feb 2004–July 2004.
Teaching laboratory sections for the
introductory programming
course for computer science majors (problem solving and
programming in Java) and for
the web development course
for non-majors. Responsibilities include: preparation and
presentation of laboratories on Java Programming, HTML and JavaScript
programming, graphics editing and manipulation.
Concurrent with work with Church Project (see below).
Research Associate, The Church Project in the Boston University Department of Computer
Science, September 2003–September 2004. Working on type
systems to support compositional analysis of separately compiled
program modules and writing grant proposals to support future work in
this area. Other responsibilities included organizing the Church
Project weekly seminars.
Contributing Technical Editor,Computational Genomics (formerly
Programming Systems) Research Group in the MIT Laboratory for Computer
Science, September 2002–September 2003. (Overlapped with
MindLabs position below). Editor for publication of a programming
languages textbook Design Concepts in Programming Languages by
Franklyn Turbak and David K. Gifford. The text is based on experience
with the MIT graduate
programming languages subject. Responsibilities included:
participating in significant editorial decisions about content and
organization, co-authoring a chapter on abstract data types, rewriting
the compilation chapter, authoring new sections (e.g., on data
structures, referential transparency, and polymorphism), incorporating
comments from recent instructors of the course, and finding and fixing
bugs (technical and typesetting).
Later became co-author (see above); technical editing responsibilities
assumed by Julie Sussman.
Teacher, MindLabs,
Inc., July 2002–May 2003. Part time. Teacher of a course
entitled Build Your own Robot, which teaches children ages
8–15 about elementary electrical engineering via a project that
culminates in the construction of a robot from a kit. The course
covers basic electrical concepts (atoms, electrons, charges, current
flow), elementary electric circuits (swiches, resistors, capacitors,
diodes, batteries), static electricity (definitions, history, and the
construction of a Leyden jar), and finally the construction of the
robot. The class emphasizes understanding how the robot works and
explores the design choices made as well as alternatives.
Associate director of research and development,Warp Solutions,
2000–01. Principle architect of an integrated suite of
products for improving internet site performance. Architecture
included distributed IP traffic management, caching, and content
management software. Unique features of the architecture: all
software solution, no single point of failure or bottleneck
(completely distributed) in IP load management, distributed cache
table and dynamically expandable cache architecture, caching of
dynamic and static data, atomic updates of site content (both
applications and static web pages). Also a liason between
technical team and sales/marketing efforts. On the board of advisors
through 2003.
Math teacher,New
Jewish High School (now Gann Academy), 2000–01. Part time,
concurrently with work at Warp Solutions. Taught Algebra II to high
school students.
Research scientist,Lotus
Development Corp., 1996–1999. Supervised construction of a
network spider for Lotus Notes; collected and analyzed the resulting
statistics as a case study to determine parameters for enterprise-wide
knowledge management solutions using automatic document
categorization. Responsible for evaluating automatic document
classification systems for large collections including choosing
participants in a bakeoff and evaluating the results. Co-designed and
carried out a user study of automatic email classification system.
Designed a system for constructing summaries of on-line chats and
built a Web-based browsing interface to use in the evaluation of
various strategies for clustering and summarizing
messages. Responsible for authoring a strategy for supporting Linux
client platforms in Lotus products. Invented a technique for using
multimedia interfaces to browse automatically clustered documents.
Used actual clustering results (using tools from the Notes crawler and
chat summarizer above) to build a demo of an audio browsing interface.
Postdoctoral research fellow,Programming Systems Research
Group in the MIT Laboratory for
Computer Science, 1996. Managed grant compliance, continued work
on Content Routing Systems (distributed indexing, searching, query
refinement), and supervised the work of two graduate and two
undergraduate students. Presently maintain a research affiliate
position with the Programming Systems Research Group.
Research assistant, Programming Systems Research
Group in the MIT Laboratory for
Computer Science, when not teaching 1986–1995. Projects
included: Content Routing Systems (design and implementation, see
above, 1992–1995), Semantic File Systems (design and
implementation of self-indexed file systems with virtual directories
for search results, 1989–1992), Programming Language Type
Systems (design and implementation of a first class module system,
1986ndash;1989).
Teaching assistant, MIT
Department of Electrical Engineering and Computer Science, 7 semesters
during 1984–1991. Graduate Programming Languages (4 terms), Artificial
Intelligence (1 term), Computer Architecture (2 terms). Helped develop
programming languages curriculum, taught recitation sections, created exams
and homework assignments, graded.
Tutor,MIT Office of Minority
Education, during the school years Fall 1985–Spring 1988. Tutored undergraduate students
in a range of courses, including the introductory CS subject, the undergraduate
computer architecture course, artificial intelligence, and the graduate
programming languages course.
Instructor and consultant,MIT
Office of Minority Education, Summers of 1985–1987. Worked with Project Interphase, a
program that allows incoming MIT first year African American, Hispanic/Latino,
and Native American students to start taking courses for credit before
the start of the fall term. I was a Computer Science instructor and resident
counselor in 1985. The course was an introductory programming/problem
solving course that used C. When the computer science course was phased
out, I continued with the program teaching and coordinating courses to
help students learn to use the campus computing facilities (1985 and 1986).
Publications
Mark A. Sheldon and Franklyn Turbak. An Aspect-Oriented
Approach to the Undergraduate Programming Language Curriculum.
To appear in SIGPLAN Workshop on Undergraduate Programming
Language Curriculum. May 2008.
Franklyn Turbak, David K. Gifford, with Mark A. Sheldon. Design
Concepts in Programming Languages, to be published by MIT Press,
2008.
Mark A. Sheldon, Andrzej Duda, Ron Weiss, and David K. Gifford. Discover:
A Resource Discovery System based on Content Routing.Proceedings of the Third International World Wide Web
Conference. April 1995. Available as Computer Networks and
ISDN Systems, 27(1995), Elsevier, North Holland,
pp. 953–972.
Andrzej Duda and Mark A. Sheldon. Content
Routing in Networks of WAIS Servers.Proceedings of the
Fourteenth IEEE International Conference on Distributed Computing
Systems. Poznan, Poland. June 1994.
Mark A. Sheldon, Andrzej Duda, Ron Weiss, James W. O'Toole, Jr.,
and David K. Gifford. Content
Routing for Distributed Information Servers.Proceedings of the
Fourth International Conference on Extending Database Technology.
Cambridge, England. March 1994. Available as Springer-Verlag, Lecture
Notes in Computer Science, Number 779. Pages 109–122.
David K. Gifford, Pierre Jouvelot, Mark A. Sheldon, and James
W. O'Toole. Report
on the FX-91 Programming Language. MIT Laboratory for Computer
Science Technical Report MIT/LCS/TR-531. February 1992.
David K. Gifford, Pierre Jouvelot, Mark A. Sheldon, and James
W. O'Toole, Jr. Semantic
File SystemsProceedings of the Thirteenth ACM Symposium on
Operating Systems Principles. October 1991. Available as
Operating Systems Review, Vol. 25, No. 5, Pages
16–25.
David K. Gifford, Pierre Jouvelot, John M. Lucassen, and Mark
A. Sheldon, FX-87 Reference Manual, MIT Laboratory for Computer
Science, MIT/LCS/TR-407, September 1987.
Talks
Explicit Polymorphism. Massachusetts Institute of
Technology, 4 November 2003. Invited guest lecture as part of
the graduate course in Programming Languages
(6.821).
A Module System with Static Dependent
Types. With Franklyn Turbak. Boston University Department of
Computer Science, 25 September 2003. Presented as a continuation of
the talk below at the Church
Project Seminars.
A Pedagogy of Abstract Types. With Franklyn Turbak. Boston
University Department of Computer Science, 25 September 2003.
Presented as part of the Church Project Seminars.
Lift Procedures for Higher Performance. Wellesley College,
Computer Science Department (Wellesley, MA), 13 December 2002.
Intelligent Technology for Internet Performance, a talk for
CEOs and CTOs explaining limitations of current internet server-side
technology and the Warp approach to building scalable, reliable
solutions. Presented at the 2000 CMP Breakaway
Xchange in San Diego, CA. September 2000.
Evaluating Mailcat, results from a user study of a system
that uses automatic categorization of email messages to help users
maintain email folders. Lotus Development. 22 December 1998.
Single threading: Denotational Semantics of Stores. MIT.
Invited lecture for the Graduate course on programming languages.
Fall 1996.
Content Routing for Distributed Information
Servers, Version 3. MIT Laboratory for Computer Science, Lotus
Development, IBM T. J. Watson Research Center, SunLabs East
(Chelmsford, MA), Transarc Corporation (Pittsburgh, PA), CNRI (Reston,
VA), Spring/Summer of 1996.
Content Routing for Distributed Information Servers,
Version 2. Department of Defense Advanced Research Projects Agency
Open House, MIT Laboratory for Computer Science, 21 October 1994.
Content Routing Systems. Presentation and panelist for
panel session Charting the Web: Pro-active Information Gathering
Techniques. Third International Conference on Parallel and
Distributed Information Systems. Auston, Texas. 30 September
1994.
Content Routing for Distributed Information Servers. Ecole
des Mines, Paris, France, 7 April 1994. Olivetti Research, Cambridge,
England, 28 March 1994. Fourth International Conference on Extending
Database Technology in Cambridge, England. 28 March 1994.
Static Dependent Types for First Class Modules. ACM
Conference on Lisp and Functional Programming, Nice, France, 26 June
1990. Ecole des Mines, Paris, France, 25 June 1990. MIT Laboratory for
Computer Science, 17 April 1990.
Evaluating a Content Routing System. Programming Systems
Research Group, MIT Laboratory for Computer Science. 1 November
1994.
Semantic Library Systems, protocol and content label design
issues. Programming Systems Research Group, MIT Laboratory for
Computer Science. 9 March 1992.
Intelligent Library Systems. Programming Systems Research
Group, MIT Laboratory for Computer Science, 18 April 1991.
Programming in the Large with Persistent, First Class
Modules. Programming Systems Research Group, MIT Laboratory for
Computer Science, 28 September 1989.
System and Method for Distributing Content in a Distributed and
Scalable Network Infrastructure With Leonard Primak, Kailai Chen,
Karl B. Douglas, John Gnip. Pending.
Theses Supervised
Rebecca Shapiro. Cooperative and Democratic System
Administration. Bachelor's honors thesis. Wellesley College. In
preparation for Spring 2007.
Academic Awards
Elected Sigma Xi, MIT, 1993. Graduated Summa
Cum Laude from Duke University, 1984. Elected Phi Beta Kappa, Duke
University, 1983. Deans List and Class Honors at Duke University every
term 1980–1984. Phi Eta Sigma (Freshman Honor Society), Duke
University, 1981.
Other interests
Private Pilot. Competitive ballroom dancing (Professional instructor and
coach, US amateur finalist, US and North American Senior Champion, Open
British senior finalist, US representative to Amateur and Senior World
Championships and to the World Games, dance coach at MIT and Boston
University). Cooking.