[opensource] RESOLVE

Tyler Sampson tdsampson at gmail.com
Sun Feb 8 12:34:16 EST 2009


I'll throw in my two cents...why not.

I'm going to start my argument by using the analogy of programming (formal)
languages to natural languages. There are obviously differences, but the
underlying concept of *language* remains the same. When you learn a new
natural language, for instance if you are a native English speaker and you
want to learn Spanish, you don't have to re-learn all the concepts. That is,
you don't need to re-learn what a verb is, or what a noun is, you already
know that. You have to relearn some grammar and spelling, but you don't need
to re-learn how to form thoughts. Though structure and syntax change from
language to language, really all any language is is a way to communicate
ideas from one being to another (human-to-human, human-to-computer,
human-to-dog, etc.).

The 221/222/321 series is not about learning a language. If it were possible
to get concepts to sink in without labs, they'd be just as well off teaching
it with pencil and paper, no computer necessary. (See:
http://en.wikipedia.org/wiki/Edsger_W._Dijkstra). Unfortunately, we must use
some language to learn the concepts. You can't speak English by just looking
at pictures and the words leap from your mouth. You actually need to know
the language.

So far, I am on board with a lot of what the people arguing against Aaron
are saying. Learning Resolve is not the point of the "Resolve sequence". The
point of it is to give you a solid understanding of the concept of formal
languages, so that you know the concepts, thereby making learning new
languages.

However, I ultimately find the method to be flawed. Let's go back to our
natural language analogy. Let's pretend that we're parents of a newborn
child (a freshman!). We want to teach our child how to communicate
effectively, and good concepts behind language. Unfortunately for Junior,
English (read: C++) is a really *terrible* language for this. There's lots
of confusing syntax and inconsistent rules. So, rather than teach Junior
English, we decide to teach him German (read: Resolve). It's sort of like
English, but the rules are a little more predictable. (Note: I'm not a
linguist so I don't know if German is actually less complicated than
English...just assume for argument's sake that it is.) So, we spend the
first 5 years (read: 221/222/321) of Junior's life only speaking German to
him. Then, we send Junior off to Kindergarten (read: internship search, or
CSE 560). Uh-oh! It's an English speaking Kindergarten (he understands
Kindergarten, since it's a German word, but that's about it). Junior fails
and gets put into the remedial class. Of course, since he has such a great
understand of natural language concepts now, he flies through the remedial
class and is soon speaking English pretty well. However, he is now far
behind the other children, because he failed Kindergarten.

Maybe the situation I have provided above is a bit contrived, so let me
explain my point straightforwardly: there is no reason not to teach a "real"
(i.e. industrially used) programming language for teaching concepts. Now, as
I have said, C++ would be a bad way to do this. It's clunky, got terrible
syntax, etc. I have not seen one good reason anywhere on the Resolve website
that explains why Java cannot be used. The only thing I see is that they
want to hide reference/value semantics until the second half of the
sequence. I had no experience with Java coming into 421 (which I took last
quarter). I was shocked at how similar many of the things that exist in Java
were so similar to Resolve, such as interfaces, extends, abstract, etc.
(that basically are represented by virtual void or =0 in C++).

I get the argument of using an easier to understand language to teach
concepts. Java is that language. The way  the sequence is taught now
accomplishes its objective of teaching concepts of CS. But if it is possible
to do the same thing, while giving students experience with a programming
language that is functional outside the Ivory Tower, then why not do it?


-- Tyler Sampson


On Sun, Feb 8, 2009 at 11:35 AM, Aaron Joseph <bonesawosu at gmail.com> wrote:

>
> *I completely agree, in fact I decided to be in the electrical
>> specialization of ECE for that reason alone. I figure I'm better off
>> teaching java or c++ to myself as opposed to taking these resolve courses.
>> *
>
>
> Well, there are still some good underlying principles that are taught in
> resolve... it's just taught with a language that becomes worthless after get
> out of the series. 560 is a great class, and 660 is good if you take it with
> the right people.
>
> I wouldn't let resolve be my deciding factor for whether or not to do the
> Computer Specialization. ECE is about architecture, not programming. So
> maybe ece 206, 265, 567 would be better classes to base your decision on.
>
> --Aaron Joseph
>
>
>
>
> On Sun, Feb 8, 2009 at 11:35 AM, Daniel Zeleznikar <zeleznikar.2 at osu.edu>wrote:
>
>> "ECE majors don't take language courses. We take 221,222,321,560,660 and
>> that's it. So resolve is a waste of time to me."
>>
>> I completely agree, in fact I decided to be in the electrical
>> specialization of ECE for that reason alone. I figure I'm better off
>> teaching java or c++ to myself as opposed to taking these resolve courses.
>>
>> On Sun, Feb 8, 2009 at 8:52 AM, Aaron Joseph <bonesawosu at gmail.com>wrote:
>>
>>>
>>> I'm replying to shauns message in this thread so that we dont have 3
>>> threads floating around.
>>>
>>>
>>> RESOLVE/C++ is definitely not C++. Not even close. It just happens to be
>>> built in C++. RESOLVE is about using those cryptic math definitions that
>>> brian mentioned, which is somehow supposed to help people understand what's
>>> going on. It's just a stupid concept to try to make something more
>>> understandable by adding these math definitions as comments. And they really
>>> push this idea as if it's useful. That's why I want to see some java pop in
>>> there.
>>>
>>> As for taking 421 or 459... ECE majors don't take language courses. We
>>> take 221,222,321,560,660 and that's it. So resolve is a waste of time to me.
>>> If they used pure C++ then I'd be totally fine with that too... but the
>>> bastardized version they use doesn't cut it.
>>>
>>> I'm happy that at least Brian gets what I'm talking about. The class
>>> would be so much better if the same stuff were done in java and if they got
>>> rid of the whole math respresentation thing.
>>>
>>>
>>>
>>> --Aaron Joseph
>>>
>>>
>>> _______________________________________________
>>> Opensource mailing list
>>> Opensource at cse.ohio-state.edu
>>> http://mail.cse.ohio-state.edu/mailman/listinfo/opensource
>>>
>>>
>>
>>
>> --
>> Dan Zeleznikar
>> daniel.zeleznikar at gmail.com
>> zeleznikar.2 at osu.edu
>> (216) 233-6232
>>
>
>
> _______________________________________________
> Opensource mailing list
> Opensource at cse.ohio-state.edu
> http://mail.cse.ohio-state.edu/mailman/listinfo/opensource
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.cse.ohio-state.edu/mailman/private/opensource/attachments/20090208/5a90735b/attachment-0001.html


More information about the Opensource mailing list