The challenge problems do not require the formalisation of large programming languages, but they do require sophistication in reasoning about:
Challenge problems don't need the detailed structuring of intricate programming languages; however, they still call for advanced reasoning abilities in terms of: