top | item 7103425

Paradigms of Computer Programming

45 points| nextos | 12 years ago |edx.org | reply

"This course covers functional, object-oriented, and declarative dataflow programming in a unified framework."

Probably a fantastic course that follows CTM, which I have always thought to be in many respects SICP's sequel: http://c2.com/cgi/wiki?ConceptsTechniquesAndModelsOfComputerProgramming

24 comments

order
[+] chrisdevereux|12 years ago|reply
Another upcoming edx course that might be of interest to people on here:

https://www.edx.org/course/utaustinx/utaustinx-ut-5-01x-line...

    Linear Algebra - Foundations to Frontiers

    Learn the theory of linear algebra hand-in-hand with the practice of software library development.
(can't post a thread of its own, as was submitted too recently)
[+] muraiki|12 years ago|reply
I'm very much lacking in math education and this seems like it would be a great approach for learning linear algebra. Do you know how this compares with "Coding the Matrix: Linear Algebra through Applications to Computer Science"? The two approaches sound very similar.
[+] adamnemecek|12 years ago|reply
I recently stumbled across the book that the course is based on (written by the guy teaching it) and while I have not had the time to really get into it, it is almost as important as SICP (not just my opinion) and more applicable to most people's day-to-day programming. If you have not heard of it, you should check it out.
[+] raphinou|12 years ago|reply
I've had the chance to have peter van roy as professor, and i found his courses on programming paradigms the resource that made me progress the most in programming. It is fascinating how advanced concept (eg classes) are built on simple constructs. I also discovered dataflow variables during that course.

Even if you are a programmer, this course could teach you a lot. Very much indicated! And the language Oz is easy to learn, dont be afraid of it!

And if you dont follow the course, at least check the book, it is a gold mine!

[+] spenuke|12 years ago|reply
I've just begun chapter 2 of SICP. Can anyone familiar with Van Roy's book (or the edX course?) suggest whether it would be worth putting SICP on hold in order to work through the edX course?
[+] radiowave|12 years ago|reply
I would say so. I've had a copy of the CTM book for a while, and while I've never made it all the way through the book, it is excellent, very readable. The whole thing is structured around how to teach the subject absolutely from first principles, so there's no brick wall of assumed knowledge to run into.

I'll be taking the edX course.

[+] jimmaswell|12 years ago|reply
Why would imperative not be a "main" paradigm? Such as from C?
[+] aidenn0|12 years ago|reply
I didn't see "procedural" listed among the paradigms. I find that odd, particularly as it seems to be, by far, the easiest to teach to beginners.
[+] Myk267|12 years ago|reply
You shouldn't find it odd.

The course is about teaching interesting paradigms and how they can be used to solve problems, not teaching the easiest thing to beginners.

The why not procedural/imperative answer /might/ be: we already know how to do that. That stuff is everywhere. Why not take a little time to learn something different that may in fact have some real benefits?

[+] adamnemecek|12 years ago|reply
I'm guessing that that is implied since it's not the 60's anymore.
[+] ExpiredLink|12 years ago|reply
> This course gives an introduction to all major programming concepts, techniques, and paradigms

IMO, there are no paradigms in computer programming. The concept of a paradigm is overkill for describing the guiding principles that some programmers use sometimes. People who don't buy into a 'paradigm' are not heretics and charlatans. tldr: principles, concepts, techniques yes, 'paradogmas' no.

[+] grey-area|12 years ago|reply
Your ideas are like a whole new way of looking at programming; a new paradigm if you will.

People like patterns and rules, as long as there are people I think there'll be paradigms in programming - a paradigm is after all just a way of looking at the world. I see where you're coming from (that you should remain flexible in the face of change, and not become rigid and unthinkingly follow rules set down by others), but you can't escape forming opinions about the right way to proceed in a given discipline - I think we're hardwired for it.

[+] justin66|12 years ago|reply
Peter Van Roy is teaching all these out of the same programming language, and there's no charlatanism implied in choosing one technique over the other. You might find the course a lot more interesting than you think.
[+] jonsen|12 years ago|reply
What paradigm-free programming languages do these non-paradigm-buying programmers use?