Skip to content

Is "write a program" accurate? #321

Closed
@petertseng

Description

@petertseng

We have a lot of descriptions that say "write a program". As exercism/exercism#2746 explains, this may set up a wrong expectation from students that they are writing e.g. something with a main function (or equivalent entry point in language of choice).

But it seems that most tracks I've seen simply ask the student to write a function. Most languages then verify the behavior with unit tests against that function.

In the interest of setting up expectations correctly, shall we replace "write a program" with "write a function"?

Things I would like to check before doing that:

  • Are there any tracks that do, in fact, expect the student to write a full-fledged program?
  • Are there any tracks in which the equivalent concept is not called a function? (Perhaps it's called a procedure instead? Or something completely different?)
    • Even if there aren't, what if we add such a track in the future?
    • If there currently are or could be in the future, should we do anything about it? In other words, do we decide that we'll simply use a "function" as a generic terminology, regardless of how this concept maps onto the target language?

Anything else I'm missing?

Appendix:

$ grep -li "write a program" *.md
change.md
crypto-square.md
etl.md
food-chain.md
grains.md
luhn.md
protein-translation.md
scale-generator.md
sum-of-multiples.md
transpose.md
two-bucket.md

$ grep -li "write a program" *.yml
allergies.yml
all-your-base.yml
anagram.yml
beer-song.yml
binary-search-tree.yml
binary-search.yml
binary.yml
change.yml
flatten-array.yml
food-chain.yml
gigasecond.yml
grains.yml
hamming.yml
hello-world.yml
hexadecimal.yml
house.yml
kindergarten-garden.yml
largest-series-product.yml
leap.yml
luhn.yml
matrix.yml
minesweeper.yml
nth-prime.yml
ocr-numbers.yml
octal.yml
paasio.yml
palindrome-products.yml
parallel-letter-frequency.yml
pascals-triangle.yml
phone-number.yml
point-mutations.yml
protein-translation.yml
proverb.yml
queen-attack.yml
raindrops.yml
rna-transcription.yml
robot-name.yml
saddle-points.yml
say.yml
scale-generator.yml
scrabble-score.yml
secret-handshake.yml
series.yml
sieve.yml
space-age.yml
sum-of-multiples.yml
transpose.yml
triangle.yml
trinary.yml
twelve-days.yml
two-bucket.yml
word-count.yml
wordy.yml
zebra-puzzle.yml

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions