This question got me thinking about cs1 and functional programming.

Do there exist anywhere statistics on what portion of schools teach cs1 using a functional paradigm? I know that some schools do, but I cannot find any compiled resource about it anywhere.

The paper "What Do “CS1” and “CS2” Mean? Investigating Differences In the Early Courses" by Matthew Hertz alludes to there being some sort of compiled resource, but I can't find it.

  • $\begingroup$ The SIGCSE list might be a better place for this one. I'm guessing someone there knows. $\endgroup$
    – Buffy
    May 14, 2018 at 20:47
  • $\begingroup$ Actually, perhaps I could reach out to Matthew Hertz directly and invite him to write a response. $\endgroup$
    – Ben I.
    May 14, 2018 at 21:00

1 Answer 1


While it's not complete and almost certainly not the reference mentioned in the paper, Philip Guo compiled a list of programming languages used in introductory courses at top 40 departments (as ranked by US&WN). The key result is this table:

which shows that the only functional language, Scheme, is used in roughly 12% of departments.

There are two problems I see with using this as a statement about CS education at-large: first, this is a sample of the top 40 research institutes, which may not be representative in terms of teaching habits.

Second, Guo (by his own admission) is counting both CS0 and CS1 courses in here. For example, he counts CS303E at UT Austin as an intro Python course, although it's intended as a half-semester language intro for non-majors. This may skew the appearance of certain languages in his data.

Finally, a note: in the comments section of that article is a statement that says

What we need is someone to resurrect the more comprehensive annual survey that I believe Jean E. Sammet used to do up to a few decades ago...

I wasn't able to find any record of this survey, but if "a few" means just one or two, then that might be the source you're looking for.

  • $\begingroup$ Scheme is "sort of" functional. Sure, it has a functional core, but it is very much procedural too. $\endgroup$
    – vonbrand
    May 18, 2018 at 12:20
  • $\begingroup$ You might be interested in scala, a functional sibling to Java that compiles to the JVM. $\endgroup$ May 30, 2018 at 0:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.