Win a copy of liveProject: Protecting User Data with Spring Security and OAuth2 this week in the Spring forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Paul Clapham
  • Ron McLeod
  • paul wheaton
  • Devaka Cooray
Sheriffs:
  • Jeanne Boyarsky
  • Tim Cooke
  • Liutauras Vilda
Saloon Keepers:
  • Tim Moores
  • Tim Holloway
  • Stephan van Hulst
  • Carey Brown
  • Piet Souris
Bartenders:
  • salvin francis
  • Mikalai Zaikin
  • Himai Minh

Online Course : "Algorithmic Thinking" by Rice University

 
Sheriff
Posts: 4977
319
IntelliJ IDE Python Java Linux
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Today is the beginning of the Rice University run course on Algorithmic Thinking hosted on Coursera

Rice University wrote:Experienced Computer Scientists analyze and solve computational problems at a level of abstraction that is beyond that of any particular programming language. This class is designed to train students in the mathematical concepts and process of "Algorithmic Thinking", allowing them to build simpler, more efficient solutions to computational problems.


I shall be attempting this course and I extend an open invitation for anyone to join us here at CodeRanch in taking the course too. I know at least one other CodeRanch staff member who has enrolled so you can be sure to find some great discussions and support as we go along. If I'm honest, it'll most likely be me looking for the support....

So without further ado, let's learn something new
 
author & internet detective
Posts: 40529
825
Eclipse IDE VI Editor Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I started the course. I have to say that it is one of the harder ones I've taken on Coursera. That said, it is well designed to make you think.

The quiz/homework is virtually impossible to guess on and the coding requires understanding. (I'm done with the project and have 2 sections left on the lab/application.)
 
Bartender
Posts: 2407
36
Scala Python Oracle Postgres Database Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I enrolled and worked through the first week's videos and notes, but there's no way I'm going to have time to do the homework etc, so I'll probably just "audit" the materials when I can, and maybe do the course properly next time it's available. Pity, because this one looks very promising so far, although Jeanne's right that it seems more...challenging... than some other Coursera courses. But hopefully in a good way!

Good luck!
 
Jeanne Boyarsky
author & internet detective
Posts: 40529
825
Eclipse IDE VI Editor Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Finished the lab/application. It was fun. They connected the questions well.
 
Saloon Keeper
Posts: 4380
163
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
A bit reluctantly, I decided to sign in a week ago. Reluctantly, because like Chris,
I didn't think I would have the time to do this properly.

Anyway, I was in for some shocks:

* you were supposed do to some programming in Python, of which I knew
nothing. And a long introduction video made me clear that these guys had
some very strict coding standards. Besides, they made it clear: if you don't
know Python, then this course wasn't for you.

* there were literally tons of video material to wade through and that was only
introduction material. Let alone the video's for Module 1 itself.

* I noticed that I had only 5 days to send in my Homework and the Projects.

* You were supposed to send in log-log plots of your outcomes; needless to say
that these too were under strict style requirements

So I thought that this was going to be a 'Mission Impossible'.

I decided to give it a try for this week, and stop if I found it would
take me too much time. That's one advantage of Coursera: since it's
free, you don't face any financial risk.

This Python is really amazing. If you come from Java, then you're in for a
huge culture shock. You do not give a type to variables, the functions
do not declare any return type, or indicate what types the parameters have,
indentation plays a major role, et cetera.

However, one thing saved my day: having done the course 'FP in Scala',
at least I knew what I had to look for: lists, ranges, hashmaps (which
are called 'dictionary'), useful methods in these, et cetera.

Well, it took me indeed many hours. For instance, they delivered
a class called 'DPATrial', which had a method '__init__(self, number)'.
It took me more than an hour to figure out how I could instantiate
this. What on earth is this 'self' thing?

But I managed to get my Application sent in yeasterday evening,
just before 'Strictly Come Dancing' started at the BBC.

Was it worth it? Yes! I had to produce a graph of citations,
and the plot of the in-degree distribution really said nothing to me.
I knew upfront that the ER algorithm would never be able to
produce anything like it, so I was wondering how this would end.
Then we had to implement another random graph generator (this
DPA thing), and I nearly felt off my chair: that produced a
plot that was almost exactly like that of the real data!
And that such a thing exists, that made it worth all the time
spent.

I wonder how this course will proceed. Chances are that
Module 1 was made easy, just to scare no one off. We'll
see.

Greetz,
Piet

 
Tim Cooke
Sheriff
Posts: 4977
319
IntelliJ IDE Python Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I'm glad you folks are getting on alright with this course. I, however, have fallen at the first hurdle and real life has meant that I have really struggled to make time to work on the assignments. I watched the week 1 set of videos and really enjoyed the content so was looking forward to putting it into action. There's even less chance that I'll be able to play catch up so I will most likely just bail at this point.

Hope you all enjoy the rest of the course, and please do have discussions in the Bunkhouse Lounge, I'll enjoy reading them.
 
Jeanne Boyarsky
author & internet detective
Posts: 40529
825
Eclipse IDE VI Editor Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Piet: The tests are good at telling you if you miss the style guidelines, so it didn't feel like a big deal. Of course, I took their previous course so the guidelines weren't new to me.

Tim: Are you planning on continuing with the videos?
 
Tim Cooke
Sheriff
Posts: 4977
319
IntelliJ IDE Python Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Yes, I may just watch the videos out of general interest.
 
Jeanne Boyarsky
author & internet detective
Posts: 40529
825
Eclipse IDE VI Editor Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
It was interesting doing the peer review for exercise 1 and seeing different explanations (right and wrong.)

I did the homework and project for module 2. Not sure if I'll have the time to do the application. Have a week to find out.
 
Jeanne Boyarsky
author & internet detective
Posts: 40529
825
Eclipse IDE VI Editor Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Just got around to reading my peer evals for Application 1. I somehow got an average of 50% for a question I got wrong in there. (And the choices are the score "0" or "1". Weird.
 
Jeanne Boyarsky
author & internet detective
Posts: 40529
825
Eclipse IDE VI Editor Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Module 2: I got everything done except one question. I couldn't figure out how to performance tune a python loop in the finite amount of time I had allocated for it. I did understand the spirit of the question at least.
 
Jeanne Boyarsky
author & internet detective
Posts: 40529
825
Eclipse IDE VI Editor Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Ok. I fold. I've spent too much time on this. I thought I would just stay in and watch the final lectures. But having access makes me keep wasting time on the Python implementation so I withdrew.

The problem is that the class is highly cumulative. If you can't get something working early in the week, that's pretty much it. It was fun up until this point. (Not that last module was easy/working. But I hit the point where I got stuck way later in the process so it didn't matter).
 
Piet Souris
Saloon Keeper
Posts: 4380
163
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
To my shame, I have to admit defeat, for the same reasons.

This course is simply way too much work. I started with no knowledge of
Python, but I had enough self confidence to believe that that would not be
relevant. Silly me...

First of all: the biggest problem I have with Python is the fact that nowhere
do you specify what type of variable you are dealing with, or what type
is returned from a function (if any!), and so I have an on going battle with
sets and lists.

Secondly: I had no time to check on mathplotlib or the CodeSkulptor equivalent,
so I had to write all my outcomes to disc, then do the plots in excel, exporting
the plots to Paint, and finally save them as png.

But these are only technical things. The real part is the amount of work that you
have to do. The Homework is okay, got 100% in the three modules so far, then
the Projects of modules 1 and 2 were doable, taking much time though.

But then the Application. It is as Jeanne describes: if you do not get some function
correct in the 'Project' phase, then that's by large the end of the story.
It happened to me in Module 2, where I somehow messed up the UPA function,
and got wrong outcomes. I did correct them in the end, but only after the deadline
has passed. Unfortunately, they give no test cases, where you can test your
functions other than in that 'Owltest'.

And then there's this paranoide 'StyleChecker', that peanalizes you when you have
a list of ints, and you say 'for i in list:'. Or for using more than one return, or for
using 'too many local variables', and I could go on for a while.

But it was this weeks module 3 that delivered the knock out. We had to implement
a function called 'kmeans_clustering', and I spent days to get it up and running.
But whatever I tried, this Owltest gave me all sorts of errors. It complained that
I returned a list in stead of a set, that I changed my input set, that I missed
a cluster, that I used the wron 'Cluster' class, well, you name it and I got this from
Owltest.
I did all I could, using single steppers, my own set of clusters, and in the end I couldn't
fault my function. Nevertheless, Owltest started afresh 'missed a cluster'. It tested
the function on a set of 111 clusters, and I was unable to find out where my
function failed.
So that was -20 point, and -10 points for the style, only 70 out of 100.
But with this malfunctioning function, I don't want to enter the Application.
If only for the fact that I spent an idiotic amount of time getting it all correct.

Well, I will finish module 4 as well, but my target was going for the 100%.

A very frustrated
Piet



 
Jeanne Boyarsky
author & internet detective
Posts: 40529
825
Eclipse IDE VI Editor Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Piet,
You got further than me. Congratulations. I didn't get it 100% working last week so the application/lab was wrong. Which meant I didnt get to see the point. This week, i couldn't get fast closest pairs to work. Or rather , it worked for my small test cases and that is it. I'm sure I could get it working if I spend lots of time on it. And that is why i dropped. With access to the class, I would spend that time.

And since this function is required for the rest of the homework and app, it seemed better to cut my losses and move on.

On a technical level, i did like the graphing lib. And Python can print out the type. Or you can look at [ vs { in the print state,ent. I was more peeved that the class uses the words set and list interchangeably.

I did know enough Python so i cant't say that was the reason.
 
Piet Souris
Saloon Keeper
Posts: 4380
163
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
hi Jeanne,

don't worry about one being further than another! It's not a race, if you can complete
this course, well, that seems victory enough.

This morning, I threw my 'kmeans_clustering' away, started afresh, this time
sticking as close to the guidelines as I could, and, still after a long struggle,
I got this beast correct. Biggest problem I faced this time was that instead of
sending a list of clusters, I was sending in a list of lists of clusters.

Of course, I'm still loosing to this 'StyleChecker', although I managed to loose
only 8 points, this time: twice on me using 'too many local variables', and twice
on me using 'too many branches'.

As a funny aside: if you copied their 'Cluster' class into your code, then you also
get punished heavily by this 'StyleChecker', for these Rice-guys also sin.

So I may have a go at the application, after all. It's too late for the project,
since you only got one chance, and I already used that.

But I repeat the Global Health Warning: this is a very hard course indeed, especially on the time needed.

Greetz,
Piet
 
Bartender
Posts: 1810
28
jQuery Netbeans IDE Eclipse IDE Firefox Browser MySQL Database Chrome Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Well, y'all have scared me enough that I won't even attempt this course. I just dropped out of "Introduction to Mathematical Thinking" because it was too difficult. I thought I was going to do well because I had no problem understanding the videos and the quizzes. Then came the first problem set and I realized that I was in way over my head.

On the upside, I'm really enjoying "Introduction to Interactive Programming with Python".
 
Jeanne Boyarsky
author & internet detective
Posts: 40529
825
Eclipse IDE VI Editor Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Piet Souris wrote:don't worry about one being further than another!


I'm not. I was trying to congratulate you. I dropped it due to lack of time, not lack of intellect .

Piet Souris wrote:Of course, I'm still loosing to this 'StyleChecker', although I managed to loose
only 8 points, this time: twice on me using 'too many local variables', and twice
on me using 'too many branches'.


I had those too. I fixed them by extracting to a helper method.

Piet Souris wrote:So I may have a go at the application, after all. It's too late for the project,
since you only got one chance, and I already used that.


Really? I thought you got multiple chances for that and it was just the homework that limited it. Or maybe I just use OWLTest until I was done.


J. Kevin Robbins wrote:On the upside, I'm really enjoying "Introduction to Interactive Programming with Python".


That was a really good course!
 
chris webster
Bartender
Posts: 2407
36
Scala Python Oracle Postgres Database Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Piet Souris wrote:his morning, I threw my 'kmeans_clustering' away...


.. and reached for scikit-learn?
 
Piet Souris
Saloon Keeper
Posts: 4380
163
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
NOW he tells me ...

 
Piet Souris
Saloon Keeper
Posts: 4380
163
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Just received my certification! Unexpected, since I missed most of the block 4 homework for lack of time.
I guess the 100% of block 3 saved the day. Overall score 71%. Well, I will attend this course some
next time, when I know upfront that I have the time available, and when my Python knowlegde is
good enough.

But all in all: this was a hard course. Unlike the 'introduction into Python' by nearly the same team from
Rice University, in this course there are no jokes! Serious business, with some tough theory (but very
doable), and especially the homework is very time consuming.

So, if you ever wanted to know some efficient algorithm to get the two points that are closest,
from a collection of points in the 2D plane, then this course is for you! But again: be prepared
for a lot of tough hours.

Now, just sent in my 'Spaceship' assignment in the Python introductory course, so entering
the final week of that course too.

Greetz,
Piet
 
Jeanne Boyarsky
author & internet detective
Posts: 40529
825
Eclipse IDE VI Editor Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thanks for sharing how the rest of the course was.
 
reply
    Bookmark Topic Watch Topic
  • New Topic