
Concepts in Programming Languages - g3orge
http://www.cl.cam.ac.uk/teaching/1011/ConceptsPL/
======
akg
Has anyone looked at How to Design Programs? <http://www.htdp.org/>

It seems to steer away from PL details and focus more on how to design
programs and think about programming.

------
daviddaviddavid
No logic programming?

I'll add Robert Kowalski's "Predicate Logic as Programming Language" to the
reading list.

------
verroq
How can Scala be state of the art when it is so bad. They probably meant to
say newest, in which case I nominate Dart to take Scala's place.

~~~
oacgnol
Perhaps it's not Scala but the paradigms that define it that are "state of the
art". Multiple paradigms like functional programming, OOP, and other nice
syntactical things make Scala very much a language of the future, even if its
current implementation is poor. It's a marker to where we may be headed in
language development.

------
c3d
A general approach to concepts in programming languages is called, obviously
enough, concept programming. See
[http://xlr.sourceforge.net/Concept%20Programming%20Presentat...](http://xlr.sourceforge.net/Concept%20Programming%20Presentation.pdf)
or <http://en.wikipedia.org/wiki/Concept_programming> for more info.

------
shaunxcode
the ommision of APL makes me sad.

~~~
LearnYouALisp
Something something subset Lisp.

~~~
shaunxcode
I like the cut of your jib, however: I believe APL actually exposes you to an
even higher(est) order of abstraction which makes you truly confront the meat
of the problem space/algorithm v.s. allowing for a few sessions of syntax
abstraction before you get down to business. Believe me I LOVE lisp, but I
also recognize that many times I enjoy it because it allows me to create these
amazingly succinct domain specific languages before ever "getting to work".
When I attempt to write/think something in APL I find myself actually just
pondering the problem. It was the language in which I realized math was my
true (and neglected) love.

Also: <http://archive.vector.org.uk/art10500180> \- great article on array
languages for lisp programmers.

~~~
LearnYouALisp
Thank you for explaining the conceptual framework APL provides. My comment was
merely poking a little fun at the kind of comments we sometimes see when
people are trying to the tell the virtues of Lisp. I could not say much about
APL but did want to find out if it really gives you a new way of thinking.

------
dpkendal
If Cambridge made a textbook of this, and did it right, it could be a _very_
effective replacement for the great, but ageing, SICP.

~~~
extension
Might be a bit ambitious covering Fortran, Lisp, C, Smalltalk, Scala, and more
in an intro to programming course. This looks more like a history and
comparison of languages.

~~~
dpkendal
To an extent, you're right. But SICP already covers most of the _concepts_ of
these languages -- it just chooses to cover them all in Scheme, with a
functional bias. I don't see why differing syntax should affect the teaching
of the concepts, as long as focus is maintained on one language when it comes
to actual programming. That said, this course as it is does teach too broadly
to be an effective intro to CS.

~~~
motxilo
It is not just a difference in syntax, it is about the core. While all those
programming languages are great in their respective areas, Scheme is directly
based on the lambda calculus and as such it defines a minimal amount of
primitives/constructions, on top of which you can build almost any other
concept from scratch. This is great for a person learning the ropes.

