Exercises — Chapter 8: Paragraphs That Flow
These exercises require you to produce or revise text. You learn flow by reordering and reconnecting real paragraphs, not by recognizing definitions. Work in a text editor where you can move sentences around. Difficulty is marked ⭐ (warm-up) to ⭐⭐⭐⭐ (extension).
Selected solutions and rubrics are in
appendices/answers-to-selected.md. For open-ended tasks, a self-assessment rubric appears here instead of a single answer.
Part A — Analyze This ⭐
Diagnose, don't fix (yet). For each, name the specific failure using this chapter's vocabulary: unity violation, missing/buried topic sentence, given-new reversed, false transition, cohesion vs. coherence, too long.
A1. "The parser reads tokens from the lexer. The lexer is written in Rust. Tokens are consumed left to right. The Rust code is well tested. A syntax tree is produced by the parser." What's wrong? (Hint: two ideas are interleaved.)
A2. "The migration completed successfully. However, all 4 million rows transferred without error." Name the transition error precisely.
A3. "Our caching layer is implemented with Redis, which we chose for its speed and its support for data structures like sorted sets, and it stores session data with a 30-minute TTL, and it also caches the results of expensive database queries, and the eviction policy is set to allkeys-lru, and we monitor its hit rate in Grafana, and a recent incident showed the hit rate dropping below 70%, which turned out to be caused by a misconfigured TTL after a deploy." Two problems here—name both.
A4. "The results were inconclusive. The sample size was small. The instrument may have been miscalibrated. We recommend three changes to the protocol. Funding was provided by the department." Read it. Each sentence is clear. Is the failure cohesion or coherence? Justify.
A5. Read this and decide whether the topic sentence does its job: "There are several things to consider. The deployment requires database access, a valid API key, and at least 2 GB of free disk. The API key must be set in the environment before running." Does the first sentence predict the paragraph's content? What should it say instead?
A6. "First, the user submits the form. The form data is validated on the server. Therefore, a confirmation email is sent. Finally, the record is written to the database." One transition is wrong for the relationship it marks. Which, and what relationship is actually there?
A7. (Identify the good one.) Two openings of the same paragraph follow. Which honors given-new, and how can you tell? - (i) "A 22% reduction in build time resulted from parallelizing the test suite. Three CI runners now share the load." - (ii) "We parallelized the test suite across three CI runners. That change cut build time by 22%."
Part B — Revise This ⭐⭐
Now fix what you diagnosed. Rewrite each passage. Do not add or remove facts—reorder, reconnect, split, and (only where needed) reword.
B1. (Reorder for given-new.) This paragraph clatters because nearly every sentence opens with new information. Reorder the information within each sentence so each opens with something already established and ends with the new point. Try hard not to reword more than necessary.
"A redesign of the search indexing service is proposed here. Higher memory usage during indexing is the main drawback. Faster query response—about 3× on large datasets—is the main benefit. A one-week migration is required to switch over. Backward compatibility with the existing query API is preserved by the new design."
B2. (Reorder for given-new — harder.) Same task, denser content.
"Inconsistent error handling across the three services was revealed by the audit. A shared error-handling library is the recommended solution. Duplicated, divergent retry logic in each service is the root cause of the inconsistency. Standardized retries and uniform error responses would be provided by a shared library. Adoption across all three teams in the next quarter is what we propose."
B3. (Enforce unity.) This paragraph holds two ideas. Find the foreign sentences, split into two clean paragraphs (or relocate/cut), and give each a topic sentence.
"The onboarding flow has five screens. The first collects the user's name and email. Our designer, Priya, has been with the company for three years. The second screen sets up two-factor authentication. The third connects a payment method. Priya previously worked at a fintech startup. The fourth and fifth screens are a product tour and a success confirmation."
B4. (Fix the transitions.) Every transition in this passage is either wrong or unnecessary. Rewrite so each connection names the real relationship (or goes implicit where the flow is obvious).
"The feature shipped on Friday. However, adoption was strong over the weekend. Furthermore, one edge case caused crashes on older devices. Moreover, we patched it Monday morning. Therefore, fewer than 200 users were affected."
B5. (Add the missing transitions.) This passage has the opposite problem: the logical relationships are real but unmarked, so the reader has to infer every turn. Insert transitions only where a relationship genuinely needs signaling—especially the contrast and the cause. Leave same-direction connections implicit.
"The new algorithm is faster on average. It performs poorly on inputs with many duplicate keys. We added a fallback path for that case. The fallback adds a small constant overhead. Overall throughput improved by 18%."
B6. (Break the wall.) Split this single-sentence run-on into 2–3 short paragraphs, each one idea, with topic sentences. Fix the sentence boundaries (Chapter 6) as you go.
"The notification service polls a queue every ten seconds and sends emails and push notifications based on event type, and it has occasionally double-sent notifications because the dequeue and the send are not transactional, which means a crash between the two can leave a message marked unsent so it gets picked up again on the next poll, and the fix we're planning is to move to an at-least-once model with idempotency keys so duplicate sends are detected and suppressed downstream, but until then the mitigation is to deduplicate on the client using the event ID we already include in every payload."
B7. (Topic-sentence rescue.) This paragraph has a clear point hiding in the middle. Find it, promote it to a topic sentence at the front, and reorder the rest to support it.
"We tried increasing the connection pool size. We also added read replicas. Neither fully solved the latency spikes. The real bottleneck turned out to be a single unindexed query running on every page load. Adding the index cut p95 latency in half."
Part C — Write This ⭐⭐–⭐⭐⭐
Produce original paragraphs. Apply the tools deliberately and label what you did.
C1. Pick a process you know well (deploying code, running an experiment, onboarding a teammate, brewing coffee with a specific method). Write a single sequential paragraph describing it in four to six steps. Use sequential transitions correctly, keep one idea (the process), and make sure each sentence's given-new handoff is clean. Then annotate: underline each transition and label its type.
C2. Write a paragraph that makes one claim and supports it with a reason, a piece of evidence, and a consequence—one idea, four moves (the structure from §8.1). Topic sentence first. Then check: cover everything but the first sentence; does it predict the paragraph?
C3. Take any paragraph from C1 or C2 and deliberately break its given-new flow—rewrite each sentence to open with new information. Put the broken and the flowing versions side by side. In two sentences, explain what changed for the reader (this trains your eye to see the contract).
C4. Write a paragraph containing exactly one genuine adversative turn (a real contrast or trade-off) and one genuine causal link, on a technical topic of your choice. Mark the "however" (or equivalent) and the "therefore" (or equivalent). The challenge: make sure each is earned—a reader should feel the contrast and the consequence are real.
Part D — Synthesis & Critical Thinking ⭐⭐⭐
D1. (Find the flaw — cohesion vs. coherence.) Here is a paragraph that flows beautifully and says nothing useful. Diagnose it precisely (which is intact—cohesion or coherence—and which is broken?), then rewrite it so it actually makes a point. You may need to add a controlling idea that the original lacked.
"Documentation is important for any project. Good documentation helps users. It also helps maintainers. When documentation is clear, people can find what they need. This saves time. Time is valuable. Therefore, teams should invest in documentation."
D2. (Translate the flow tool across audiences.) Take this single finding and write two one-paragraph versions, each with clean given-new flow, but for different readers: (a) a fellow engineer, (b) a non-technical executive. The facts: a memory leak in the image-processing service caused gradual slowdowns; it was traced to un-closed file handles; the fix releases handles in a finally block; memory now stays flat over 24 hours. Notice that the given (what's already familiar) differs by reader—so the same contract produces different openings.
D3. (Reverse-outline meets flow.) Find a multi-paragraph document you wrote recently. Do a reverse outline (Chapter 4): write the one-sentence point of each paragraph. Now check two things at once: (1) is each paragraph actually one idea (unity)? (2) do the paragraph-points themselves flow given-new—does each paragraph open by connecting to the one before? Report what the reverse outline exposed.
Part M — Mixed Practice (Interleaved) ⭐⭐–⭐⭐⭐
These mix Chapter 8 with earlier chapters, so you must first decide which problem you're solving.
M1. This passage has problems from several chapters at once. Identify each (clarity/bloat → Ch 3; sentence error → Ch 6; word choice/tone → Ch 7; flow → Ch 8), then produce one clean revision.
"It is important to note that the utilization of the new caching mechanism was undertaken by the team. However, the implementation thereof resulted in a 40% reduction in latency. The team are very pleased. Going forward, additional optimizations will be explored by us."
M2. A colleague's status update is below. First decide: is the biggest problem structure (Ch 4 — wrong order for a scanning manager) or flow (Ch 8 — choppy seams)? It may be both. Fix the more important one first, then the other.
"We looked into the slow dashboard. We checked the frontend rendering. That was fine. We checked the API response times. Those were slow. We profiled the backend. A single N+1 query was the cause. We added eager loading. The dashboard now loads in under a second. It used to take eight seconds."
M3. Take any well-written paragraph from a source you respect (a good README, a science article, a textbook). Do not rewrite it. Instead, annotate it: mark the topic sentence, draw an arrow at each given-new handoff (what each sentence reaches back to), and label every transition's type. This is "reading as a writer" (previewed for Ch 39)—the analysis trains the instinct.
Part E — Extension ⭐⭐⭐⭐ (optional, Deep Dive)
E1. (The stress-position discipline.) Gopen and Swan argue that the end of a sentence (the stress position) is where readers place emphasis. Take three sentences you've written recently that end on weak filler ("...in most cases," "...as noted above," "...for the time being"). Rewrite each so the most important word lands at the end. Reflect: did the meaning's emphasis shift?
E2. (Build a known-new chain on purpose.) Write a five-sentence paragraph explaining a concept you know well, under one constraint: the new information at the end of each sentence must become the given information at the start of the next, explicitly. Build the chain link by link. Then read it aloud—does it pull forward? This is the given-new contract turned up to its maximum; real prose is looser, but doing it deliberately calibrates your ear.
E3. (Diagnose a real failure in the wild.) Find a paragraph in real documentation that you found genuinely hard to follow. Diagnose it with this chapter's full toolkit: unity? topic sentence? given-new? transitions? length? Then write a one-paragraph "code review" of it—specific, kind, actionable (a preview of Ch 34)—as if leaving feedback for its author.
Self-Assessment Rubric (for open-ended Parts C, D, E)
Rate each piece you produced:
| Dimension | Needs work | Solid | Excellent |
|---|---|---|---|
| Unity | Two+ ideas wander in | One idea, mostly held | One idea; every sentence serves the topic sentence |
| Topic sentence | Missing or buried | Present, roughly accurate | First sentence precisely predicts the paragraph |
| Given-new flow | Sentences open with new info; choppy | Most seams connect backward | Each sentence opens given, ends new; reads as a current |
| Transitions | Wrong, false, or stuffed | Mostly correct | Each names the real relationship; turns marked, obvious links implicit |
| Length/fit | Wall of text or fragmented | Reasonable | Right length for the idea and the reading mode |
A piece is ready when it scores "Solid" or better on every row—and when, reading it aloud, you don't stumble at any seam.