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

  • LeetCode 1022: Sum of Root To Leaf Binary Numbers January 27, 2021
  • LeetCode 1288: Remove Covered Intervals January 20, 2021
  • LeetCode 227: Basic Calculator II January 13, 2021
  • A Project for 2021 January 6, 2021
  • Lessons from the 2020 LeetCode Monthly Challenges December 30, 2020
  • Quora: Are Math Courses Useful for Competitive Programming? December 23, 2020
  • Quora: Are Take-Home Assignments a Good Interview Technique? December 17, 2020
  • Quora: Why Don’t Coding Interviews Test Job Skills? December 9, 2020
  • Quora: How Much Time Should it Take to Solve a LeetCode Hard Problem? December 2, 2020
  • Quora: Quantity vs. Quality on LeetCode November 25, 2020
Red-Green-Code
  • Home
  • About
  • Contact
  • Project 462
  • CP FAQ
  • Newsletter
Copyright © 2021 Duncan Smith