James Aspnes

October 1st, 2021

Work address James Aspnes Yale University Department of Computer Science 39 Willow Road Guilford, CT USA

Email: [email protected] URL: https://www.cs.yale.edu/homes/aspnes/ Phone: +1 203 533 9862

Home address 39 Willow Rd Guilford, CT 06437-1723

Degrees • PhD (CS) 1992, Carnegie-Mellon University. Thesis title: Wait-Free Consensus. Advisor: Steven Rudich.

• SM (EECS) 1987, Massachusetts Institute of Technology.

• SB (Mathematics) 1987, Massachusetts Institute of Technology.

Experience • Yale University. Assistant Professor of Computer Science, 1993–1998; Associate Professor of Computer Science (term), 1998–2001; Associate Professor of Computer Science (tenured), 2001–2005; Professor of Com- puter Science, 2005–.

• IBM Almaden Research Center. Visiting Scientist, 1992–1993.

1 Honors • ACM-EATCS in , 2020. • The Dylan Hixon ’88 Prize for Teaching Excellence in the Natural Sci- ences. Awarded by Yale College, 2000. • IBM Graduate Fellowship, 1991–1992. • NSF Graduate Fellowship, 1987–1990. • Phi Beta Kappa, 1987.

Grants • NSF award CCF-1650596, EAGER: Concurrent Data Structures, 2016–2020. (PI, $265,044.) • NSF award CCF-1637385, AitF: The Fuzzy Log: A Unifying Abstrac- tion for the Theory and Practice of Distributed Systems, 2016–2019. (Co-PI, $600,000.) • NSF award CCF-0916389, AF: Small: Algorithms for Active Learning of Interaction Networks, 2009–2013. (Co-PI, $500,000.) • NSF award CNS-0435201, NeTS-NR: Design and Evaluation of Multi- homed Networks, 2004–2008. (Co-PI, $349,987.) • NSF award CNS-0305258, Distributed Tree Infrastructure for Peer-to- Peer Systems, 2003–2006. (PI, $300,000.) • NSF award CCR-0098078, Fault-Tolerant Distributed Resource Loca- tion, 2001–2004. (PI, $200,940.) • NSF award CCR-9820888, Asynchronous Epidemic Algorithms, 1999–2002. (PI, $131,264.) • NSF award CCR-9415410, Parallel Fault Diagnosis, 1995–1997. (Co- PI, $122,318.) • NSF award CCR-9410228, RIA: The Competitive Analysis of Dis- tributed Algorithms, 1994–1998. (PI, $78,568.)

2 Publications

Refereed journal publications 1. Fast randomized consensus using shared memory, with . Journal of Algorithms 11(3):441–461, September 1990.

2. Time- and space-efficient randomized consensus. Journal of Algorithms 14(3):414–431, May 1993.

3. Counting networks, with Maurice Herlihy and Nir Shavit. Journal of the Association for Computing Machinery 41(5):1020–1048, September 1994.

4. The expressive power of voting polynomials, with Richard Beigel, Mer- rick Furst, and Steven Rudich. Combinatorica 14(2):1–14, 1994.

5. Randomized consensus in expected O(n log2 n) operations per proces- sor, with Orli Waarts. SIAM Journal on Computing 25(5):1024–1044, October 1996.

6. On-line routing of virtual circuits with applications to load balancing and machine scheduling, with Yossi Azar, Amos Fiat, Serge Plotkin, and Orli Waarts. Journal of the Association for Computing Machinery 44(3):486–504, May 1997.

7. Spreading rumors rapidly despite an adversary, with William Hurwood. Journal of Algorithms 26(2):386–411, February 1998.

8. Lower bounds for distributed coin-flipping and randomized consensus. Journal of the Association for Computing Machinery 45(3):415–450, May 1998.

9. Fairness in scheduling, with Miklos Ajtai, Moni Naor, Yuval Rabani, Leonard J. Schulman, and Orli Waarts. Journal of Algorithms 29(2):306–357, November, 1998. (SODA 1995 special issue.)

10. Fast deterministic consensus in a noisy environment. Journal of Algo- rithms, 45(1):16–39, October 2002.

3 11. A combinatorial toolbox for protein sequence design and landscape analysis in the Grand Canonical model, with Julia Hartling, Ming- Yang Kao, Junhyong Kim, and Gauri Shah. Journal of Computational Biology, 9(5):721–741, October 2002.

12. Randomized protocols for asynchronous consensus. Distributed Com- puting, 16(2–3):165–175, September 2003.

13. Compositional competitiveness for distributed algorithms, with Orli Waarts. Journal of Algorithms, 54(2):127–151, February 2005.

14. Relationships between broadcast and shared memory in reliable anony- mous distributed systems, with Faith Ellen Fich and Eric Ruppert. Dis- tributed Computing, 18(3):209–219, February 2006. (DISC 2004 special issue.)

15. Computation in networks of passively mobile finite-state sensors, with Dana Angluin, Zöe Diamadi, Michael J. Fischer, and René Peralta. Distributed Computing, 18(4):235–253, March 2006. (PODC 2004 spe- cial issue. Awarded the 2020 ACM-EATCS Dijkstra Prize in Dis- tributed Computing.)

16. Inoculation strategies for victims of viruses and the sum-of-squares par- tition problem, with Kevin Chang and Aleksandr Yampolskiy. Journal of Computer and System Sciences, 72(6):1077–1093, September 2006.

17. A theory of network localization, with T. Eren, D. K. Goldenberg, A. S. Morse, W. Whiteley, Y. R. Yang, B. D. O. Anderson, and P. N. Bel- humeur. IEEE Transactions on Mobile Computing, 5(12):1663–1678, December 2006.

18. The computational power of population protocols, with Dana Angluin, David Eisenstat, and Eric Ruppert. Distributed Computing 20(4):279–304, November 2007. (PODC 2006 special issue.)

19. Skip graphs, with Gauri Shah. ACM Transactions on Algorithms, 3(4):37, November 2007.

20. Towards a theory of data entanglement, with Joan Feigenbaum, Alek- sandr Yampolskiy, and Sheng Zhong. Theoretical Computer Science, 389(1–2):26–43, December 2007.

4 21. Learning large-alphabet and analog circuits with value injection queries, with Dana Angluin, Jiang Chen, and Lev Reyzin. Machine Learning 72(1–2):113–138, August 2008. (COLT 2007 special issue.)

22. A simple population protocol for fast robust approximate majority, with Dana Angluin and David Eisenstat. Distributed Computing 21(2):87–102, July 2008. (DISC 2007 special issue.)

23. Fast computation by population protocols with a leader, with Dana Angluin and David Eisenstat. Distributed Computing 21(3):183–199, September 2008.

24. Self-stabilizing population protocols, with Dana Angluin, Michael J. Fischer, and Hong Jiang. ACM Transactions on Autonomous and Adaptive Systems, 3(4):13, November 2008. (Special issue on stabi- lization, safety, and security of distributed systems.)

25. Learning a circuit by injecting values, with Dana Angluin, Jiang Chen, and Yinghua Wu. Journal of Computer and System Sciences 75(1):60–77, January 2009. (Special Issue: Learning Theory 2006).

26. The expansion and mixing time of skip graphs with applications, with Udi Wieder. Distributed Computing, 21(6):385–393, March 2009.

27. Learning acyclic probabilistic circuits using test paths, with Dana An- gluin, Jiang Chen, David Eisenstat, and Lev Reyzin. Journal of Ma- chine Learning Research, 10(Aug):1881–1911, 2009.

28. Combining shared coin algorithms, with Hagit Attiya and Keren Cen- sor. Journal of Parallel and Distributed Computing, 70(3):317–322, March 2010.

29. Approximate shared-memory counting despite a strong adversary, with Keren Censor. ACM Transactions on Algorithms 6(2):1–23, March 2010. (SODA 2009 special issue.)

30. Optimally learning social networks with activations and suppressions, with Dana Angluin and Lev Reyzin. Theoretical Computer Science 411(29–30):2729–2740, June 2010. (ALT 2008 special issue.)

5 31. Polylogarithmic concurrent data structures from monotone circuits, with Hagit Attiya and Keren Censor-Hillel. Journal of the Associa- tion for Computing Machinery, 59(1):2:1–2:24, February 2012.

32. Randomized load balancing by joining and splitting bins, with Yitong Yin. Information Processing Letters, 112(8–9):309–313, April 2012.

33. A modular approach to shared-memory consensus, with applications to the probabilistic-write model. Distributed Computing 25(2):179–188, May 2012. (PODC 2010 special issue.)

34. Low-contention data structures, with David Eisenstat and Yitong Yin. Journal of Parallel and Distributed Computing 72(5):705–715, May 2012.

35. On the learnability of shuffle ideals, with Dana Angluin, Sarah Eisen- stat, and Aryeh Kontorovich. Journal of Machine Learning Research, 14(Jun):1513–1531, June 2013.

36. Mutation systems, with Dana Angluin and Raonne Barbosa Vargas. In- ternational Journal of Computer Mathematics, 90(6):1132–1149, June 2013. (LATA 2011 special issue).

37. Effective storage capacity of labeled graphs, with Dana Angluin, Rida A. Bazzi, Jiang Chen, David Eisenstat, and Goran Konjevod. Infor- mation and Computation 234:44–56, February 2014. (SSS 2010 special issue).

38. Tight bounds for asynchronous renaming, with Dan Alistarh, Keren Censor-Hillel, Seth Gilbert, and Rachid Guerraoui. Journal of the As- sociation for Computing Machinery 61(3):18, May 2014.

39. Tight bounds for adopt-commit objects, with Faith Ellen. Theory of Computing Systems 55(3):451–474, October 2014. (SPAA 2011 special issue).

40. Network construction with subgraph connectivity constraints, with Dana Angluin and Lev Reyzin. Journal of Combinatorial Optimization 29(2):418–432, February 2015.

6 41. Faster randomized consensus with an oblivious adversary. Distributed Computing 28(1):21–29, February 2015. (PODC 2012 special issue).

42. Limited-use atomic snapshots with polylogarithmic step complexity, with Hagit Attiya, Keren Censor-Hillel, and Faith Ellen. Journal of the Association for Computing Machinery 62(1):3, February 2015. An erratum appears in Journal of the Association for Computing Machin- ery 65(6):38, November 2018.

43. Spreading alerts quietly and the subgroup escape problem, with Zoë Diamadi, Kristian Gjøsteen, René Peralta, and Aleksandr Yampolskiy. Journal of Cryptology 28(4):796–819, October 2015.

44. Lower bounds for restricted-use objects, with Hagit Attiya, Keren Censor- Hillel, and Danny Hendler. SIAM Journal on Computing 45(3):734–862, 2016.

45. Concurrent use of write-once memory, with Keren Censor-Hillel and Ei- tan Yaakobi. Journal of Parallel and Distributed Computing 113(250–260), March 2018.

46. Communication-efficient randomized consensus. With Dan Alistarh, Valerie King, and Jared Saia. Distributed Computing 31(6):489–401, November 2018.

47. Optimizing in the Dark: Learning an Optimal Solution Through a Simple Request Interface, with Qiao Xiang, Haitao Yu, Franck Le, Linghe Kong, and Yang Richard Yang. IEEE/ACM Transactions on Networking, 29(2):571–584, April 2021.

48. Clocked population protocols. Journal of Computing and System Sci- ences 121:34–48, 2021. (Special issue on Algorithmic Theory of Dy- namic networks and its Applications.) Submitted:

49. Why extension-based proofs fail, with Dan Alistarh, Faith Ellen, Rati Gelashvili, and Leqi Zhu. Submitted to SIAM Journal on Computing. Last revised July 2021.

7 Book chapters 1. Competitive analysis of distributed algorithms. In Amos Fiat, Gerhard Woeginger, eds., Online Algorithms: The State of the Art, Lecture Notes in Computer Science 1442, Springer-Verlag, 1998, pp. 118–146.

2. Opportunity-cost algorithms for combinatorial auctions, with Karhan Akcoglu, Bhaskar DasGupta, and Ming-Yang Kao. In Erricos John Kontoghiorghes, Berç Rustem, and Stavros Siokos, eds., Applied Opti- mization 74: Computational Methods in Decision-Making, Economics and Finance, Kluwer Academic Publishers, 2002, pp. 455–479.

3. Distributed data structures for P2P systems, with Gauri Shah. In Theoretical and Algorithmic Aspects of Sensor, Ad Hoc Wireless and Peer-to-Peer Networks, Jie Wu, ed., CRC Press, 2005, pp. 685–700.

4. An introduction to population protocols, with Eric Ruppert. In Middle- ware for Network Eccentric and Mobile Applications, Benoît Garbinato, Hugo Miranda, and Luís Rodrigues, eds., Springer-Verlag, 2009, pp. 97–120.

Invited papers 1. Competitive analysis of distributed algorithms. Invited survey pa- per, Dagstuhl-Seminar on On-line Algorithms, Schloss Dagstuhl, June 23–28, 1996.

2. Randomized protocols for asynchronous consensus. Invited survey pa- per, Distributed Computing PODC 20th anniversary issue, 16(2–3):165–175, September 2003.

Refereed conference publications 1. A theory of timestamp-based concurrency control for nested transac- tions, with Alan Fekete, Nancy Lynch, and William Weihl. Four- teenth International Conference on Very Large Databases, August 1988, pp. 431–444.

2. Time- and space-efficient randomized consensus. Ninth ACM SIGACT- SIGOPS Symposium on Principles of Distributed Computing, August 1990, pp. 325–331.

8 3. Wait-free synchronization in the asynchronous PRAM model, with Maurice Herlihy. Second Annual ACM Symposium on Parallel Algo- rithms and Architectures, July 1990, pp. 340–349.

4. Counting networks and multiprocessor coordination, with Maurice Her- lihy and Nir Shavit. Twenty-Third Annual ACM Symposium on Theory of Computing, May 1991, pp. 348–358.

5. The expressive power of voting polynomials, with Richard Beigel, Mer- rick Furst, and Steven Rudich. Twenty-Third Annual ACM Symposium on Theory of Computing, May 1991, pp. 402–409.

6. Randomized consensus in expected O(n log2 n) operations per proces- sor, with Orli Waarts. Thirty-Third IEEE Symposium on Foundations of Computer Science, October 1992, pp. 137–146.

7. On-line load balancing with applications to machine scheduling and virtual circuit routing, with Yossi Azar, Amos Fiat, Serge Plotkin, and Orli Waarts. Twenty-Fifth Annual ACM Symposium on Theory of Computing, May 1993, pp. 623–631.

8. A theory of competitive analysis for distributed algorithms, with Miklos Ajtai, Cynthia Dwork, and Orli Waarts. Thirty-Fifth IEEE Symposium on Foundations of Computer Science, November 1994, pp. 401–411.

9. Fairness in scheduling, with Miklos Ajtai, Moni Naor, Yuval Rabani, Leonard J. Schulman, and Orli Waarts. Sixth Annual ACM-SIAM Sym- posium on Discrete Algorithms, January 1995, pp. 477–485.

10. Modular competitiveness for distributed algorithms, with Orli Waarts. Twenty-Eighth Annual ACM Symposium on Theory of Computing, May 1996, pp. 237–246.

11. Spreading rumors rapidly despite an adversary, with William Hurwood. Fifteenth Annual ACM Symposium on Principles of Distributed Com- puting, May 1996, pp. 143–151.

12. Lower bounds for distributed coin-flipping and randomized consensus. Twenty-Ninth Annual ACM Symposium on Theory of Computing, May 1997, pp. 559–568.

9 13. Fast deterministic consensus in a noisy environment. Nineteenth An- nual ACM Symposium on Principles of Distributed Computing, July 2000, pp. 299–309. 14. Towards understanding the predictability of stock markets from the perspective of computational complexity, with David F. Fischer, Michael J. Fischer, Ming-Yang Kao, and Alok Kumar. Twelfth Annual ACM- SIAM Symposium on Discrete Algorithms, January 2001, pp. 745–754. 15. A combinatorial toolbox for protein sequence design and landscape analysis in the Grand Canonical model, with Julia Hartling, Ming- Yang Kao, Junhyong Kim, and Gauri Shah. Twelfth Annual Interna- tional Symposium on Algorithms and Computation, Lecture Notes in Computer Science 2223, Springer-Verlag, December 2001, pp. 403–415. 16. Wait-free consensus with infinite arrivals, with Gauri Shah and Jatin Shah. Thirty-Fourth Annual ACM Symposium on Theory of Comput- ing, May 2002, pp. 524–533. 17. Fault-tolerant routing in peer-to-peer systems, with Zoë Diamadi and Gauri Shah. Twenty-First Annual ACM SIGACT-SIGOPS Symposium on Principles of Distributed Computing, July 2002, pp. 223–232. 18. Skip graphs, with Gauri Shah. Fourteenth Annual ACM-SIAM Sym- posium on Discrete Algorithms, January 2003, pp. 384–393. 19. On the computational complexity of sensor network localization, with David Goldenberg and Yang Richard Yang. Algorithmic Aspects of Wireless Sensor Networks: First International Workshop, ALGOSEN- SORS 2004, Turku, Finland, July 16, 2004. Proceedings. Lecture Notes in Computer Science 3121, Springer-Verlag, July 2004, pp. 32–44. 20. Load balancing and locality in range-queriable data structures, with Jonathan Kirsch and Arvind Krishnamurthy. Twenty-Third Annual ACM SIGACT-SIGOPS Symposium on Principles of Distributed Com- puting, July 2004, pp. 115–124. 21. Computation in networks of passively mobile finite-state sensors, with Dana Angluin, Zöe Diamadi, Michael J. Fischer, and René Peralta. Twenty-Third Annual ACM SIGACT-SIGOPS Symposium on Princi- ples of Distributed Computing, July 2004, pp. 290–299.

10 22. Towards a theory of data entanglement, with Joan Feigenbaum, Alek- sandr Yampolskiy, and Sheng Zhong. Ninth European Symposium on Research in Computer Security, Lecture Notes in Computer Science 3192, Springer-Verlag, September 2004, pp. 177–192.

23. Relationships between broadcast and shared memory in reliable anony- mous distributed systems, with Faith Ellen Fich and Eric Ruppert. Proceedings of the Eighteenth International Symposium on Distributed Computing (DISC 2004), October 2004, pp. 260–274.

24. Inoculation strategies for victims of viruses and the sum-of-squares par- tition problem, with Kevin Chang and Aleksandr Yampolskiy. Six- teenth Annual ACM-SIAM Symposium on Discrete Algorithms, Jan- uary 2005, pp. 43–52.

25. Stably computable properties of network graphs, with Dana Angluin, Melody Chan, Michael J. Fischer, Hong Jiang, and René Peralta. In Viktor K. Prasanna, Sitharama Iyengar, Paul Spirakis, and Matt Welsh, eds., Distributed Computing in Sensor Systems: First IEEE Interna- tional Conference, DCOSS 2005, Marina del Rey, CA, USE, June/July, 2005, Proceedings. Lecture Notes in Computer Science 3560, Springer- Verlag, June 2005, pp. 63–74.

26. Fast construction of overlay networks, with Dana Angluin, Jiang Chen, Yinghua Wu, and Yitong Yin. Seventeenth ACM Symposium on Par- allelism in Algorithms and Architectures, July 2005, pp. 145–154.

27. The expansion and mixing time of skip graphs with applications, with Udi Wieder. Seventeenth ACM Symposium on Parallelism in Algo- rithms and Architectures, July 2005, pp. 126–134.

28. Spreading alerts quietly and the subgroup escape problem, with Zoë Diamadi, Kristian Gjøsteen, René Peralta, and Aleksandr Yampol- skiy. Advances in Cryptology — ASIACRYPT 2005: 11th Interna- tional Conference on the Theory and Application of Cryptology and In- formation Security, Chennai, India, December 4–8, 2005. Proceedings. Lecture Notes in Computer Science 3788, Springer-Verlag, December 2005, pp. 253–272.

11 29. On the power of anonymous one-way communication, with Dana An- gluin, David Eisenstat, and Eric Ruppert. Principles of Distributed Systems; 9th International Conference, OPODIS 2005; Pisa, Italy; De- cember 2005; Revised Selected Papers. Lecture Notes in Computer Sci- ence 3974, Springer-Verlag, December 2005, pp. 396–411. 30. Self-stabilizing population protocols, with Dana Angluin, Michael J. Fischer, and Hong Jiang. Principles of Distributed Systems; 9th In- ternational Conference, OPODIS 2005; Pisa, Italy; December 2005; Revised Selected Papers. Lecture Notes in Computer Science 3974, Springer-Verlag, December 2005, pp. 103–117. 31. Skip B-trees, with Ittai Abraham and Jian Yuan. Principles of Dis- tributed Systems; 9th International Conference, OPODIS 2005; Pisa, Italy; December 2005; Revised Selected Papers. Lecture Notes in Com- puter Science 3974, Springer-Verlag, December 2005, pp. 366–380. 32. Learning a circuit by injecting values, with Dana Angluin, Jiang Chen, and Yinghua Wu. Thirty-Eighth Annual ACM Symposium on Theory of Computing, May 2006, pp. 584–593. 33. Stably computable predicates are semilinear, with Dana Angluin and David Eisenstat. Twenty-Fifth Annual ACM Symposium on Principles of Distributed Computing, July 2006, pp. 292–299. 34. Fast computation by population protocols with a leader, with Dana Angluin and David Eisenstat. Distributed Computing, Twentieth Inter- national Symposium, DISC 2006, Stockholm, Sweden, September 2006, Proceedings, September 2006, pp. 61–75. 35. Path-independent load balancing with unreliable machines, with Yang Richard Yang and Yitong Yin. Eighteenth Annual ACM-SIAM Sym- posium on Discrete Algorithms, January 2007, pp. 814–823. 36. Learning large-alphabet and analog circuits with value injection queries, with Dana Angluin, Jiang Chen, and Lev Reyzin. Twentieth Annual Conference on Learning Theory, June 2007, pp. 51–65. (Best Student Paper award.) 37. A simple population protocol for fast robust approximate majority, with Dana Angluin and David Eisenstat. Distributed Computing, 21st

12 International Symposium, DISC 2007, Lemesos, Cyprus, September 24- 26, 2007, Proceedings, September 2007, pp. 20–32. 38. O(log n)-time overlay network construction from graphs with out-degree 1, with Yinghua Wu. Principles of Distributed Systems; 11th Interna- tional Conference, OPODIS 2007, Gaudaloupe, French West Indies, December 17–20, 2007. Proceedings. Lecture Notes in Computer Sci- ence 4878. Springer-Verlag, December 2007, pp. 286–300. 39. Worm versus alert: Who wins in a battle for control of a large-scale network?, with Navin Rustagi and Jared Saia. Principles of Distributed Systems; 11th International Conference, OPODIS 2007, Gaudaloupe, French West Indies, December 17–20, 2007. Proceedings. Lecture Notes in Computer Science 4878. Springer-Verlag, December 2007, pp. 443–456. 40. Ranged hash functions and the price of churn, with Muli Safra and Yitong Yin. Nineteenth Annual ACM-SIAM Symposium on Discrete Algorithms, January 2008, pp. 1066–1075. 41. Learning acyclic probabilistic circuits using test paths, with Dana An- gluin, Jiang Chen, David Eisenstat, and Lev Reyzin. Twenty-First Annual Conference on Learning Theory, July 2008, pp. 169–179. 42. Randomized consensus in expected O(n log n) individual work, with Hagit Attiya and Keren Censor. Twenty-Seventh Annual ACM SIGACT- SIGOPS Symposium on Principles of Distributed Computing, August 2008, pp. 325–334. 43. Optimally learning social networks with activations and suppressions, with Dana Angluin and Lev Reyzin Nineteenth International Confer- ence on Algorithmic Learning Theory, Lecture Notes in Computer Sci- ence 5254, Springer-Verlag, October 2008, pp. 272–286. 44. Approximate shared-memory counting despite a strong adversary, with Keren Censor. Twentieth Annual ACM-SIAM Symposium on Discrete Algorithms (SODA09), January 2009, pp. 441–450. 45. Max registers, counters, and monotone circuits, with Hagit Attiya and Keren Censor. Twenty-Eighth Annual ACM Symposium on Principles of Distributed Computing, August 2009, pp. 36–45.

13 46. Low-contention data structures, with David Eisenstat and Yitong Yin. Twenty-Second ACM Symposium on Parallelism in Algorithms and Ar- chitectures, June 2010, pp. 345–354.

47. k+ decision trees, with Eric Blais, Murat Demirbas, Ryan O’Donnell, Atri Rudra, and Steve Uurtamo. Algorithms for Sensor Systems: 6th International Workshop on Algorithms for Sensor Systems, Wireless Ad Hoc Networks, and Autonomous Mobile Entities, ALGOSENSORS 2010, Bordeaux, France, July 5, 2010, Revised Selected Papers, Lecture Notes in Computer Science 6451, Springer-Verlag, July 2010, pp. 74–88.

48. A modular approach to shared-memory consensus, with applications to the probabilistic-write model. Twenty-Ninth Annual ACM SIGACT- SIGOPS Symposium on Principles of Distributed Computing, July 2010, pp. 460–467.

49. Storage capacity of labeled graphs, with Dana Angluin, Rida A. Bazzi, Jiang Chen, David Eisenstat, and Goran Konjevod. Stabilization, Safety, and Security of Distributed Systems: 12th International Symposium, SSS 2010, New York, NY, USA, September 20–22, 2010. Proceedings. Lecture Notes in Computer Science 6366, Springer-Verlag, September 2010, pp. 573–587. (Best Student Paper award.)

50. Inferring social networks from outbreaks, with Dana Angluin and Lev Reyzin. Algorithmic Learning Theory, 21st International Conference, ALT 2010, Canberra, Australia, October 6-8, 2010. Proceedings. Lec- ture Notes in Computer Science 6331, Springer-Verlag, October 2010, pp. 104–118.

51. Mutation systems, with Dana Angluin and Raonne Barbosa Vargas. Language and Automata Theory and Applications: 5th International Conference, LATA 2011, Tarragona, Spain, May 26-31, 2011. Pro- ceedings. Lecture Notes in Computer Science 6638, Springer-Verlag, May 2011, pp. 92–104.

52. Tight bounds for anonymous adopt-commit objects, with Faith Ellen. Twenty-Third Annual ACM Symposium on Parallelism in Algorithms and Architectures, June 2011, pp. 317–324.

14 53. Optimal-time adaptive tight renaming, with applications to counting; with Dan Alistarh, Keren Censor-Hillel, Seth Gilbert, and Morteza Zadimoghaddam. Thirtieth Annual ACM SIGACT-SIGOPS Sympo- sium on Principles of Distributed Computing, June 2011, pp. 239–248.

54. Sub-logarithmic test-and-set against a weak adversary, with Dan Al- istarh. Distributed Computing: 25th International Symposium, DISC 2011. Lecture Notes in Computer Science 6950, Springer-Verlag, Septem- ber 2011, pp. 97–109.

55. Randomized consensus in expected O(n2) total work using single-writer registers. Distributed Computing: 25th International Symposium, DISC 2011. Lecture Notes in Computer Science 6950, Springer-Verlag, Septem- ber 2011, pp. 363–373.

56. The complexity of renaming, with Dan Alistarh, Seth Gilbert, and Rachid Guerraoui. Fifty-Second Annual IEEE Symposium on Founda- tions of Computer Science, October 2011, pp. 718–727.

57. Lower bounds for restricted-use objects, with Hagit Attiya, Keren Censor- Hillel, and Danny Hendler. Twenty-Fourth ACM Symposium on Par- allelism in Algorithms and Architectures, June 2012, pp. 172–181.

58. Faster randomized consensus with an oblivious adversary. 2012 ACM Symposium on Principles of Distributed Computing, July 2012, pp. 1–8.

59. Faster than optimal snapshots (for a while), with Hagit Attiya, Keren Censor-Hillel, and Faith Ellen. 2012 ACM Symposium on Principles of Distributed Computing, July 2012, pp. 375–384.

60. On the learnability of shuffle ideals, with Dana Angluin and Aryeh Kontorovich. Algorithmic Learning Theory, 23rd International Con- ference, ALT 2012, Lyon, France, October 29–31, 2012. Proceedings. Lecture Notes in Computer Science volume 7568, Springer-Verlag, Oc- tober 2012, pp. 111–123.

61. Randomized loose renaming in O(log log n) time, with Dan Alistarh, George Giakkoupis, and Phillip Woelfel. 2013 ACM Symposium on Principles of Distributed Computing, July 2013, pp. 200–209.

15 62. Atomic snapshots in expected O(log3 n) steps using randomized help- ing, with Keren Censor-Hillel. Distributed Computing: 27th Interna- tional Symposium, DISC 2013, Jerusalem, Israel, October 14–18, 2013. Proceedings, Lecture Notes in Computer Science 8205, Springer-Verlag, October 2013, pp. 254–268.

63. Dynamic task allocation in asynchronous shared memory, with Dan Al- istarh, Michael Bender, Rati Gelashvili, and Seth Gilbert. 2014 ACM- SIAM Symposium on Discrete Algorithms, January 2014, pp. 416–435.

64. Communication-efficient randomized consensus, with Dan Alistarh, Va- lerie King, and Jared Saia. Distributed Computing: 28th International Symposium, DISC 2014, Austin, TX, USA, October 12–15, 2014. Pro- ceedings, Lecture Notes in Computer Science 8784, Springer, October 2014, pp. 61–75.

65. Counting with population protocols, with Yves Mocquard, Emmanuelle Anceaume, Yann Busnel, and Bruno Sericola. 2015 IEEE 14th Interna- tional Symposium on Network Computing and Applications, September 2015, pp. 35–42.

66. Concurrent use of write-once memory, with Keren Censor-Hillel and Ei- tan Yaakobi. Structural Information and Communication Complexity - 23rd International Colloquium, SIROCCO 2016, Helsinki, Finland, July 19–21, 2016, Revised Selected Papers, July 2016, pp. 127–142.

67. Depth of a random binary search tree with concurrent insertions, with Eric Ruppert. Distributed Computing - 30th International Sympo- sium, DISC 2016, Paris, France, September 27-29, 2016. Proceedings, September 2016, pp. 371–384.

68. Time and space optimal counting in population protocols, with Joffroy Beauquier, Janna Burman, and Devan Sohier. 20th International Con- ference on Principles of Distributed Systems, OPODIS 2016, December 13–16, 2016, Madrid, Spain, December 2016, pp. 13:1–13:17.

69. Time-space trade-offs in population protocols, with Dan Alistarh, David Eisenstat, Rati Gelashvili, and Ronald Rivest. Proceedings of the Twenty- Eighth Annual ACM-SIAM Symposium on Discrete Algorithms, Jan- uary 2017, pp. 2560–2579.

16 70. Clocked population protocols. ACM Symposium on Principles of Dis- tributed Computing, July 2017, pp. 431–440.

71. Space-optimal majority in population protocols, with Dan Alistarh and Rati Gelashvili. Proceedings of the Twenty-Ninth Annual ACM-SIAM Symposium on Discrete Algorithms, SODA 2018, New Orleans, LA, USA, January 7-10, 2018, pp. 2210–2239.

72. Toward the first SDN programming capacity theorem on realizing high- level programs on low-level datapaths, with Christopher Leet, Xin Wang, and Y. Richard Yang. IEEE INFOCOM 2018 - IEEE Con- ference on Computer Communications, April 2018.

73. Allocate-on-use space complexity of shared-memory algorithms, with Bernhard Haeupler, Alexander Tong, and Philipp Woelfel. 32nd Inter- national Symposium on Distributed Computing, October 2018, pp. 8:1– 8:17.

74. The FuzzyLog: a partially ordered shared log, with Joshua Lockerman, Jose M. Faleiro, Juno Kim, Soham Sankaram, Daniel J. Abadi, Sid- dhartha Sen, and Mahesh Balakrishnan. 13th USENIX Symposium on Operating Systems Design and Implementation, October 2018, pp. 357– 372.

75. Optimizing in the Dark: Learning an Optimal Solution Through a Simple Request Interface, with Qiao Xiang, Haitao Yu, Franck Le, Linghe Kong, and Y. Richard Yang. Thirty-Third AAAI Conference on Artificial Intelligence, January 2019, pp. 1674–1681.

76. Why extension-based proofs fail, with Dan Alistarh, Faith Ellen, Rati Gelashvili, and Leqi Zhu. 51st ACM SIGACT Symposium on Theory of Computing, June 2019, pp. 986–996.

77. Consensus with max registers, with He Yang Er. 33rd International Symposium on Distributed Computing, October 2019, pp. 1:1–1:19.

78. Message complexity of population protocols, with Talley Amir, David Doty, Mahsa Eftekhari H., and Eric Severson. 34th International Sym- posium on Distributed Computing (DISC 2020), October 2020, pp. 6:1– 6:18. Available at https://arxiv.org/abs/2003.09532.

17 79. Approximate majority with catalytic inputs, with Talley Amir and John Lazarsfeld. 24th International Conference on Principles of Dis- tributed Systems (OPODIS 2020), December 2020, pp. 19:1–19:16. Avail- able at https://arxiv.org/abs/2009.08847.

Position papers 1. Towards better definitions and measures of Internet security, with Joan Feigenbaum, Michael Mitzenmacher, and David Parkes. Workshop on Large-Scale-Network Security and Deployment Obstacles, Landsdowne VA, March 2003.

Collections edited 1. Marcos Kawazoe Aguilera and James Aspnes, eds. Proceedings of the Twenty-Fourth Annual ACM Symposium on Principles of Distributed Computing, PODC 2005, Las Vegas, NV, USA, July 17-20, 2005. As- sociation for Computing Machinery, 2005.

2. Rida Bazzi and James Aspnes, eds. Posters Presented at the Twenty- Fourth Annual ACM SIGACT-SIGOPS Symposium on Principles of Distributed Computing. Yale University Department of Computer Sci- ence Technical Report YALEU/DCS/TR-1328, July 2005.

3. Phillip B. Gibbons, Tarek Abdelzaher, James Aspnes, and Ramesh Rao, eds. Distributed Computing in Sensor Systems, Second IEEE In- ternational Conference, DCOSS 2006, San Francisco, CA, USA, June 18-20, 2006. Proceedings. Lecture Notes in Computer Science 4026, Springer-Verlag, June 2006.

4. James Aspnes, Christian Scheideler, Anish Arora, and Samuel Mad- den, eds. Distributed Computing in Sensor Systems, Third IEEE In- ternational Conference, DCOSS 2007, Santa Fe, NM, USA, June 2007. Proceedings. Lecture Notes in Computer Science 4549, Springer-Verlag, June 2007.

5. James Aspnes, Alysson Bessani, Pascal Felber, and João Leitão, eds. 21st Internation Symposium on Principles of Distributed Systems (OPODIS 2017). Leibniz International Proceedings in Informatics, Volume 95, Leibniz-Zentrum für Informatik, December 2017.

18 Lecture notes 1. Notes on discrete mathematics. Available at https://www.cs.yale. edu/homes/aspnes/classes/202/notes.pdf. Last major revision 2017.

2. Notes on data structures and programming techniques. Available at https://www.cs.yale.edu/homes/aspnes/classes/223/notes.html. Last major revision 2018.

3. Notes on theory of distributed systems. Available at https://www. cs.yale.edu/homes/aspnes/classes/465/notes.pdf and https:// arxiv.org/abs/2001.04235. Last major revision 2019.

4. Notes on randomized algorithms. Available at https://www.cs.yale. edu/homes/aspnes/classes/469/notes.pdf and https://arxiv.org/ abs/2003.01902. Last major revision 2019.

5. Notes on computational complexit theory. Available at https://www. cs.yale.edu/homes/aspnes/classes/468/notes.pdf. Work in progress, 2020.

Technical reports not published elsewhere 1. Urn automata, with Dana Angluin, Zoë Diamadi, Michael J. Fischer, and René Peralta. Yale University Department of Computer Science Technical Report YALEU/DCS/TR-1280, November 2003.

2. Exposing computationally-challenged Byzantine impostors, with Collin Jackson and Arvind Krishnamurthy. Yale University Department of Computer Science Technical Report YALEU/DCS/TR-1332, July 2005.

3. Slightly smaller splitter networks. Yale University Department of Com- puter Science Technical Report YALEU/DCS/TR-1438, November 2010.

4. A one-bit swap object using test-and-sets and a max register. Yale Uni- versity Department of Computer Science Technical Report YALEU/DCS/TR- 1464, October 2012.

5. A population protocol for binary signaling consensus, with Dana An- gluin and Dongqu Chen. Yale University Department of Computer Science Technical Report YALEU/DCS/TR-1527, August 2016.

19 Brief announcements not published elsewhere 1. Brief announcement: Object oriented consensus, with Yehuda Afek, Edo Cohen, and Danny Vainstein. ACM Symposium on Principles of Distributed Computing, July 2017, pp. 367–369.

Other publications 1. Eight open problems in distributed computing, with Costas Busch, Shlomi Dolev, Panagiota Fatourou, Chryssis Georgiou, Alex Shvarts- man, Paul Spirakis, and Roger Wattenhofer. Bulletin of the European Association for Theoretical Computer Science, Distributed Computing Column, 90:109–126, October 2006. 2. An introduction to population protocols, with Eric Ruppert. Bulletin of the European Association for Theoretical Computer Science, Dis- tributed Computing Column, 93:98–117, October 2007.

Invited talks 1. Competitive Analysis of Distributed Algorithms. Dagstuhl-Seminar on On-line Algorithms, Schloss Dagstuhl, June 27th, 1996. 2. Lower Bounds for Coin-Flipping, Randomized Consensus, and Related Problems. University of Toronto, August 8th, 1996. 3. Lower Bounds for Distributed Coin-Flipping and Randomized Consen- sus. Brown University, February 12th, 1997. 4. Lower Bounds for Distributed Coin-Flipping and Randomized Consen- sus. 29th Columbia Theory Day, Columbia University, May 2nd, 1997. 5. Lower Bounds for Distributed Coin-Flipping and Randomized Consen- sus. Workshop on Randomness and Computation in honor of Michael Rabin’s 65th birthday, Hebrew University, June 16th, 1997. 6. Fast Deterministic Consensus in a Noisy Environment. University of Connecticut, May 15th, 2000. 7. Sensor Networks and the Future of Networked Computation. Work- shop on Theory of Networked Computation, Princeton, New Jersey, February 16th, 2006.

20 8. Distributed Systems Large and Small. Yale Science Forum, May 1st, 2006. 9. Data Aggregation in Sensor Networks and Population Protocols. Mas- sachusetts Institute of Technology, May 10th, 2006. 10. Building a Peer-to-peer Network From Scratch. 4th DYNAMO Work- shop, Stockholm, Sweden, September 17th, 2006. 11. Population Protocols. Massachusetts Institute of Technology, Novem- ber 28th, 2006. 12. Population Protocols. Tufts University, November 29th, 2006. 13. Max registers. BIRS Workshop on Lower Bounds in Distributed Com- puting, Banff International Research Station, January 27th, 2009. 14. Population Protocols, 15th International Meeting on DNA Computing and Molecular Programming, June 10th, 2009. 15. Max registers, counters, and monotone circuits. Dartmouth University, November 18th, 2009. 16. Open Problems in Consensus. BIRS Workshop on Probabilistic ver- sus Deterministic Techniques for Shared Memory Computation, Banff International Research Station, February 7th, 2012. 17. Sifters, consenus, and leader election. Workshop on Randomized Al- gorithms for Distributed Computing and Networks, INRIA, Rennes, France, July 21st, 2014. 18. Evolution of the population protocol model. University of Houston, May 9th, 2019. 19. Population protocols. ACM Symposium on Principles of Distributed Computing, August 5th, 2020. 20. Population protocols. MIT Theory of Computation Seminar, October 20th, 2020. 21. Population protococs. Workshop on Local Algorithms (WOLA), June 14th, 2021.

21 Service

Computer Science Department committees and offices • Colloquium Coordinator, 1996–1997.

• Academic Honesty Committee, 2017–2018, Spring 2019, 2019–2020.

• Comprehensive Examination Committee, 1994–1995.

• Computing Committee, 1998–2003, Spring 2004, 2011–2012.

• Computing Committee Chair, Spring 2002, 2011–2012.

• Curriculum 200X Committee, 2001–2002.

• Director of Undergraduate Studies for Computer Science, 2002–2003, Spring 2004, 2014–2015, Spring 2016, 2016–2018, Spring 2019, 2019–2021.

• Director of Undergraduate Studies for Computing and the Arts, 2019–2020.

• Faculty Recruiting Committee, 2002–2003, 2005–2009.

• Faculty Recruiting Committee Chair, 2005–2009.

• First-Year Coordinator, 1995–1997, Fall 2001.

• Graduate Admissions Committee, 1993–1995, Spring 2013, 2013–2014.

• Leave Committee, Fall 2016.

• MYTree Committee, 1995–1997.

• Senior Class Advisor, 2004–2005.

• Teaching and Curriculum Committee, 1999–2000, 2002–2003, Spring 2004, 2014–2015, Spring 2016, 2016–2018, Spring 2019, 2019–2021.

• Teaching and Curriculum Committee Co-chair, 2002–2003, Spring 2004.

• Teaching Fellows Czar, 2017–1018, Spring 2019, 2019–2021.

• Teaching Fellows Oversight Committee, 2002–2003, Spring 2004.

22 Yale University committees • Computing and the Arts Advisory Committee, Spring 2016, 2016–2018, Spring 2019, 2019–2021.

• Course of Study Committee, Spring 2013, 2013–2014.

• NEASC 2009 Self-Study Library and Learning Resources Committee, 2008–2009.

• Select Program Advisory Committee, 2002–2003, Spring 2004.

• Undergraduate Admissions Committee, 2001, 2002, 2003, 2005, 2006, 2011, 2012.

• Yale Engineering and Science Weekend Faculty Advisory Council, 2010–2012.

• Yale Graduate School Ad Hoc Committee on English Language Testing and Training for International Graduate Students, 1997.

Public lectures • Security and Encryption: Barbed Wire Fences on the Electronic Fron- tier, Association of Yale Alumni seminar, June 1st, 1995.

• Great Unsolved Problems in Computer Science, Yale Parents’ Weekend lecture, October 20th, 2000.

Professional activities • Editorial board member:

– Algorithmica, 2004–, – Distributed Computing, 2008–. – SIAM Journal on Computing, 2011–2020.

• Guest editor: Distributed Computing, PODC 2005 special issue.

• Program committee chair:

– ACM Symposium on Principles of Distributed Computing (PODC), 2005.

23 – IEEE International Conference on Distributed Computing in Sen- sor Systems (DCOSS), 2007. – International Conference on Principles of Distributed Systems (OPODIS), 2017. – Symposium on Algorithmic Foundations of Dynamic Networks (SAND), 2022.

• Program committee vice chair: IEEE International Conference on Dis- tributed Computing in Sensor Systems (Algorithms track), 2006.

• Program committee member:

– ACM Symposium on Parallelism in Algorithms and Architectures (SPAA), 2019. – ACM Symposium on Principles of Distributed Computing (PODC), 1996, 1997, 1999, 2003, 2004, 2005, 2011, 2013, 2016, 2019, 2021, 2022. – ACM Symposium on Theory of Computing (STOC), 2008, 2013. – IEEE International Conference on Distributed Computing in Sen- sor Systems (DCOSS), 2005, 2006, 2007, 2008, 2009. – IEEE International Parallel and Distributed Processing Sympo- sium (IPDPS), 2009, 2011. – IEEE Symposium on Foundations of Computer Science (FOCS), 1999, 2001. – International Colloquium on Automata, Languages, and Program- ming (ICALP), 2007, 2013, 2017. – International Colloquium on Structural Information and Commu- nication Complexity (SIROCCO), 2012, 2015, 2019. – International Conference on Computing and Combinatorics (CO- COON), 2009. – International Conference on Distributed Computing and Network- ing (ICDCN), 2012, 2014, 2016, 2021, 2022. – International Symposium on Distributed Computing Systems (ICDCS), 2010, 2013, 2014, 2015.

24 – International Conference on Principles of Distributed Systems (OPODIS), 2012, 2019. – International Symposium on Distributed Computing (DISC), 2007, 2009, 2012, 2014, 2017, 2020. – International Symposium on Stabilization, Safety, and Security of Distributed Systems (SSS), 2006, 2007, 2009, 2010, 2012, 2014, 2015, 2018, 2019, 2020. – International Workshop on Algorithmic Aspects of Wireless Sen- sor Networks (ALGOSENSORS), 2009. – International Workshop on Peer-to-Peer Systems (IPTPS), 2007. – Workshop on Mobility in Peer-to-Peer Systems (MPPS), 2005. • Steering committee member: – ACM Symposium on Principles of Distributed Computing (PODC), 2004–2007. – International Conference on Principles of Distributed Systems (OPODIS), 2017–2019. – Symposium on Algorithmic Foundations of Dynamic Networks (SAND), 2021–2022. • Award committee member: – Dijkstra Prize, 2005, 2010, 2015. – Principles of Distributed Computing Doctoral Dissertation Award, 2014. • NSF review panel member, 1999, 2002, 2004, 2009, 2011, 2013, 2015, 2017. • Advisory committee member: Collaborative Research Group on Al- gorithmic Theory of Networks, Pacific Institute for the Mathematical Sciences, 2012–2015.

Memberships • Association for Computing Machinery, SIGACT.

25 Teaching

Courses taught • Elements of Computing (CPSC 110): Fall 1994, Fall 1995, Fall 2002.

• A First Course in Programming (CPSC 112): Spring 1994, Fall 1996.

• A Second Course in Programming (CPSC 200): Fall 1998 (as CPSC 210), Fall 1999.

• Mathematical Tools for Computer Science (CPSC 202): Fall 2004, Fall 2005, Fall 2007, Fall 2008, Fall 2010, Fall 2013, Fall 2017.

• Data Structures and Programming Techniques (CPSC 223): Spring 2002, Spring 2005, Spring 2012, Spring 2015, Spring 2018, Spring 2021.

• Design and Analysis of Algorithms (CPSC 365): Spring 1997, Spring 1998, Spring 1999, Spring 2000, Spring 2001, Spring 2003, Spring 2004.

• Operating Systems (CPSC 422/522): Fall 2007.

• Advanced Topics in Theory (CPSC 461/561): Spring 1995.

• Theory of Distributed Systems (CPSC 465/565; CPSC 425/525 before Fall 2011): Spring 1996, Fall 2001, Fall 2005, Spring 2008, Spring 2010, Fall 2011, Spring 2014, Spring 2016, Spring 2019, Fall 2020.

• Computational Complexity (CPSC 468/568): Spring 2017, Spring 2020.

• Randomized Algorithms (CPSC 469/569): Spring 2009, Spring 2011, Spring 2013, Fall 2014, Fall 2016, Fall 2019.

Graduate students supervised • Currently supervising:

– John Lazarsfeld.

• Dissertation advisor for:

– Gauri Shah (Ph.D. 2003). – Zoë Diamadi (Ph.D. 2004).

26 – Aleksandr Yampolskiy (Ph.D. 2006). – Yinghua Wu (Ph.D. 2009). – Yitong Yin (Ph.D. 2009). – Tally Amir.

• Dissertation committee member for:

– Martins Krikis (Ph.D. 1998). – Bin Fu (Ph.D. 1998). – Miklos Csuros (Ph.D. 2000). – Petros Drineas (Ph.D. 2003). – Sheng Zhong (Ph.D. 2004) – Vijay Ramachandran (Ph.D. 2005). – Jiang Chen (Ph.D. 2006). – David Goldenberg (Ph.D. 2006). – Hong Jiang (Ph.D. 2007). – Ronny R. Dakdouk (Ph.D. 2009). – Aaron Johnson (Ph.D. 2009). – Lev Reyzin (Ph.D. 2009). – Felipe Saint-Jean (Ph.D. 2010). – Azza Abouzied (Ph.D. 2013). – Xueyuan Su (Ph.D. 2013). – Hongda Xiao (Ph.D. 2014). – Dongqu Chen (Ph.D. 2016). – Debayan Gupta (Ph.D. 2016). – Aaron Segal (Ph.D. 2016). – Shantao Li (Ph.D. 2017). – Alexander Tong (Ph.D 2021). – Wolf Honoré. – Caleb Malchik.

27 • Outside reader for:

– Danny Hendler (Tel-Aviv University, Ph.D. 2004). – Ling Cheung (University of Nijmegen, Ph.D. 2006). – George Giakkoupis (University of Toronto, Ph.D. 2008). – Yvonne Anne Pignolet (ETH Zurich, Ph.D. 2009). – Navin Rustagi (University of New Mexico, Ph.D. 2010). – Xavier Koegler (Université Paris Diderot, Ph.D. 2012). – Rati Gelashvili (MIT, Ph.D. 2017). – Abhinav Aggarwal (University of New Mexico, Ph.D. 2019).

• Other Ph.D. students supervised:

– John Maheswaran (Spring 2012–Fall 2012).

Undergraduate students supervised Senior projects (CPSC 490):

• Spring 1994: Paul Ohm, Nelson Tang.

• Fall 1994: Todd Kerpleman.

• Spring 1995: Jeremy Haines.

• Fall 1995: Mark Lindner, Scott McCaskill, Adam Miller, Ben Samman.

• Spring 1996: Matt Fates, Mark Huey, Ben Samman, Jack Winn.

• Fall 1996: Neveen Farag, David Sklar.

• Spring 1997: Jonathan Davis, Derek Tarsy.

• Spring 1998: Russell Atkind, William Bayliss, Robert Beckwith, Ben- jamin Parker.

• Fall 1998: Donald F. Fischer.

• Spring 1999: David Bookstaber, Alex Cuevas, Alia Hameed.

28 • Spring 2000: Tom Benjamin, Daniel Brambila, Matthew Hiller, Guy Penini, Nathaniel Vasquez. • Spring 2001: Michael Chen, Robert Dugas, Jordan Golinkoff, David Sarno. • Fall 2001: Michael Ambinder. • Spring 2002: Michael Ambinder. • Fall 2004: Jian Yuan. • Spring 2005: Nathan Francis, Emmett Shear. • Spring 2007: Michael Ruberry. • Spring 2008: Yoel Grodentzik. • Spring 2012: Michael Kurland. • Spring 2013: Michael Holkesvik, Samer Sabri. • Spring 2014: James Cheng, Shenlil Dodhia (co-advisor), Jeffrey Zhang. • Spring 2015: Andrew Cheruiyot, Edward Kimo Hon, David Noetzel, Michael Tan. • Spring 2016: Keshane Gan. • Fall 2016: Christopher Chute, Ikenna Nzewi, Jiyang Xie. • Spring 2017: Aditya Gudibanda, Ikenna Nzewi. • Fall 2017: Tyler Dohrn. • Spring 2018: Michael Burns, Marus Russi. • Spring 2019: Joseph Lanzone. • Spring 2021: Clarence Rodgers. Directed reading (CPSC 480): • Spring 1995: Jeremy Haines. • Spring 2005: Faizah Mohamed Anuar. • Spring 2009: Reece Flexner.

29