Prim's algorithm in CoffeeScript
This already seems pretty good considering you just started learning coffeescript.


for k, v of obj
     if v &lt; min_v
       min_v = v
       min_k = k



Personally, I'm a huge fan of comprehensions. I would change the above to the following.

for k, v of obj when v &lt; min_v
    min_v = v
    min_k = k


Your declarations at the top can be refined. No need for brackets/commas.


nodes_dir = {
0 : [1],
1 : [0, 2, 3, 5],
2 : [1, 4],
3 : [1, 4, 5],
4 : [2, 3],
5: [1, 3]
}



Can be simplified to just

nodes_dir =
    0: [1]
    1: [0, 2, 3, 5]
    2: [1, 4]
    3: [1, 4, 5]
    4: [2, 3]
    5: [1, 3]


Regarding the following


links.push link[current_node] if link[current_node] &gt; 0



Don't lookup the value in the array based on the index twice.

linkNode = link[current_node]
links.push linkNode if linkNode &gt; 0


Lastly,


intree = []
distance = []
link = []
parent = []

# set default values for record-keeping arrays
for i in [1..NUM_NODES]
    intree.push -1
    distance.push MAX_WEIGHT
    link.push -1
    parent.push -1



I would suggest creating an object that has these four arrays as properties, as well as putting that initialization code (the for loop) inside it's own method. This would add to clarity/reusability. Also, put all this code inside a coffeescript class declaration, which has a huge host of benefits.