Cocoa is fundamentally objects that perform on other objects.
I think it would be better to say Object Oriented Programming is all about objects. In ObjC, you send messages to objects, while in other languages its refered to (although it's really the same thing) as calling methods or functions off of an object. Cocoa is just a set of API's that apple put together that makes it simple to do the hard and tedious stuff, so that programmers can focus on making their apps unique.
Memory management. In all of apple's API's, if you call a method and it returns an object, that object will be autoreleased and have a retain count of 1 (except for stuff like shared instances). Essentially, it will go away as soon as the set of curly braces that the object was created between are passed through. At that point, the NSAutorelease pool checks to see that the object is set to be automatically released, and the object is sent a release message. Now the retain count is 0, and the objects dealloc method is called. If you use alloc before an init* creation or if you send your object a retain message, then after the autorelease pool does its stuff, your object will still have a retain count of 1 or more (depending on how many retains you send your object), and so it will not be totally eliminated.
When you add objects to containers like NSArray's, NSDictionary's, and NSSet's, they are automatically sent a retain message, and when they are removed from the container (either because the container is being deallocated, or because the object is being removed manually), that object is sent a release message (actually, it might be an autorelease message, that might be safer). Therefore, if I alloc and init an object, then add it to an NSMutableArray, that object will not be deallocated after the NSMutableArray is deallocated. I have to send that object a specific release or autorelease message to get rid of it. Just keep track of your retains, allocs, releases, and autoreleases, and make sure your methods are returning autoreleased objects whenever possible, and memory management shouldn't be too much of a headache.
If people need help with Obj-C/Cocoa, just ask! If the tutorials aren't hard enough, ask for some problems. The way I learned all the API's was trying out new programs to make and asking lots of annoying questions on the macosx-dev =)
F-bacher