Coursera Programming Languages Course

  • (10 Pages)
  • +
  • « First
  • 7
  • 8
  • 9
  • 10

136 Replies - 67056 Views - Last Post: 30 March 2013 - 02:47 AM

#121 blackcompe  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 1159
  • View blog
  • Posts: 2,547
  • Joined: 05-May 05

Re: Coursera Programming Languages Course

Posted 21 March 2013 - 01:45 PM

Quote

However, the class as a whole seemed more geared at an ideological point, and an incoherent one: Functional Programming is "better" than Object-Oriented Programming. This, to me, is both boring and wrong. It's clear to me that there are advantages in functional programming, I was more interested in learning more about how to make use of those advantages. Instead, I got the same old "FP good, OOP bad". So I bailed out and started writing exercises out of Sedgewick, in Ruby.


Grossman definitely put FP on a pedestal a few times, but his reasons were well-received. I thought the SML implementation for HW7 was a bit easier to deal with, especially since the Ruby code needed the double dispatch to do the same thing. Grossman did the functional decomposition segment comparing the tradeoffs of using FP vs OO, and I thought he did a good job. He gave a few examples where he preferred OO over FP, one of them was in GUI programming. Writing an interpreter/compiler in a functional language is so much more elegant, but extending it would be a pain.

I don't think the intent of HW7 was to show that OO is bad, but rather to show what was needed in both implementations. He also wanted to make sure that we really used OO instead of using reflective techniques (is_a(), class(), etc).

Quote

Jon, it's a shame to drop out of the class on the penultimate hurdle. There was a lot of value for me in the course. It's consolidated the little bits of FP I already knew and has given me a solid foundation to build on. Enrolling has been one of the better decisions I've made for a long time. I do get the impression from your posts that your experience has been the exact opposite.


To be honest, I sort of flew through the course, but I still feel like it was worth my time. I didn't do any reading outside the lectures and course notes. I feel like I understand the thought process that goes into the design of languages a little bit better than I did before. It was nice to have a reason to use Ruby. It has a lot of things I wish Java had. Those stupid @ symbols though!!!! Jeez that's annoying.

Are any of you taking the Design Patterns course?
Was This Post Helpful? 0
  • +
  • -

#122 jon.kiparsky  Icon User is offline

  • Screw Trump (before he screws you)
  • member icon


Reputation: 10604
  • View blog
  • Posts: 18,117
  • Joined: 19-March 11

Re: Coursera Programming Languages Course

Posted 21 March 2013 - 01:54 PM

I think I'm going to let coursera rest for a little while. I've got plenty to work on. I might follow along with Sedgewick's Algorithms II, because it looks like there's some material there I haven't covered formally, but I'll probably write the code in Ruby, just for practice. :)

Quote

Grossman did the functional decomposition segment comparing the tradeoffs of using FP vs OO, and I thought he did a good job


Except he seems to think there's a coherent distinction to make between OO and FP. You took Odersky's class, so you know that's nonsense! :)
Was This Post Helpful? 0
  • +
  • -

#123 blackcompe  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 1159
  • View blog
  • Posts: 2,547
  • Joined: 05-May 05

Re: Coursera Programming Languages Course

Posted 21 March 2013 - 02:13 PM

Quote

Except he seems to think there's a coherent distinction to make between OO and FP. You took Odersky's class, so you know that's nonsense!


Grossman said the difference between the two is how you look at the functional decomposition (whether by row or column). It's two different perspectives of exactly the same thing. They accomplish the same thing, but with different styles of programming. That's distinctive to me. Perhaps I don't understand the point you're trying to make.

This post has been edited by blackcompe: 21 March 2013 - 02:23 PM

Was This Post Helpful? 0
  • +
  • -

#124 jon.kiparsky  Icon User is offline

  • Screw Trump (before he screws you)
  • member icon


Reputation: 10604
  • View blog
  • Posts: 18,117
  • Joined: 19-March 11

Re: Coursera Programming Languages Course

Posted 21 March 2013 - 02:59 PM

Quote

I really don't understand what you're saying here, but Grossman said the difference between the two is how you look at the functional decomposition


What I'm saying is, there's nothing about functional programming that says you can't have objects, and there's nothing about objects that says you can't have closures and the rest of it, and for that matter there's nothing about either that says you have to be working on evaluation-of-expression rather than exectution-of-statement. For example, see javascript: fully imperative, object-oriented, totally functional in any reasonable sense. Not a language I really enjoy using, frankly, but if you think there's a coherent distinction to make between FP and OOP, or that FP can't be imperative, then javascript is a bit of a hitch in your getalong. Scala, as you know, is also as functional as a language can get, and also fully object-oriented. Since it's based on ML, it's fundamentally expression-evaluating rather than statement-executing, but that doesn't mean much - if you look at the Emacs source code you'll see plenty of pretty imperative expression-evaluating code. (I think you'll agree that setq is pretty imperative, no?)

So talking about FP "versus" OOP is simply idiotic. There's no versus. They're both good tricks, and modern languages uniformly support both.
Was This Post Helpful? 1
  • +
  • -

#125 blackcompe  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 1159
  • View blog
  • Posts: 2,547
  • Joined: 05-May 05

Re: Coursera Programming Languages Course

Posted 21 March 2013 - 03:29 PM

You're saying that either FP or OOP can have any of the things that the opposing paradigm has, but Grossman's presentation makes it seem like you get this with this and that with that. It's like he's creating two camps (which is I guess what you were getting at earlier in thread). You're right, Scala is the successful hybrid of the two that makes the differentiation seem illogical. Experts have anyways contrasted the two, but now Scala is breaking that mold. Very well put.

I still think his whole bid on functional decomposition made a lot of sense though, and effectively shows the advantages/disadvantages of the two when it comes to designing a system. For instance, using OOP when you expect to add new data types and FP when you expect to add new operations to existing types. I think that's of great importance when it comes to maintainability.

As you can see though, we're talking about two different things, but I understand and agree with the point you're making.

This post has been edited by blackcompe: 21 March 2013 - 03:36 PM

Was This Post Helpful? 0
  • +
  • -

#126 cfoley  Icon User is offline

  • Cabbage
  • member icon

Reputation: 2385
  • View blog
  • Posts: 5,005
  • Joined: 11-December 07

Re: Coursera Programming Languages Course

Posted 21 March 2013 - 03:53 PM

Quote

Are any of you taking the Design Patterns course?


I'm enrolled on a course on Semantic Program Design. Is that the one you mean?
Was This Post Helpful? 0
  • +
  • -

#127 blackcompe  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 1159
  • View blog
  • Posts: 2,547
  • Joined: 05-May 05

Re: Coursera Programming Languages Course

Posted 21 March 2013 - 04:01 PM

Quote

I'm enrolled on a course on Semantic Program Design. Is that the one you mean?


Do you mean Systematic Program Design? But no I'm talking about the POSA course. I'm playing catch up. It's a course of GoF patterns and frameworks. The course culminates with an Android programming assignment, which is supposed to get us familiar with industrial patterns and frameworks, and hopefully get me on the track to getting more design experience. I'm tired of low-level algorithmic coding. It's time to branch out into bigger endeavors.
Was This Post Helpful? 0
  • +
  • -

#128 cfoley  Icon User is offline

  • Cabbage
  • member icon

Reputation: 2385
  • View blog
  • Posts: 5,005
  • Joined: 11-December 07

Re: Coursera Programming Languages Course

Posted 21 March 2013 - 04:28 PM

Ah, no. I thought that one looked good but decided it's not what I want to concentrate on right now. I've been really wanting to concentrate on programming languages for the past couple of years. What started out as just the desire to be able to code in more than just Java and VB.NET has turned into a fascination with programming concepts, language design and languages in general. I'm continuing down that path to see where it takes me.

In terms of MMOCs I've for the following lined up:

Functional Programming in Scala
For obvious reasons, and because it's taught by the inventor of Scala

Introduction to Systematic Program Design
Mainly because I'm interested in getting deeper into lisp and I think this will give me a good chance

Creative Programming in Digital Media and Mobile Apps
Because I thought their intro video was really well put together. Looks like it might be a fun course too.

Bioinformatics Algorithms Part I
Because it's linked to the awesome site http://rosalind.info which I am slowly making my way through using Racket.

Apart from these courses, I really want to get deeper into Racket, Smalltalk and Ruby (in that order). I want to at least tackle a decent-sized project in each to give me a feel for them. I'm also beginning to realise that logical and declarative programming are absent form my repertoire. I need to do my background reading but Prolog might be the way to go for the former.
Was This Post Helpful? 0
  • +
  • -

#129 blackcompe  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 1159
  • View blog
  • Posts: 2,547
  • Joined: 05-May 05

Re: Coursera Programming Languages Course

Posted 21 March 2013 - 06:15 PM

Programming languages and compiler design have interested me for the past few years as well.

Quote

Creative Programming in Digital Media and Mobile Apps
Because I thought their intro video was really well put together. Looks like it might be a fun course too.


Hmmm...never heard of the Processing programming language. Looks fun. I think programming mobile devices would add
a new level of excitement to programming, at least for me anyway. Maybe force me to tinker around with my creations, show them off, and add features as I see fit. People will download anything these days.

I'm really excited for Startup Engineering. Anything to get me closer
to the reality of creating production software.

Quote

Because it's linked to the awesome site http://rosalind.info which I am slowly making my way through using Racket.


There are so many amazing tools coming out day, it's hard to keep up. I always shied away from Bioinformatics. I figured you needed
quite the background in Biology to even begin to do anything useful. I'm assuming Rosalind helps to strengthen whatever one of the two
(programming or bio) you need help with. Functional programming and concurrent programming seems like a good fit for this area.
Was This Post Helpful? 0
  • +
  • -

#130 cfoley  Icon User is offline

  • Cabbage
  • member icon

Reputation: 2385
  • View blog
  • Posts: 5,005
  • Joined: 11-December 07

Re: Coursera Programming Languages Course

Posted 25 March 2013 - 04:17 PM

Well, that's the final exam done and the last peer assessment completed. Just waiting for my final grade now. Overall, I think the course has been excellent. I was vaguely aware of most of the stuff Dan talked about so to have it explained for me in detail with examples and exercises was really great.

Could I have learned it all myself by reading? Yes. In ten weeks? I think either I would have delved too deeply in one thing or got distracted by something shiny. Also, there is no chance I would have spent so long doing example exercises.
Was This Post Helpful? 0
  • +
  • -

#131 blackcompe  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 1159
  • View blog
  • Posts: 2,547
  • Joined: 05-May 05

Re: Coursera Programming Languages Course

Posted 25 March 2013 - 06:04 PM

Quote

Well, that's the final exam done and the last peer assessment completed. Just waiting for my final grade now. Overall, I think the course has been excellent. I was vaguely aware of most of the stuff Dan talked about so to have it explained for me in detail with examples and exercises was really great.


The practice exam actually looked kind of tough. Tough enough to make me want to study a bit before taking the exam. The Ruby stuff should be easy, but I need to freshen up on streams and Racket semantics. I need a 70 on the exam to get an A. I'd hate to not get it.
Was This Post Helpful? 0
  • +
  • -

#132 cfoley  Icon User is offline

  • Cabbage
  • member icon

Reputation: 2385
  • View blog
  • Posts: 5,005
  • Joined: 11-December 07

Re: Coursera Programming Languages Course

Posted 26 March 2013 - 02:04 AM

My impression was that the real exam was about the same difficulty as the practise one. Out of curiosity, how do you know what you need for an A, or that there even is a grade A?
Was This Post Helpful? 0
  • +
  • -

#133 blackcompe  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 1159
  • View blog
  • Posts: 2,547
  • Joined: 05-May 05

Re: Coursera Programming Languages Course

Posted 26 March 2013 - 04:55 AM

Look through the "Course Logistics" section. I can't remember, but I want to say some of the certificates print a number grade. Coursera keeps track of the number grade (out of 100) in the "Course Records" page. Generally speaking an "A" is a 90 or better, but most courses only concerned with whether you get at least 70 percentage points. Sometimes if you do well, a certificate will say "passed w/ distinction", "took mastery track", etc.
Was This Post Helpful? 0
  • +
  • -

#134 blackcompe  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 1159
  • View blog
  • Posts: 2,547
  • Joined: 05-May 05

Re: Coursera Programming Languages Course

Posted 29 March 2013 - 01:30 PM

The final wasn't bad at all. I got an 84 and that's with making a stupid mistake that cost me a few points. I really enjoyed that class. High-quality content. On to the next one.
Was This Post Helpful? 0
  • +
  • -

#135 cfoley  Icon User is offline

  • Cabbage
  • member icon

Reputation: 2385
  • View blog
  • Posts: 5,005
  • Joined: 11-December 07

Re: Coursera Programming Languages Course

Posted 29 March 2013 - 01:48 PM

Cool. Hope you get that A! I've just finished writing a review of the course. I'll post it on my blog shortly.
Was This Post Helpful? 0
  • +
  • -

  • (10 Pages)
  • +
  • « First
  • 7
  • 8
  • 9
  • 10