[opensource] RESOLVE

Shaun Rowland rowland at cse.ohio-state.edu
Mon Feb 9 03:32:05 EST 2009


On Feb 8, 2009, at 12:34 PM, Tyler Sampson wrote:

> 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.

The analogy seems about as flawed as you find the method in my
view. I'll use the same terms. Kindergarten in this case does
not require that you speak German. If you don't know English,
you can speak German. This is true if kindergarten is CSE 560.
You can take English classes before kindergarten as well (in
both cases if you are a CSE major). I don't know where this falls
in the ECE sequence exactly, but to me that's ECE's problem to
figure out. These are core CSE courses. That's just a view on
how best to serve the students of the CSE department. Maybe if
an ECE major is depending on a language so much, they should be a
CSE major instead? It seems a little odd that the languages
an ECE major knows would be so critical to their job prospects.
If this is so important in getting a job that requires an
in-depth level of experience using Java, C++, or whatever
then it seems to be something geared toward software development.
If what I said is true, and it seems it would be for at
least most cases, then this seems more like complaining
about the whole method because it was found to be annoying.
If the language used is more important and I just don't
see it, then perhaps ECE should make an adjustment to better
serve their goals. I realize there is the possibility for
a grey area here too, and then again - the world is not
perfect either.

Additionally, thought I realize this is just an analogy, the
differences between English and German aren't the same as between
C++ and Java in my view. I am not a linguist either, but that
seems accurate to me. Since I am not a linguist, I am just
offering that as an opinion which has no strong background
(except how it is easier for me to learn a new programming
language as opposed to a spoken language - so practical
experience).


> 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?


Perhaps because we've moved on from changing the language to making
fundamental changes to the method used to teach the concepts. If
anyone can answer how changing the method used to teach the concepts
now in such a way that it offers more practical Java experience, then
they might have a shot at changing things. This goes way beyond these
analogies. That is something best discussed with the implementors.

The view supporting changing the language seems to be geared toward
this idea that it'd just be a simple thing to do. If it were so
simple, then one could argue that the course would already be
a practical C++ learning experience. It certainly is not seem
that anyone has that view.
-- 
Shaun Rowland
rowland at cse.ohio-state.edu





More information about the Opensource mailing list