Slashdot Mirror


Stanford Offers Cocoa Class

An anonymous reader writes "Back in the early 90's Stanford University offered a class on Objective-C for students interested in writing applications for NeXTSTEP. After a long hiatus it appears that class will be offered again as CS193E, 'Object-oriented User Interface Programming.' It will be covering the Apple development tools, Objective-C, Foundation and AppKit, and Quartz. Any other schools out there planning or already offering Objective-C courses?"

91 comments

  1. textbooks? by TomSawyer · · Score: 2, Interesting

    I wonder if they'll be using O'Reilly's ADC blessed books for texts.

    --
    If you disagree then it must be overrated, redundant or trolling.
    1. Re:textbooks? by Anonymous Coward · · Score: 1, Interesting

      Possibly... but I would guess they'll just point to the O'Reilly books as extra resources.

      More likely they'll just have the instructor create specific handouts. That was how things were done when I was there... It is cheaper and a lot of times the handouts are better resources for the students as they also serve as notes for the lectures.

  2. great by lordholm · · Score: 0, Offtopic

    Now I just have to get one of these into my school Chalmers... oh well, at least we don't us Windows that much here in the CE-department.

    --
    "Civis Europaeus sum!"
    1. Re:great by lordholm · · Score: 0, Redundant

      Just why the H was I modded offtopic for. I commented that it would be good to have some Cocoa based classes elsewhere, and added that I at least survived in my current school.

      HOW IS THIS DEMED OFFTOPIC?

      --
      "Civis Europaeus sum!"
  3. Others? Yes! by Anonymous Coward · · Score: 1, Funny

    It's called CS 699 - Independent Study.

  4. Strange by nepheles · · Score: 5, Insightful

    It seems strange that Objective-C has failed to attract the popularity of C++, given that it seems (to me at least) by far the more elegant of the two. It implements object-oriented programming in a much cleaner way than C++, and still loses none of the power of C. What Java should have been, really

    --
    ((lambda x ((x))) (lambda x ((x))))
    1. Re:Strange by quandrum · · Score: 4, Funny

      It's "too different" from C. I hear this all the time when talking about Obj-C. The object syntax using brackets instead of dots is apparently uncomprehendable to your average programmer.

      Or rather, the 10 minutes it takes to get used to the syntax is too grand to the lazy programmer.

    2. Re:Strange by DLWormwood · · Score: 4, Interesting
      The object syntax using brackets instead of dots is apparently uncomprehendable to your average programmer.

      I don't know... C++ has some strange syntax and greater-than/less-than usage, especially when you get to using templates.

      Obj-C didn't take off because NeXT didn't take off. The only reason Obj-C is still being talked about is that Apple inherited it for the once and future Mac OS.

      --
      Those who complain about affect & effect on /. should be disemvoweled
    3. Re:Strange by jcr · · Score: 4, Interesting

      I'd chalk that up to history. C++ was promulgated by Bell Labs, and you could get it for free from FSF.

      Objective-C was offered by a tiny software company called StepStone, and for the first couple of years, you had to either buy a NeXT computer for about five grand, or pay StepStone something like $500 for it.

      -jcr

      --
      The only title of honor that a tyrant can grant is "Enemy of the State."
    4. Re:Strange by rixstep · · Score: 2, Interesting

      Thank you, jcr. It was Brad Cox who owned StepStone and who invented Objective-C, and didn't he patent the language?

      A lot of other companies didn't use it, what I understand, because they couldn't access it.

      What a shame...

  5. gay linux fanboys love the frosty pisshole! FP FP by Anonymous Coward · · Score: 0

    Having these kinds of courses is great news for university students. But how specific to Apple UI programming is it? For a university like Stanford, I would sincerely hope that they are focusing on good generic UI design (which just so happens to run on OS X) rather than a "how to write OS X code" type of course. That sort of training belongs in the technical schools, where they teach you the "what" and "how" instead of the "why".

  6. Why? by altp · · Score: 1, Troll

    Why is there a class teaching a specific language and development tools?

    Would it not be better to teach the students HOW to program well, and let them implement the concepts in the language of their choice? Perhaps doing a "Language of your choice, but you can't use the same language twice" kinda thing.

    They would learn OOP, learn how to learn another language, and perhaps actually understand how an algorithm works instead of coping it from the text book in the language that the book goes over.

    1. Re:Why? by JoshWurzel · · Score: 5, Insightful

      Would it not be better to teach the students HOW to program well

      There is. It's called the rest of the CS program at the school. They teach OOP-concepts, algorithms, etc.

      This class is more specific. And optional. No one is forced to take it. And Cocoa isn't a language, its a set of API's. It just happens to use Objective-C. With macs being such a minority in schools, I don't see why its a problem to have an optional (probably student-run) class to each people how to develop for the mac.

    2. Re:Why? by GlassHeart · · Score: 4, Funny
      Would it not be better to teach the students HOW to program well, and let them implement the concepts in the language of their choice?

      You are right, but have you tried putting that on a resume?

      Languages: None, but I program well and can implement the concepts in a language of my choice
      That's the unfortunate fact of life graduates will have to cope with, so every school must cater to the Real World as well, to some degree.
    3. Re:Why? by phch · · Score: 5, Informative

      This class is in the Stanford CS193 series, which consists of lighter workload classes often taken by students outside the CS department, and geared for specific technologies. I don't believe CS majors get much credit for taking these classes. The core CS classes at Stanford are much less focused on details of specific languages (although Java is featured in the main intro OOP class; I guess you have to pick something).

      Stanford has offered classes in .NET, Microsoft MFC, and Java, so a class in Cocoa is not too surprising.

    4. Re:Why? by Anonymous Coward · · Score: 0

      This is what you're asking for. God knows there are a million fucking java classes. I hate java.

    5. Re:Why? by Anonymous Coward · · Score: 0

      The 193 series does not count towards a CS major. All of the classes that do count towards the major are not language specific.

      Strangely, one can use a class or two from the 193 series to fufill the requirements of the EE major.

    6. Re:Why? by Anonymous Coward · · Score: 0

      Who modded this exasperating moron up to 'insightful'?

    7. Re:Why? by benedict · · Score: 1

      Working with a specific system lets you see how
      real-world implementors traded off between
      different desirable goals.

      When theory meets reality, both of them change.

      IIRC, John Lions wrote a little about this in the
      intro to his _Commentary On Sixth Edition UNIX_.

      --
      Ben "You have your mind on computers, it seems."
  7. Re:gay linux fanboys love the frosty pisshole! FP by King+Babar · · Score: 1
    An anonymous coward writes:
    Having these kinds of courses is great news for university students. But how specific to Apple UI programming is it? For a university like Stanford, I would sincerely hope that they are focusing on good generic UI design (which just so happens to run on OS X) rather than a "how to write OS X code" type of course. That sort of training belongs in the technical schools, where they teach you the "what" and "how" instead of the "why".

    This is Stanford, so I'm guessing they will make it more than just a course where you happen to write some programs for the Mac.

    But the real question *I* have for the poster is WHY did you post this this comment under the subject line: gay linux fanboys love the frosty pisshole FP FP? Your comment had *nothing* to do with the subject line...

    --

    Babar

  8. Berkeley teaches Cocoa courses by JoshWurzel · · Score: 5, Informative

    UC Berkeley has already had a handful of Cocoa and mac development courses, most taught by my roommate. These courses, though student run, earned real CS credits and had labs, projects, etc. He just graduated, so someone else will have to take up the torch. And it won't be me.

    Personally, I think its a great idea. Many, many students get out of CS schools with vague notions of how to write a compiler in LISP, or what the best way to implement XYZ (without understanding why it SHOULD be implemented). As if anyone cares. Macs may be a small market, but a Cocoa class is teaching a useful, marketable skill that can be directly applied to real-world application development.

    1. Re:Berkeley teaches Cocoa courses by Anonymous Coward · · Score: 0

      Well, that explains why Stanford added the course... we couldn't have Kal offering something that cool without doing something similar ourselves!

  9. Re:Why? Don't Know by Doc+Squidly · · Score: 1

    Yes, this seems like a class that should be an elective after the basic OOP course.
    Wouldn't it be better to focus (as an elective course) on cross-platform development like Java, which can run on Mac?

    --
    I think I think, therefore I think I am.
  10. Original headline by transient · · Score: 4, Funny
    Headline should've been:
    [[Stanford alloc] init]
    ;-)
    --

    irb(main):001:0>
    1. Re:Original headline by Have+Blue · · Score: 1

      I hope you meant [[Stanford alloc] init] autorelease].

    2. Re:Original headline by clarkcox3 · · Score: 3, Funny

      You should probably put something like that in a factory method:

      +(id)stanford
      {
      return [[[self alloc] init] autorelease];
      }

      Then you can just call:

      [Stanford stanford]

      --
      There are no tiger attacks in my area and it's all because this rock I'm holding keeps the tigers away.
    3. Re:Original headline by transient · · Score: 2, Funny

      Yeah but this thread doesn't have an autorelease pool.

      --

      irb(main):001:0>
    4. Re:Original headline by Anonymous Coward · · Score: 0

      Actually, the proper form would be:

      +(id) new
      {
      return [[[self alloc] init] autorelease];
      }

      Then you just do... [Stanford new]

    5. Re:Original headline by clarkcox3 · · Score: 1
      Actually, not to be pedantic or anything, but
      1. +(id)new should never return an autoreleased object, and
      2. +(id)new is already predefined for you by NSObject; it returns [[self alloc] init];
      --
      There are no tiger attacks in my area and it's all because this rock I'm holding keeps the tigers away.
    6. Re:Original headline by rixstep · · Score: 1

      Well anyway...

      You have to be in the right zone to take these courses.

      [[self allocWithZone:[[NSApplication sharedApplication] zone]] init];

    7. Re:Original headline by Anonymous Coward · · Score: 0

      Apparently the problem with Objective C is that even the handful advocating it here can't get a simple joke snippet right the first time.

    8. Re:Original headline by b17bmbr · · Score: 1

      or is it:

      NSStanford *s = [[NSStanford alloc] init];

      --
      My problem? I was perfectly gruntled, until some numbnuts came by and dissed me.
  11. new subject (not linux fanboys) by Anonymous Coward · · Score: 0

    This course is being offered in the 193 series at Stanford meaning that you can take it but it won't fill any Computer Science requirements or electives. They are practical real-world classes. Other 193 classes include:

    - CS193C - Client Side Internet technologies
    - CS193d - C++ and Object-Oriented Programming
    - CS193I - Internet Technologies
    - CS193N - C# and the .NET Platform (yuck)

    To get a degree you still have to take the required courses which are more general.

  12. The markes selects AGAINST elegance by alispguru · · Score: 2, Interesting

    It's called worse is better. Read it and weep.

    --

    To a Lisp hacker, XML is S-expressions in drag.
  13. This course is going to be online. by Anonymous Coward · · Score: 2, Interesting

    The link to scpd.stanford.edu means that the course will be available both online and on tv to all Stanford students and companies that pay for Stanford courses.

    I wonder if my expired stanford.edu account will let me in to view the courses?

  14. Re:Why? Don't Know by WasterDave · · Score: 2, Informative

    Wouldn't it be better to focus (as an elective course) on cross-platform development like Java, which can run on Mac?

    No, because Java on a Mac runs slowly like you wouldn't believe. Objective-C is faster and, honestly, is no harder than Java.

    Apart from the memory management.

    Dave

    --
    I write a blog now, you should be afraid.
  15. what's the difference from C++ by goombah99 · · Score: 1
    As I (poorly) understand it, the difference between Objective-C and C++ is mainly late binding (alal java), a few unimportant semantic changes, and a general simplification of some language idioms.

    What other changes are there? E.g. is there garbage colletion, is there refernce only calling.

    why would a C++ programmer want to program in objective C or vica versa?

    --
    Some drink at the fountain of knowledge. Others just gargle.
    1. Re:what's the difference from C++ by MouseR · · Score: 4, Informative

      One of the coolest features of Objective-C, also available in Java (though I'm no expert on Java), is introspection.

      Through introspection, an object, or a class object (loosely, that's a static class instance for static methods of your class), can interrogate themselves for variable names and types as well as the functions they support.

      Only with object introspection can you send message (aka, method calls) to objects who may or may not understand (aka, implement), said message.

      With this, i've created a really nifty (and open source) SQLite-based object persistence library called Objective-SQL.

      Basically, you just derive a class from my Objective-SQL classes and they can automatically instantiate themselves from SQL table rows through various Find* methods I've implemented in there. Simply change data member values and call [myObject commit] and voila.

      Also, there is relational capabilities given a Category to the system NSString class that allows you to turn an object into a string reference, and this string reference back into an object automatically fetched from the SQL database.

      One could derive the SQLTransport and redirect actual storage and retrieval to other SQL solutions, like PostGre, MySQL, oracle etc.

    2. Re:what's the difference from C++ by Anonymous Coward · · Score: 0

      I would think that introspection cpapbility is a feature of late binding right? The other feature you mention is equivalent to object serialization in java, correct?

    3. Re:what's the difference from C++ by awhite · · Score: 5, Informative

      IANAOCP (I Am Not An Objective C Programmer), but from my limited experience, Objective-C and C++ went in pretty much completely opposite directions in how they decided to add object-orientation to C.

      In C++, everything is statically typed, and performance is a primary goal. Objective C has more overhead, but is much more dynamic. Some cool Objective-C features (note: in Objective-C parlance, "message passing" is basically method invocation):

      - Very weak typing. If you want to, you can just pass around all your objects as variables of the built-in type "id", and this allows you to send any message to any object without casting, and of course to build container classes that hold any object. If you want some more typing help from the compiler, you can use typed pointer variables to reference objects, in which case it'll warn you about passing messages that the class doesn't implement.

      - Message forwarding. I've always loved this feature in languages that have it. Makes it so easy to create delegating objects -- you can implement a single "catch-all" type method that allows you to forward any unsupported messages someone passes to your object on to another object.

      - Categories/mix-ins. Add functionality to existing classes without having to extend them. The functionality is automatically given to all instances of the class the program creates.

      - Sending messages to nil (null). Rather than throwing an exception when you try to send a message to a nil reference, Objective-C just returns nil back. Sounds weird, but this actually saves a lot of nil checks in practice.

      - Introspection, which others have mentioned. Facilities to figure out what messages an object or type can respond to, to create new instances given the type name, to send messages based on the method name, etc.

      - Methods as first-class objects. You can elegantly pass around method pointers, and the Cocoa frameworks take advantage of this for GUI callbacks and such. If you're familiar with C# and Java, Objective-C is similar to to C# in this respect, and I much prefer these sorts of method callbacks to Java's system of creating (usually anonymous) listener classes.

      There are a lot of other advanced late-binding things you can do in Objective C too. I have some complains with the language (it's a little too verbose for my tastes, for one), but overall it seems like a great language for building dynamic systems and GUIs.

    4. Re:what's the difference from C++ by bay43270 · · Score: 3, Informative

      Introspection isn't possible without late binding, but not all languages with late binding have introspection. In Java (and other languages) introspection is called Reflection. It simply allows the attributes of an object to be queried. I don't program in C++, but from my understanding, it doesn't have this feature.

    5. Re:what's the difference from C++ by tyrione · · Score: 1

      Ever bother to use Enterprise Objects Framework?

      http://developer.apple.com/documentation/WebObje ct s/Enterprise_Objects/index.html

    6. Re:what's the difference from C++ by MouseR · · Score: 2, Informative

      I'm a Cocoa developer. I know about EOF, but it's been both canned by Apple, and I am gearing some of my work towards a partial replacement to EOF (at least for my very own needs).

      Objective-SQL also contains a SQLWebForm class whose purpose it to show SQL object data into template pages to yield final html pages.

    7. Re:what's the difference from C++ by Anonymous Coward · · Score: 0

      Was this a comment on the news item or a sales pitch?

    8. Re:what's the difference from C++ by Anonymous Coward · · Score: 0

      You mention that for a class to instantiate itself from a table row, it has to subclass ObjectiveSQL (or whatever the base class is called).

      Would this maybe be a job better suited for Protocols? The relationship doesn't seem to be so much that the object being dealt with is SQL, but rather that it can do a number of extra things, such as instantiating itself from SQL, or converting itself into an SQL row.

  16. University of Yo Yo Dyne by Anonymous Coward · · Score: 2, Funny

    in Grovers Mill N.J. is offering courses in reality distortion fields, does that count?

  17. As a Stanford CS graduate... by John+Harrison · · Score: 4, Informative
    I can tell you that 193 courses are optional and do not count towards your degree. They are offered to give students practical exposure to real world concepts and languages that they otherwise would not get. They are often taken by majors in other engineering departments, so that they can get the programming skills they need for their own projects.

    The Stanford CS courses required for graduation are much more theory based than the 193 series. Even without the 193 series (which many students completely ignore), Stanford CS majors learn to program well. The 106 series is considered a model of how to teach students to program. Business Week even did a large article on it a few years ago. Oh, and we get an algorithms course or two as well.

  18. Re:gay linux fanboys love the frosty pisshole! FP by tonydiesel · · Score: 1

    Most of Stanford's curriculum does teach the what's and how's of CS. However they do offer a series of classes (all with course numbers like 193I, 193J, 193E) that teach practical systems. These courses usually can't be used as credit for the major and are only offered only for interested students.

    The've had a Win32 based class in this series for years as well as Internet programming, Java, Advanced Java, Lisp, and a few others. This is just a logical next step (bad pun intended).

  19. you want 193J by John+Harrison · · Score: 2, Informative

    I know they offer a similar course in Java because I took it. It just isn't offered for winter quarter. It was a good course, especially considering how new Java was.

  20. CMU by Anonymous Coward · · Score: 1, Interesting

    about 1 year ago(?), CMU started allowing students to teach their own courses. I took a cocoa programming course last semester.

  21. Re:Why? Don't Know by rolocroz · · Score: 1

    That's not a troll, it's the truth. I know from experience on my 466MHz G4 that Java is dog slow in OS X. Cocoa programs run much faster than Java programs.

    --

    I meta-mod all positive moderation Unfair, because it's abuse of the system.

  22. course website by patrickoehlinger · · Score: 5, Informative

    Following the schema of all Stanford CS courses, it will soon be at: /class/cs193e/
    Since it already has a "Under construction...", the professor's assistant is probably already busy preparing the page.

    --
    >> Had I been going to bed earlier every night? Have I been sleeping later? Has Tyler been in charge longer and l
  23. Teach general principles instead by ViolentGreen · · Score: 2, Insightful

    Schools should focus on the principles of functional and object oriented languages instead of teaching specific languages.

    If you are solid in the principles of programming, the choice of language shouldn't matter. They will never be able to teach you every language out there. I think it would be much better to have an intro to different languages instead. Perhaps they do; don't really know. I don't think that this is a wasted course or anything. Any additional experience is great. Is this meant as a introduction to GUIs? If that is the case, I'm all for it. Otherwise, I think there would be more benefitial courses in the long run.

    --
    Not everything is analogous to cars. Car analogies rarely work.
    1. Re:Teach general principles instead by Anonymous Coward · · Score: 0

      You're so clueless I wanna barf.

      What are you doing here?

    2. Re:Teach general principles instead by bob65 · · Score: 0, Redundant

      Dude, this is an OPTIONAL course than can't even count for credit towards a CS degree. Of course no school is going to drop the principles of functional and OO languages for teaching specific languages - never seen it happen, never will happen (well, at least not at any universities). Why? Because it's called Computer Science for a reason - the science of computation. Cramming programming languages down your throat would need be called a different degree.

  24. Slow Java by Doc+Squidly · · Score: 1

    Does anybody know why its so slow on Mac? (I'm trolling either) Is problem with Java or the Mac?

    --
    I think I think, therefore I think I am.
    1. Re:Slow Java by oscarmv · · Score: 2, Interesting

      It's actually only the GUI that's quite slow (and it has improved lately since 1.4.1 got released for the mac and all that). Blame that on Aqua if you wish ;o)

      IIRC, pure number crunching Java benchmarks actually give good results (considering the hardware) compared to other platforms.

  25. bad idea by Snuffub · · Score: 1

    Anyone else think this is a bad idea? I mean I dont think a class on a specific set of tools or a platform has any place in a university. I get angry when I hear that places offer courses on .NET so why should it be any different for cocoa? That said.... if i went to stanford Id probably take it....

    --
    --aiee
    1. Re:bad idea by Anonymous Coward · · Score: 1, Insightful

      Because it's optional and not part of the core curriculum, unlike what MS is pushing.

    2. Re:bad idea by bob65 · · Score: 1
      I mean I dont think a class on a specific set of tools or a platform has any place in a university

      Why? I think that, beyond the core curriculum and what is required, any non-credit optional courses (which this is, for a CS student) should be welcomed - even classes in, oh, basket-weaving (I'm serious, if it's non-credit and optional, why not? I'm sure there would be people interested in it). I really don't see the problem in offering things beyond what is required, just for the sake of interest or otherwise.

  26. ABOUT GODDAMN TIME by tyrione · · Score: 2, Insightful

    The only way I could practically learn Objective-C back in the mid-90s was to work @ NeXT, which I eventually did.

    But how the hell it took this long to get it introduced into any University Curriculum is what truly has been pathetic.

    If you can't introduce this technology to the future developers how do you expect to sell it, beyond the "ease of use" paradigm?

    Hopefully Berkley will be next followed by the University of Washington until the entire Pac-10 offers classes.

    1. Re:ABOUT GODDAMN TIME by macmurph · · Score: 1

      As a Seatllite and Mac fanatic, I would love an obj-c/cocoa class at the University of Washington. Are you sure there isn't one already? If anyone knows, speak up!

      I've been looking for university level courses in Mac programming for over a decade. I'd just about given up when I read this announcement.

    2. Re:ABOUT GODDAMN TIME by JoshWurzel · · Score: 1

      Next? If you'll notice my other post in this thread, Berkeley has already been here. A few times over.

  27. This class doesn't count towards the major by Anonymous Coward · · Score: 0

    Someone already said this, but for those of you who missed this, none of the Stanford CS 193 classes count towards the major. It's an optional light class people audit or take additionally to learn something practical/fun.

    If you go to cs.stanford.edu and look at the major requirements you'll see.

    - Stanford CS Major

  28. CMU? by reidconti · · Score: 1

    Students teaching their own courses? This is the next logical step, since most crappy schools have students teaching the professors' courses anyway...

    As for "any other schools teaching objective-c (useful on Macs)" ... De Anza? :) It's funny, because... oh, never mind.

    1. Re:CMU? by ziggyboy · · Score: 1

      I have been using Linux for nearly 10 years now, and about 4 years ago I held a 5 week Linux seminar in a university I was in (as a student). I taught a compressed all-in-one course from Linux system administration to programming and using the GNU development tools. I later learned that one of my students was actually part of the faculty. I left that school after a year. =D But for what it's worth the CS students of that school were really active as anything... Some of these "crappy schools" produce good graduates because of students' determination. In the end, it's all up to the student.

  29. Theory Vs. Practice by FugiMax · · Score: 4, Insightful

    I'm of the opinion that language-specific classes are great to have at a college level. Not only can a student get a wide sampling of different languages, but I think it can also teach a lot in terms of language theory. (Common threads in languages, differences in languages, etc.) Also, these classes are almost ALWAYS electives. A CS major not wanting to touch a language-specific class doesn't have to -- it's there as a choice.

    I think a diverse choice of classes using different languages and actually going in-depth into a language itself can be helpful. I mean, there are a lot of optimizations in languages, C for example, that are done by taking advantage of the structure of the language itself -- which one can only discover after diving headfirst into a language. I wish someone would have pointed certain things out to me about C or Java that aren't immediately apparent.

    Bottomline, we're not all out to get PhD's and become evolutionary CS people. Some people just want to learn a language or two, get really good at it, and get a job. Not everyone wants to write a thesis on Compiler Optimizations. :)

    1. Re:Theory Vs. Practice by bob65 · · Score: 1
      Bottomline, we're not all out to get PhD's and become evolutionary CS people. Some people just want to learn a language or two, get really good at it, and get a job. Not everyone wants to write a thesis on Compiler Optimizations. :) .

      Ah, but I would argue that those wishing to "learn a language or two, get really good at it, and get a job" would be better served by "technical institutes" (no, I don't mean MIT). A market certainly exists for that type of education, and those places usually teach programming habits and the specifics of a language much better than colleges. There is really no need to change what's done in colleges, as those interested in what's taught in colleges can go to college, while those interested in gaining employable programming skills in the short-term can attend technical institutes. Two different educational institutions that cater to two different needs.

    2. Re:Theory Vs. Practice by FugiMax · · Score: 1

      I'm not sure I buy the whole "technical school" thing for CS. Ya, if I wanted to be a mechanic or get a quick IT degree, sure, a technical school would be fine. But with something like CS, I find in addition to learning a few languages you DO need the theory. I was just saying that's not ALL you should be given.

      I go to CMU, and I know plenty of people there who have gotten BS in CS and gone on to jobs. I know some who have stayed for Masters. I know very few who have stayed for PhD. So that says to me that people are jumping in, learning some theory and some languages, then going out and getting a job.

      I guess my point is that colleges are teaching "employable programming skills" for CS. College just isn't for those wanting an even higher education. And since that's the case, I see no harm in electives geared directly at teaching languages. Believe it or not, they WILL have to program someday...PhD or not. :)

    3. Re:Theory Vs. Practice by benedict · · Score: 1

      The subtext of your argument seems to be that
      implementation is the proper business of people
      without intellectual curiosity. I can't agree.
      The software world needs practitioners with
      groundings in theory, and always will.

      --
      Ben "You have your mind on computers, it seems."
  30. Very Encouraging by rixstep · · Score: 2, Insightful

    This is very encouraging. What is needed is support from educational institutions like this. Objective-C can cure the IT world of its C++ woes.

  31. I'm glad you asked.. by jcr · · Score: 4, Informative

    why would a C++ programmer want to program in objective C or vica versa?

    This is one of the best descriptions of the difference between C++ and Obj-C, and the benefits of dynamic binding, that I've ever happened across.

    -jcr

    --
    The only title of honor that a tyrant can grant is "Enemy of the State."
    1. Re:I'm glad you asked.. by rixstep · · Score: 1

      Yes, that's very good. His tag at the bottom all but sums it up. Others wander in darkness, and simply cannot believe all this GUI stuff could ever have been done well.

      Whatever happened to kdyke?

    2. Re:I'm glad you asked.. by jcr · · Score: 2, Informative

      Whatever happened to kdyke?

      He's at Apple, in the Graphics & Imaging department.

      If you attended Apple's developer conferences, he usually presents topics related to OpenGL.

      He's got a web site at www.nsobject.com. Some cool stuff there, but it hasn't been updated in quite a while..

      -jcr

      --
      The only title of honor that a tyrant can grant is "Enemy of the State."
  32. Yeah, by ernstp · · Score: 2, Informative

    my school does.
    The cource is called Human-Computer Interaction and it's on the CS Department at Lund University (Sweden).

    http://www2.cs.lth.se/dat006/index.html

    I plan on taking it sometime soon, if they don't cancel the whole cource.

    I've seen them using Interface Builder on their labs and such. Unfortunately we only have 14 Macs, so the excercises may get a little crowded..

    1. Re:Yeah, by rixstep · · Score: 1

      It rains horizontally in Lund.

    2. Re:Yeah, by ernstp · · Score: 1

      Can't say I ever noticed that..

      (And last week, it rained a LOT!)

  33. Cocoa as a good tool for CS learning by oscarmv · · Score: 4, Interesting

    I think no one has pointed this out, but IMHO Cocoa is a great environment (if not outright the best) to learn Object Oriented GUI programming. It tends not only to do things How They Should Be Done, but also gently enforce good practices.

    It's not like people doing CS courses don't use a number of tools they'll never use again after they get their degree (LISP compilers anyone? PROLOG? Obscure emulated environments? Did all those and more... learnt Cocoa in my free time, BTW).

    But in the interest of teaching good programming instead of "what's popular out there now" I'd rather have those coming behind me learning something like Cocoa and then adapting to Java or whatever (whose designed BTW is in many parts based on NextStep) than becoming klutzes with whatever has the greatest demand for code monkeys today.

    Just my .2

  34. Re:Why? Don't Know by ProfKyne · · Score: 1

    GUI toolkits like Swing and even the infamously "native" SWT perform slowly, but the actual JVM on a Mac supposedly performs on average better than the windows JVM.

    Nota bene, this is only what I have heard, and have no evidence.

    --
    "First you gotta do the truffle shuffle."
  35. Re:Why? Don't Know by McAddress · · Score: 3, Funny

    IANATE (I am not a troll either). I wrote a java implementation of the file browser (Finder), and I am trying to use it to copy a 17.6MB files from my desktop to my home folder, and I have been sitting here for 20 minutes and its nowhere near complete. I could do the same thing on my 533 MHz Celeron in under a minute.

  36. Great! But what about Newtonscript? by csoto · · Score: 2, Interesting

    That's probably one of the best OOP environments yet developed. It would be a great intro to OOP. Too bad there's no real live platform on which to experiment.

    Talk of Newtonscript makes me think of soup, and now I'm hungry...

    --
    There exists no way of exchanging information without making judgments. --Bene Gesserit Axiom
  37. Why, yes I do by Anonymous Coward · · Score: 0

    It is quite refreshing during the hot summer months.

    But never after Labor Day. That would be, like, gay, and stuff.

  38. Re:Dear Apple by Anonymous Coward · · Score: 0

    I like trolls as much as the next man, but i cant believe you are still posting this. Invent something new or fuck off, you basement dwelling twat.

  39. Oberlin Cocoa by ZorchKoala · · Score: 1

    Last spring at Oberlin College, I (a student) taught a semester-long "Experimental College" course in Objective-C and the OpenSTEP API.

    I taught it with GNUstep, keeping it straightforward and platform-independent, though most of the students who stuck with the course had Macs of their own.

    A respectable 7 were enrolled, not bad for a program with less than 30 majors.

    Tangentially, I've also completed a number of my assignments for other courses (namely Graphics and Operating Systems) using Objective-C *without* Cocoa or GNUstep, rolling my own AutoreleasePool and basic data-structure object-wrappers. The result was positive, a comfortable and wholly portable development context.

    Oberlin College Computer Science:
    Do You Think One Person Can Make a Difference Engine?
  40. Well Obj-C/Cocoa does have good points by Anonymous Coward · · Score: 0

    They were created to work for a GUI. C++ always begins by teaching you to do terminal programming and then when you go to GUI programming it becomes one hard task after another.

    Obj-C/Cocoa were created for programming GUIs. Anyone who has ever used Apple's developer tools will tell you this. You can make your own web browser (in both Jag and Panther) without ever writing a single line of code.
    This is the power of cocoa - it can 'guess' some things that you want done.

    A uni offering a course in what is one of the best (not nessecarily most popular) APIs in OOP history is completely understandable and expected.

  41. Then leave CS by Anonymous Coward · · Score: 0

    "Some people just want to learn a language or two, get really good at it, and get a job."
    Then perhaps the Management or Business Information Systems field is for you.

  42. CS492 at the U of A by macxonly · · Score: 1

    I just saw that the U of A is offereing a course for Objective-C/Cocoa. Unfortunately you have to be in the CS major to take it. Not much listed about the course, but here it is in all its.... glory?

    --
    O_o