Another data point from “The Art of Prolog”, pp.11:
Logic programs can incorporate alternative definitions, or more technically disjunction, by having alternative rules, as for parent :
parent(X,Y) ← father(X,Y) .
parent(X,Y) ← mother(X,Y) .
Another data point from “The Art of Prolog”, pp.11:
Logic programs can incorporate alternative definitions, or more technically disjunction, by having alternative rules, as for parent :
parent(X,Y) ← father(X,Y) .
parent(X,Y) ← mother(X,Y) .
We still teach a semester of logic in first year and then a semester of logic programming and constraint programming in third year. I think the places that have given up on Prolog and even on logic are the ones that tend to follow fads, etc. There are only a handful of programming paradigms, with logic programming being the most different one from the others, and many top places still understand that a computer scientist is simply not complete without learning about logic programming (the same as with functional programming). I hope the relevance of Prolog and (C)LP will only increase with the growing relevance of neurosymbolic computing.
Btw, teaching (constraint) logic programming / Prolog to CS students that are already very capable with imperative programming has some challenges, but our students systematically tell us that the course widens their programming horizons. If all this is interesting for you, some of our experiences are reflected in a few papers, e.g., Some Thoughts on How to Teach Prolog, in Prolog - The Next 50 Years, Springer LNCS 13900, July 2023, or Teaching Pure LP with Prolog and a Fair Search Rule. Proc. 40th ICLP Workshops, CEUR-WS.org, Vol. 3799, October 2024. Also, the Prolog Education group organizes workshops, online discussions, and meetings related to teaching Prolog.