graph algorithms
BFS, DFS, Dijkstra, Bellman-Ford, MST.
Tutor Profile
PhD Computer Science from Georgia Tech. Specializes in graph algorithms and dynamic programming.
About the Tutor
Sarah finished her CS PhD at Georgia Tech with a thesis on graph algorithms for sparse neural-network training. The work sat at the intersection she still tutors from: classical algorithmic thinking applied to PyTorch and JAX pipelines that students cannot otherwise debug. Ten years and 1,200+ CSHH assignments later, she still opens every session the same way. Read the problem statement aloud. Identify the input contract. State the expected output type. Only then look at the code.
CS tutoring is the work she chose over a faculty post. The decision had a specific cause. During the third year of her PhD she ran a weekly peer-tutoring slot for undergraduates working through the Bellman-Ford material in their algorithms class. One student arrived with a 400-line solution that timed out on the staff autograder. The correct answer was 12 lines plus a comment explaining why relaxation is safe in O(VE). The student had been working alone for nine days. That hour changed what she wanted her career to look like. She finished the PhD because the thesis was already drafted, but the academic-job applications never went out.
Her tutoring focuses on the why behind every algorithmic choice. Why memoize the recursion top-down before rewriting it bottom-up. Why a heap is correct for Dijkstra but a Fibonacci heap is asymptotically faster only when E is sparse. Why the reference implementation in CLRS uses an array indexed from 1 instead of 0. Students who work with her for a semester learn to defend their algorithmic decisions in code review, which is the actual skill the curriculum is testing. The grade follows. The understanding is what the grade rewards.
On the ML side her diagnostic playbook is opinionated. PyTorch autograd issues are usually a missing .detach() on a tensor still attached to the computation graph, or a stale optimizer state that survived a model.load_state_dict() call. A vanishing gradient is almost never the optimizer; it is the loss surface and the initialization scheme. She works through these the same way she works through a graph traversal bug: print the shapes, print the requires_grad flags, isolate one minibatch, and reproduce before patching. Students who learn this loop stop guessing. They start narrowing the search space the way a working ML engineer does.
Her sessions are most useful when the student has already tried something. A specific case from last term: a machine-learning student had a softmax classifier that trained to 92% on the training set and 31% on the validation set, classic overfitting on the surface. Sarah pulled the data loader and found the actual bug. The validation split had been generated before the dataset was normalized, so the validation pixels were in [0, 255] while the training pixels were in [0, 1]. The model was learning the right function on the wrong input distribution. A four-line fix to the data pipeline. The student saw it once and never made the same mistake again.
Her CSHH workflow is consistent. The brief arrives, she reads the rubric twice, then drafts an outline of the solution before writing code. She files inline comments that name the invariant each loop maintains, attaches a Big-O analysis as a separate markdown block, and includes pytest cases covering the autograder edge inputs she has seen flagged before. A "good" student question, in her view, is one where the student has already tried something and can show the failing output. That tells her where understanding stops and where the next session should start. She has a personal rule against delivering anything she could not defend at a thesis committee, and that bar tends to produce work the autograder accepts on the first submission.
Documented Specialties
BFS, DFS, Dijkstra, Bellman-Ford, MST.
Top-down memoization, bottom-up tabulation.
Sarah handles pytorch autograd debugging as a recurring CSHH workload, with documented patterns and reference solutions.
Sarah handles neural-network training instability as a recurring CSHH workload, with documented patterns and reference solutions.
Sarah handles big-o complexity analysis as a recurring CSHH workload, with documented patterns and reference solutions.
Sarah handles cs161 / 6.006 problem set methodology as a recurring CSHH workload, with documented patterns and reference solutions.
Sample Reviewed Code
A representative snippet from Sarah's workflow. Pulled from the diagnostic playbook Sarah runs on incoming CSHH assignments in this language.
def bellman_ford(graph, source):
"""Single-source shortest paths. O(VE), handles negative edges.
Returns dist[v], or raises on negative cycle. CS161 / 6.006."""
dist = {v: float('inf') for v in graph}
dist[source] = 0
for _ in range(len(graph) - 1): # V-1 relaxation passes
for u in graph:
for v, w in graph[u]:
if dist[u] + w < dist[v]:
dist[v] = dist[u] + w
for u in graph: # one extra pass = cycle check
for v, w in graph[u]:
if dist[u] + w < dist[v]:
raise ValueError('negative cycle reachable from source')
return dist
Coverage Map
Course Matches
CS50 introduces computational thinking across 10 weeks plus a final project, using 4 languages in sequence: Scratch (week 0), C (weeks 1 through 5), Python (weeks 6 through 7),...
10 recurring assignments covered
Get help with CS50CS61B teaches data structures and Java software engineering across 14 weeks under Josh Hug (since 2017) and Justin Yokota (recent semesters). Lectures cover lists, sets, maps,...
8 recurring assignments covered
Get help with CS61BMIT 6.006 introduces algorithms across 13 weeks with 26 lectures, 13 recitations, and 7 problem sets. The Spring 2020 redesign by Erik Demaine, Jason Ku, and Justin Solomon...
8 recurring assignments covered
Get help with 6.006FAQ
More Named Tutors
Four tutors keep public profiles. The rest of the bench stays off the public site so student-tutor matches stay confidential.
MS CS
750+ assignments completed
BS CS
620+ assignments completed
Active Bench
Behind the four named profiles is a wider matching bench. Submissions auto-route by subject, language, and timezone. The public profiles cover the most-requested specializations; the rest of the roster stays unpublished so student-tutor pairings stay private.
Get matched to a tutor
Submit your assignment with Sarah in mind. We will route the request to the best-fit tutor based on subject, language, and current load. Average first reply inside 30 minutes during business hours.
Submit for Sarah