

Paradigms of Computer Programming - nextos
https://www.edx.org/course/louvainx/louvainx-louv1-01x-paradigms-computer-1203
&quot;This course covers functional, object-oriented, and declarative dataflow programming in a unified framework.&quot;<p>Probably a fantastic course that follows CTM, which I have always thought to be in many respects SICP&#x27;s sequel: http:&#x2F;&#x2F;c2.com&#x2F;cgi&#x2F;wiki?ConceptsTechniquesAndModelsOfComputerProgramming
======
chrisdevereux
Another upcoming edx course that might be of interest to people on here:

[https://www.edx.org/course/utaustinx/utaustinx-
ut-5-01x-line...](https://www.edx.org/course/utaustinx/utaustinx-
ut-5-01x-linear-algebra-1162)

    
    
        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
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.

~~~
ambler0
I signed up for "Coding the Matrix" and didn't finish. Before that, the last
math I had studied was Calc 1 during my freshman year of college, over a
decade ago. My impression was that it seemed like a good class and a good
professor, but it moved quite quickly and was hard to follow for people
lacking a background in higher math. I did get very comfortable with writing
comprehensions in Python, though.

I still want to learn Linear Algebra, myself, so if anyone has suggestions,
please post them.

~~~
VLM
Hit archive.org or whatever for "Strang Linear Algebra" and you'll see the MIT
OCW videos for free. The quality is, um, very turn of the century, but you're
watching to learn, not critique video codecs.

If you want to spend money, from my bookshelves:

Strang (the guy in the videos above) knows one or two things about Linear
Algebra. His textbook is legendary. Bring lots of $$$, like three figures.

"The Manga guide to Linear Algebra" Yes, that is exactly what it sounds like.
I think if you have to start somewhere, maybe this is it. Cheap. $

"Matrices for Engineers" by Kraus. There's about 50 textbooks along the lines
of linear algebra matrices for engineers programmers using $math_application
or $calculator or $chicken_entrails and similar title permutations. You'd
think every engineering program in the nation is required to use a different
text. This particular text was pretty good. If I recall correctly, reasonably
priced $$.

I would suggest reading them in the order of the comic book, the engineer book
(or any of the dozens of equivalent college texts), and Strang. Coincidentally
thats also order of price.

At one time I understood everything in the comic book and the engineer book.
That was a long time ago. Strang mystified me in parts. So I'm not going to
pretend to have THE perfect answer. It is entirely likely in the last decade
someone has written the Uber text to replace them all. Probably a new edition
of Strang is out by now.

I would estimate the effort required to be about one programming language.

Best of luck to you.

~~~
nextos
IMHO the uber text for intro LA is Axler's.

------
adamnemecek
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
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
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
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
Why would imperative not be a "main" paradigm? Such as from C?

------
aidenn0
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.

~~~
adamnemecek
I'm guessing that that is implied since it's not the 60's anymore.

~~~
aidenn0
and yet I would guess that the majority of code written today is done largely
in the procedural style. perhaps the reason for omitting it is that it it's
assumed all students will be familiar with it. breaking it down into
structured and unstructured would be archaic though.

~~~
eronhp
You are right on both counts, It is not a beginners programming course,
knowledge of procedural/imperative programming is assumed.

------
ExpiredLink
> _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.

~~~
jonsen
What paradigm-free programming languages do these non-paradigm-buying
programmers use?

~~~
VLM
I think he's aiming at something like older languages tended to do only one
paradigm, or at most only do one of them well, but you can do a reasonable
approximation of functional and OO in Scala, for example.

Observationally it seems harder to mix design patterns between paradigms than
to merely merge language features.

