[opensource] RESOLVE C++

Shaun Rowland rowland at cse.ohio-state.edu
Sun Feb 8 02:17:54 EST 2009

On Feb 8, 2009, at 12:57 AM, Aaron Joseph wrote:

> At this point I felt like it was time to change the subject heading  
> since the whole printing issue was solved 3 conversations ago.
> I think everyone has officially missed the point I was trying to  
> make :(

I don't think so. Your point is not hard to understand.

> I knew Java, C++ , C, PHP,  blah_blah_blah going into that series.  
> So I would have learned zero about Java had that been the language  
> used for 221,222,321. People's responses all seem to be directed  
> toward arguing that it doesn't matter which language you use for the  
> series. But that's what I'm arguing too!!

So, we've established that you agree the course is not about the
language. I was waiting for this side of your argument to appear
as it is the natural direction to go.

> That series isn't about learning a language at all. It's about  
> learning certain concepts involved with software design. Those  
> concepts are totally independent of language (to some extent since  
> something like HTML wouldn't be very useful for teaching recursion  
> or sorting). However in order to teach them you do need to use at  
> least 1 language. And regardless of how much of a language course it  
> isn't, I don't think you can argue that you are completely detached  
> from learning the language that is taught.

Of course you can't be totally detached from the language, but the
language of choice does make a big difference to those who teach
the course, more so than those taking the course probably. I still
fail to see how the Resolve sequence being taught in Java would
allow you to really claim you knew Java. If that's true, then you
could also claim you know C++ as it is now - then we're to an
argument about which is better: C++ or Java. We all have an opinion
about that. Do you feel that switching the main language to Java
and having to implement components from scratch (or working on
components like you do now in Resolve) somehow makes including
Java on your resume valid... because that's how it would be I'd
guess because that's what they want you to do.

If you want to learn Java, take CSE 421 already. If I recall
correctly, you have to take two CSE 459 courses. There you go:
three languages you can put on your resume, and in those courses
you'll learn enough to make a reasonably valid resume claim,
especially with CSE 421.

> And this is why I think Java would be a better choice of language.  
> Even though you wouldn't learn all the ins-and-outs of Java, you  
> would at least (a) know enough about it to be able to continue  
> learning it on your own after the series and (b) be able to add  
> "Java" to your resume.

This is where I disagree. I would not consider this knowing enough
about Java for a resume. Continuing your Java "adventure" was already
covered by one more course where you will really learn it - mentioned
a couple of times.

> And if you think that adding any one specific language to a resume  
> doesn't mean anything then think again because I have gotten calls  
> from companies about jobs as a direct result of having Java listed  
> on my resume.

No one had made this claim either. You want Java on your resume,
then take the course that really teaches it if you don't know it

> When I put that I knew ActionScript on my resume I got probably 2-3  
> calls per day from people all over the country wanting me to move  
> there and make Flash stuff for them. Can anyone else share some  
> stories with us about companies specifically targeting a certain  
> language? I've heard that Microsoft only wants to see you use C++  
> when you interview with them. And at career fairs I noticed that  
> Intel and IBM will actually circle "C" or "Assembly" if they see it  
> on your resume. The point I'm trying to get at here is that inside  
> of the 221,222,321 series the language used doesn't really make a  
> difference since the class is about learning certain concepts and  
> not language, but outside of the 221,222,321 series making a simple  
> switch in languages makes a huge difference to anyone who makes it  
> through the series because it's more desirable to employers and it's  
> easy to continue using it since it actually has it's own compiler  
> (please don't send responses about using gpp to compile resolve  
> because I already know that works as long as you have the time to do  
> some extra hacking to get everything setup right).

I believe it was the original open source club people who created
a Linux version of Resolve. I don't know what ever happened with that.
I hope no one comes to me with a resume after taking the first set
of core courses claiming they know whatever language it is implemented
in when the course is not about the language, since - as we've
established - it's not about learning the language... and I'd add
"to a sufficient degree to be resume worthy" to that.

I also do not see this as a "simple switch" of languages for those
who are teaching the concepts. Building a solid course to teach
concepts is not a simple task.

> So....
> Even though the 221,222,321 series is about learning certain  
> concepts and not certain languages, a switch to using a more popular  
> language like java would in the long run be more beneficial to those  
> who take it. I don't see how using 'INTEGER' rather than 'int' makes  
> learning about recursion or linked lists any easier... so it's not  
> like making the switch is going to make people completely unable to  
> focus on the underlying concepts. In fact, I would even argue that  
> it would make it easier to learn those concepts if students weren't  
> trying to also learn the syntax for resolve at the same time.

I believe those syntax issues you have are kind of the point they
are trying to get across, otherwise the C++ programmers should be
speaking up about how this is great for adding C++ to your resume :-)
Or is it that you believe that C++ should not be used because Java
is more popular? It sounds to me like you want a class that really
teaches a language. It seems pretty circular when I try and
extrapolate what I'd call the "real" issue.

> And even though I keep mentioning "Java", you could use C++ or C# or  
> and object oriented language....

Like the C++ they use now with their own syntax that enforces the
points they are trying to get across? Are you sure you're not just
annoyed by using defines that are empty strings when you don't
need to, or defines that really mean something else in C++ but
are named a certain way to emphasize the point they are trying
to get across?  Or is the problem that you are not learning the
STL but instead implementing components yourself? Would this
really be different if they used Java? I don't think so. The
course is about component based software engineering, not about
how to use the STL or Java libraries that are already written
by someone else.

> I just think that Java is the way to go since it's cake to learn and  
> just soooooooooooo easy to use. In the end having only 1 language  
> under your belt isn't the way to go. But if you spend a year  
> teaching concepts that require a language to be used, then you might  
> as well use one that is going to be meaningful outside of the series.

They should use a language that best suits their need to teach
the concepts. This course is designed for CSE majors. If you
take the required courses - unless something has really changed -
you will learn other "real" languages. There are certainly courses
for that. This feeling of "I'll only have one language under my
belt" doesn't seem to be reality for me. What stage is someone
at when they've completed this part of the course sequence? Are
they at a point they can go and get some big programming job
in industry where their knowledge of whatever language is
enough to matter? Not unless you already happen to know a
language or two. This part of the sequence is designed to
teach concepts in the best way those teaching the concepts
feel it should be done. They've researched this. The practicality
argument is silly to me at this stage of learning.

> In conclusion.... since the 221,222,321 series is not focused on the  
> language itself, switching from resolve to java (or any other OO  
> language) wouldn't make a difference while in the series, but would  
> make a big difference when you got out of the series.

I don't see how. You've not answered how you will somehow have a
resume worthy line item from a course that's not about using
<insert language and its libraries>. The only way you're going
to get that is to take CSE 421 or the CSE 459 courses. That is your
solution. You've also agreed that the course is not about learning
the language, to which I will add "sufficiently", for which you'd
need - again - CSE 421. Should this corse sacrifice its focus
on concepts, thus diminishing its value, to give you more practical
experience when there are already solutions for that in the
other courses?

If you want to argue switching to Java, then you need to answer
major questions as to how it would be used to teach component based
software design, without just teaching you how to use Java libraries.
We're talking about a lot of work to redo that in a new language.
I am not seeing some huge benefit, and you've not countered any
of these points from what I've read so far. You are saying the
same thing as you said before at the UG forum, which is what
I responded to originally.

> Hopefully this email will help clear up what I'm trying to say about  
> using java instead of resolve. If not then let me know and I'll try  
> to explain it again.

This doesn't elaborate on any additional logic in why this switch
is important to the success of undergraduate education in the CSE
department IMO.

I'm not trying to be mean here or whatever. I really don't see
a strong point here when considering what the course meant to do.
Shaun Rowland
rowland at cse.ohio-state.edu

More information about the Opensource mailing list