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:

  • 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

  • Quora: What to Do When You’re Stuck on a Competitive Programming Problem April 14, 2021
  • Quora: How to Get Better at Competitive Programming April 7, 2021
  • Quora: Is LeetCode Useful for Beginning Competitive Programmers? March 31, 2021
  • How to LeetCode March 24, 2021
  • LeetCode 322: Coin Change March 17, 2021
  • LeetCode 152: Maximum Product Subarray March 10, 2021
  • LeetCode 856: Score of Parentheses March 3, 2021
  • LeetCode 11: Container With Most Water February 24, 2021
  • LeetCode 47: Permutations II February 17, 2021
  • LeetCode 897: Increasing Order Search Tree February 10, 2021
Red-Green-Code
  • Home
  • About
  • Contact
  • Project 462
  • CP FAQ
  • Newsletter
Copyright © 2021 Duncan Smith