Daniel Anderson

Assistant Teaching Professor at Carnegie Mellon University

Contact:
Room 4124, Gates Hillman Center
Carnegie Mellon University
4902 Forbes Avenue
Pittsburgh, PA 15213, USA

I am a teaching faculty member in the Computer Science Department at Carnegie Mellon University. I love teaching, researching, and writing about algorithms. At the moment, my research work is broadly on the topic of of parallel computing, specifically, designing parallel algorithms and implementing libraries that make parallel programming easier for programmers. These days, I spend most of my time on teaching! This semester I am instructing 15-451 Algorithm Design and Analysis with Danny Sleator.

I was fortunate to be advised by Professor Guy Blelloch during my PhD at CMU.

My favourite research projects right now are ParlayLib, our research group's library for supporting efficient and easy-to-use fork-join parallelism in C++, and concurrent deferred reference counting, which I like to call smarter atomic smart pointers, a project where we are trying to bring efficient automatic concurrent memory management to C++.

ParlayLib
Algorithms and Data Structures

A C++ library for parallel programming that provides easy-to-use abstractions for fork-join parallelism and high-level parallel algorithms.

Concurrent deferred reference counting
Algorithms and Data Structures

Automatic deferred reclamation (the equivalent of garbage collection in C++) with the performance of expert-written unsafe memory management.

Teaching

I love teaching programming, maths, and computer science. I have over eight years of experience teaching college-level computer science, and several additional years of tutoring high school maths and coaching for programming competitions. My first job in high school was teaching martial arts to children!

At Carnegie Mellon University

15-451: Algorithm Design and Analysis
Algorithms and Data Structures

Period: Fall, 2023
Role: Instructor
Instructor: Prof. Danny Sleator & Me

15-451: Algorithm Design and Analysis
Algorithms and Data Structures

Period: Fall, 2022
Role: Instructor
Instructor: Prof. David Woodruff & Me

15-451: Algorithm Design and Analysis
Algorithms and Data Structures

Period: Spring, 2022
Role: Teaching Assistant
Instructor: Prof. Danny Sleator &
Prof. Elaine Shi

15-451: Algorithm Design and Analysis
Algorithms and Data Structures

Period: Fall, 2021
Role: Teaching Assistant
Instructor: Prof. Danny Sleator &
Prof. David Woodruff

15-295: Competition Programming and Problem Solving
Algorithms and Data Structures

Period: Fall, 2020
Role: Teaching Assistant
Instructor: Prof. Danny Sleator

15-295: Competition Programming and Problem Solving
Algorithms and Data Structures

Period: Spring, 2020
Role: Teaching Assistant
Instructor: Prof. Danny Sleator

15-295: Competition Programming and Problem Solving
Algorithms and Data Structures

Period: Fall, 2019
Role: Teaching Assistant
Instructor: Prof. Danny Sleator

At Monash University

Introduction to Modern C++
Modern C++

Period: Summer & winter, 2017 - 2018
Role: Course design & Instructor
Instructor: Me

FIT2004: Algorithms and Data Structures
Algorithms and Data Structures

Period: Semester One, 2018
Role: Teaching Associate
Instructor: Dr Aamir Cheema

FIT2014: Theory of Computation
Theory of Computation

Period: Semester Two, 2017
Role: Teaching Associate
Instructor: Prof. Graham Farr

FIT2004: Algorithms and Data Structures
Algorithms and Data Structures

Period: Semester One, 2017
Role: Head Teaching Associate
Instructor: Dr Arun Konagurthu

FIT2014: Theory of Computation
Theory of Computation

Period: Semester Two, 2016
Role: Teaching Associate
Instructor: Prof. Graham Farr

FIT2004: Algorithms and Data Structures
Algorithms and Data Structures

Period: Semester One, 2016
Role: Teaching Associate
Instructor: Dr Arun Konagurthu

Lastly, I enjoy coaching students for the International Collegiate Programming Contest (ICPC). I was formerly the coach of the Monash University Programming Team, and formerly a judge and problem setter for the South Pacific Programming Contests.