PDA

View Full Version : Java Swing Elective Next Semester - Useful for Eventually Learning Cocoa?


Kraetos
2009-03-17, 10:24
If you've missed my previous rants on my schools CS department, in a nutshell, the CS major here is so small that the required classes are offered every other semester and the electives are offered every other year. For most electives, you only get one shot at them.

That said, there's a Java GUI elective being offered next semester. Course description:


Title:
Java Graphical Interfaces

Description:
Many of today's computer applications employ intuitive graphical interfaces to communicate
with the user. This course will explore common user interfaces such as pop-up windows,
menus, scroll bars, tables, trees, buttons, radio buttons and check boxes using Java's
Swing library. In addition, the concepts of event-driven programming and layout managers
will also be studied.


I'm not particularly interested in Swing, so my question is, (knowing virtually nothing about GUI libraries) would taking a course in Swing be useful for learning Cocoa later? Or are they different enough that it would be a waste of credit hours, better allocated to a different elective?

Kickaha
2009-03-17, 10:28
Well if nothing else, it will show you how *not* to design a UI library... ;)

Eh, I'd say go ahead and take it. The knowledge you learn may not be 1:1 transferable to Cocoa, but it will still be valuable.

Ryan
2009-03-17, 10:32
If you've missed my previous rants on my schools CS department, in a nutshell, the CS major here is so small that the required classes are offered every other semester and the electives are offered every other year. For most electives, you only get one shot at them.Our department is the same way. I missed out on the scripting seminar last semester and it probably won't be offered for another two or three years. :\

Kraetos
2009-03-17, 13:09
Well if nothing else, it will show you how *not* to design a UI library... ;)

Heh, that's exactly what I was thinking. I've never heard anything good about Swing other than the standard issue Java propaganda, and it occurred to me that learning GUI concepts with a crappy UI library might bite me in the ass in the long run when I jump to better designed UI libraries. Oh, the Perils of Java School.

In my intro CS class, my professor had a slide in the lecture for the first day labeled "Java propaganda" which listed all the stuff Sun touts about Java. Sometimes I feel like all my professors know we're getting the short end of the stick by going with Java, and they keep it to themselves :p I mean I know Java has advantages for getting people into CS... but there are a lot of disadvantages as well.

I was talking to one of my professors the other day, actually, and I asked him what he thinks about the whole Java school controversy. He said it's a little overblown but it's not without a kernel of truth. He did, however, have a very interesting solution:

Intro CS - Python
Data Structures - Java
300-level courses - C++

Learning three different languages in as many courses, which all have very different design goals, would result in students having a lot of flexibility when they reach the 300-level, which would mean that electives could easily be taught in a language most appropriate for the content rather than using Java as a catch all compromise.

Eh, I'd say go ahead and take it. The knowledge you learn may not be 1:1 transferable to Cocoa, but it will still be valuable.

Good advice. Looks like my two CS classes will be Programming Languages and Swing :)

Kickaha
2009-03-17, 13:11
Ooooooh, ProgLangs! Taught that meself, I did. Fun stuff.

I like your prof's suggestion - instead of starting at the metal and working up, start with the easiest, and work down.

OTOH, the EE in me is dying at the thought.

Luca
2009-03-17, 13:14
I took an Intro To Java class as an elective a few years ago and within a week of finishing the class, I had forgotten literally everything they had taught me. But that's me. I'm not a programmer. To me, software works kind of like magic.

Unch
2009-03-17, 14:12
If you've missed my previous rants on my schools CS department, in a nutshell, the CS major here is so small that the required classes are offered every other semester and the electives are offered every other year. For most electives, you only get one shot at them.


You're a CS student, but you don't get chance to do CS classes all the time? Or am I reading that wrong?


Well if nothing else, it will show you how *not* to design a UI library... ;)

Eh, I'd say go ahead and take it. The knowledge you learn may not be 1:1 transferable to Cocoa, but it will still be valuable.

In that you get to appreciate a life without nested LayoutManagers? :)

Kraetos
2009-03-17, 20:02
You're a CS student, but you don't get chance to do CS classes all the time? Or am I reading that wrong?

Oh, I get to take CS classes all the time. There are 15 CS courses in the catalog, 5 MC courses, (classes considered to be in both the Mathematics and the CS tracks) and one CS course in which one of the professors teaches a topic he thinks is cool. (That's where this Swing class is.)

But... there are only about 20 CS majors (and probably another 20 minors, it's a popular minor among physics and math majors) enrolled here at any given time. There are 3 full time CS professors, plus 3 math professors who know enough CS to get by - they teach the MCs.

Since there are only 3 CS professors, and Intro CS and Data Structures are offered every semester, that only leaves room for 4 or 5 other courses. Thus, those 4 or 5 slots rotate through the other 15 or so CS/MC classes in the catalog on a scheduled basis, plus that one mystery elective. Required classes are offered every other semester; electives every 4th semester. You need Intro CS, Data Structures, Algorithm Design, Discrete Math, Linear Algebra, Theory of Computing, Computer Organization, Programming Languages, and three electives to complete the major.

There are a few reasons I put myself through this craziness:
- I like to take courses in a whole lot of other topics. The government, english, philosophy, etc. departments here are exceptionally strong.
- I like 7:1 student/faculty ratio in the CS department. I probably spend more time with my professors outside of class than in class.
- It's the job experience that counts with CS anyway, so I take good internships over the summer.

Ooooooh, ProgLangs! Taught that meself, I did. Fun stuff.

I like your prof's suggestion - instead of starting at the metal and working up, start with the easiest, and work down.

Oh of course! I am super excited for ProgLangs! :D

I think his language progression idea is pretty clever too. I suppose Spolsky would argue that C++ for intro CS filters out those who cant hack it, but I feel like students are more likely to be able to get the nitty-gritty it if they have Intro CS and Data Structures under their belt. Even if they cant get C++ and they have to muster out when they hit the 300-level, they walk away with knowledge of Python, which could prove useful for all sorts of reasons, and they only spent two classes towards major they don't end up keeping.

Partial
2009-03-18, 03:00
Very useful. Learn about event handling.

chucker
2009-03-18, 04:14
Well if nothing else, it will show you how *not* to design a UI library... ;)

Damn you; I wanted to make that quip. :p

Unch
2009-03-18, 15:13
Ah, it's not as bad as I thought it was, I interpreted it as you were struggling to get classes.

Still, it's a bit odd from my perspective, as a UK CS student I did nothing but CS classes (there were a couple that were cross-overs with electronic engineering). We had to do 8 different modules a year, some that were compulsory, and some that we could choose from a selection. Of course some people were doing a combined degree (like Maths/Computing), but the vast majority just lived and breathed CS for 3 years. I'm still unsure whether that is a good thing or not. ;)

Kraetos
2009-03-18, 17:51
Very useful. Learn about event handling.

Good point.

the vast majority just lived and breathed CS for 3 years.

Heh, indeed, that's exactly what I was trying to avoid. Don't get me wrong, I love CS (it is my major, after all) but there's other stuff to learn about while I'm in college. I'm really enjoying my American Government class right now, and we just started L.A. Confidential in my English class. Having a great time :)