Red-Green-Code

Deliberate practice techniques for software developers

  • Home
  • About
  • Contact
  • Project 462
  • CP FAQ
  • Newsletter

CPFAQ: Defining Competitive Programming Terms, Part 2

By Duncan Smith Oct 24 0

Dictionary

I’m working on a project this year to build a competitive programming FAQ. This is one in a series of articles describing the research, writing, and tool creation process. To read the whole series, see my CPFAQ category page.

As I wrote a couple of weeks ago, the CPWiki now has a competitive programming glossary. This week, I’ll be discussing goals and standards for the glossary.

Defining Terms

The most obvious purpose of a glossary is to define words. When reading Quora or another Web resource, it’s useful to have a single page defining common competitive programming terms. Someone new to the space might want to get a quick summary of the difference between Topcoder and Codeforces. And even a regular visitor to Quora’s competitive programming topic might want a reminder about what Codevita is, or how Amritapuri relates to the contest scene. So the first priority for the glossary is to present short definitions for a set of competitive programming terms.

Putting Terms in Context

The difference between a glossary and a general-purpose dictionary or encyclopedia is that a glossary defines terms in a particular domain. This includes terms specific to that domain, and also terms with both a general and a specific meaning. For example, problem, contest, and judge are common English words, which might make it difficult to look up their specific competitive programming meanings. The glossary can help by defining each term only in the context of competitive programming.

Maintaining Consistency

The glossary exists alongside a range of competitive programming resources that includes the CPWiki, the CPFAQ, the RedGreenCode blog, and Quora answers. When I’m contributing to those resources, I want to be consistent in how I use terms. For example, I want to be clear about the relationship between a programming contest and an online judge, and which of those terms applies to each event or resource.

Creating a Comprehensive List

Because the glossary consists of short definitions, making it comprehensive will be easier than meeting a similar standard for the CPWiki. As an inclusion standard, I’m starting with the assumption that it’s worth defining any term that people mention on Quora in competitive programming and related topics. This is more inclusive than Wikipedia, which requires that topics be notable (covered in depth in a reliable third-party source). It’s also more inclusive than the Awesome Competitive Programming list, which rejects contributions that aren’t sufficiently notable based on the editor’s standards.

Capturing the Current State of Things

Finally, the glossary should reflect the current state of competitive programming terminology. So if people start discussing a new online judge on Quora, it should have an entry in the glossary. And older entries should be kept up to date.

(Image credit: Quinn Dombrowski)

Categories: CPFAQ

Prev
Next

Stay in the Know

I'm trying out the latest learning techniques on software development concepts, and writing about what works best. Sound interesting? Subscribe to my free newsletter to keep up to date. Learn More
Unsubscribing is easy, and I'll keep your email address private.

Getting Started

Are you new here? Check out my review posts for a tour of the archives:

  • 2023 in Review: 50 LeetCode Tips
  • 2022 in Review: Content Bots
  • 2021 in Review: Thoughts on Solving Programming Puzzles
  • Lessons from the 2020 LeetCode Monthly Challenges
  • 2019 in Review
  • Competitive Programming Frequently Asked Questions: 2018 In Review
  • What I Learned Working On Time Tortoise in 2017
  • 2016 in Review
  • 2015 in Review
  • 2015 Summer Review

Archives

Recent Posts

  • Do Coding Bots Mean the End of Coding Interviews? December 31, 2024
  • Another Project for 2024 May 8, 2024
  • Dynamic Programming Wrap-Up May 1, 2024
  • LeetCode 91: Decode Ways April 24, 2024
  • LeetCode 70: Climbing Stairs April 17, 2024
  • LeetCode 221: Maximal Square April 10, 2024
  • Using Dynamic Programming for Maximum Product Subarray April 3, 2024
  • LeetCode 62: Unique Paths March 27, 2024
  • LeetCode 416: Partition Equal Subset Sum March 20, 2024
  • LeetCode 1143: Longest Common Subsequence March 13, 2024
Red-Green-Code
  • Home
  • About
  • Contact
  • Project 462
  • CP FAQ
  • Newsletter
Copyright © 2025 Duncan Smith